missinglink
Build time tool for detecting link problems in java projects (by spotify)
mdoc
Typechecked markdown documentation for Scala (by scalameta)
missinglink | mdoc | |
---|---|---|
5 | 4 | |
148 | 398 | |
-0.7% | 0.3% | |
7.1 | 8.9 | |
3 months ago | 8 days ago | |
Java | 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.
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.
missinglink
Posts with mentions or reviews of missinglink.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-03-31.
-
A Scala rant
You can also use the upstream https://github.com/spotify/missinglink if you're using Maven instead of sbt.
-
Is there any way to statically detect broken references in a set of Java class files?
There's been a recent release of missing-link with support for Mult-Release JARs and running analysis on multiple projects concurrently. More info here (applies not only to Scala/sbt, so it's worth linking it here): https://old.reddit.com/r/scala/comments/lxmi4w/sbtmissinglink_032_has_been_released_multirelease/
-
Preventing version conflicts with versionScheme (improving the Scala library ecosystem)
There are still some issues with MissingLink, like that it can't handle Multi-Release JARs (but that's being fixed I write) or that it uses thread-unsafe caches and so it can't be executed in parallel (and so it can take a long time to finish on big projects with many modules). But taken all together I swear by it. It has already saved us from runtime failures after deployment many times (it's easy to get incompatible versions when working on big projects with big number of dependencies). Instead, we get a red build in CI -- just anybody should expect for goodness sake when using a strongly-typed language like Scala.
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
-
Friction-less scala - Tell us what is causing friction in your day-to-day life with Scala
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
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
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
What are some alternatives?
When comparing missinglink and mdoc you can also consider the following projects:
bnd - Bnd/Bndtools. Tooling to build OSGi bundles including Eclipse, Maven, and Gradle plugins.
sbt-mima-plugin - A tool for catching binary incompatibility in Scala
soot - Soot - A Java optimization framework
sbt-microsites - An sbt plugin to create awesome microsites for your project
cloud-opensource-java - Tools for detecting and avoiding linkage errors in GCP open source projects
sbt-unidoc - sbt plugin to create a unified Scaladoc or Javadoc API document across multiple subprojects.