sbt-mima-plugin VS unity

Compare sbt-mima-plugin vs unity and see what are their differences.

sbt-mima-plugin

A tool for catching binary incompatibility in Scala (by lightbend)

unity

unity - run experiments/regression tests on CUE modules (by cue-unity)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
sbt-mima-plugin unity
2 1
447 40
0.4% -
7.5 10.0
8 days ago 10 months ago
Scala Go
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

sbt-mima-plugin

Posts with mentions or reviews of sbt-mima-plugin. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-09-07.
  • Semver violations are common, better tooling is the answer
    7 projects | news.ycombinator.com | 7 Sep 2023
    In the Scala ecosystem, MiMa [1] has been in widespread use for years. It automatically checks compatibility for the binary API of a library. Every library with any amount of success uses it. One could say it's the foundation of a stable ecosystem. We also have sbt-version-policy [2] to set it up with minimal configuration (and directly relate it to SemVer).

    More recently, we got tasty-mima [3], which checks compatibility at the type system level, rather than the binary level.

    [1] https://github.com/lightbend/mima

    [2] https://github.com/scalacenter/sbt-version-policy

    [3] https://github.com/scalacenter/tasty-mima

  • sbt/scalatest library or plugin that only re-runs tests for code that changed
    2 projects | /r/scala | 23 Jul 2022
    Off the top of my head, a naive & approximate solution would be to use test coverage to find out which tests test which blocks of code. Then, when a binary, syntactic incompatibility is detected, re-run only these tests captured for that piece of code.

unity

Posts with mentions or reviews of unity. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-09-07.
  • Semver violations are common, better tooling is the answer
    7 projects | news.ycombinator.com | 7 Sep 2023
    This is more a coordination problem, semver doesn't really matter here, except as a good enough standard or guardrail for most. It's going to get broken from time to time, and that is fine.

    The CUE Unity project is an interesting take on how to "solve" the bigger issue of breaking changes or regressions.

    https://github.com/cue-unity/unity

    Basically, the idea is that users can register their project, tests, or benchmarks in Unity. The project maintainers can then test new code against these projects before releasing, or even before pushing a commit, because a regression is found for example. This works by injecting the version (or local code) into the dependency management system. For CUE, this is a `go mod edit`, or setting up the environment with the cli at version / local. How this is set up and managed isn't as important as getting the process in place and making it an easy workflow for both sides. Hence why I call it a coordination problem.

What are some alternatives?

When comparing sbt-mima-plugin and unity you can also consider the following projects:

mdoc - Typechecked markdown documentation for Scala

sbt-header - sbt-header is an sbt plugin for creating file headers, e.g. copyright headers

sbt-revolver - An SBT plugin for dangerously fast development turnaround in Scala

sbt-pack - A sbt plugin for creating distributable Scala packages.

sbt-updates - sbt plugin that can check Maven and Ivy repositories for dependency updates

sbt-sonatype - A sbt plugin for publishing Scala/Java projects to the Maven central.

sbt-microsites - An sbt plugin to create awesome microsites for your project

sbt-scoverage - sbt plugin for scoverage

sbt-unidoc - sbt plugin to create a unified Scaladoc or Javadoc API document across multiple subprojects.

sbt-ide-settings - SBT plugin for tweaking various IDE settings

sbt-native-packager - sbt Native Packager

sbt-dependency-check - SBT Plugin for OWASP DependencyCheck. Monitor your dependencies and report if there are any publicly known vulnerabilities (e.g. CVEs). :rainbow: