mdoc VS sbt-mima-plugin

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

mdoc

Typechecked markdown documentation for Scala (by scalameta)

sbt-mima-plugin

A tool for catching binary incompatibility in Scala (by lightbend)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
mdoc sbt-mima-plugin
4 2
386 449
0.8% 0.9%
8.4 7.7
7 days ago 8 days ago
Scala Scala
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.

mdoc

Posts with mentions or reviews of mdoc. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-04-20.
  • Optimal decision-making with examples built using scala
    4 projects | /r/scala | 20 Apr 2022
  • Friction-less scala - Tell us what is causing friction in your day-to-day life with Scala
    14 projects | /r/scala | 10 Aug 2021
    Literally what scaladoc is, it comes with sbt. Although, it's better when enhanced with mdoc so that you get the standard microsite template like these. It would be nice to have an sbt serveDocs and if everyone would host their docs for external linking, but javadoc doesn't do that either.
  • A Scala rant
    9 projects | /r/scala | 31 Mar 2021
    The good news is that scaladoc is produced by default by sbt and published by default. So you can often pull it from the same repository your library jar came from, extract it with zip, and read the docs. But that's also totally unnecessary - javadoc.io allows you to put in your module info and serves the docs for you, so if there's an older version you can access the documentation this way. Rely on the type signatures, since they can't lie, whilst comments (including scaladoc comments) can. Honestly, library authors should be using mdoc and including examples on every public method, and that type of documentation is something you can almost always contribute to a project for a quick pr kudos.
  • The future of Scaladoc
    3 projects | /r/scala | 8 Mar 2021
    I know it's not new but the "Snippet validation and results (mdoc)" features in mdoc are so cool. Really takes some of the tedium out of working with documentation since you can know that as you evolve your code the compiler will make sure you keep the docs in sync. Whole new level of Readme-Driven Development

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.

What are some alternatives?

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

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

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.

coursier - Pure Scala Artifact Fetching

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