Currently, there are several aspects to Scala versions that are inconsistent with the SemVer specification, which is the prevalent versioning scheme used by the Scala modules and within the community. In particular, there are two areas I’ve noticed that do not conform to the SemVer spec:
- Scala milestone releases and release candidates do not conform to item 11.4 of the SemVer spec. In particular, if a
<version>-RC10version was released, it would not be ordered correctly according to the SemVer spec. In order to be ordered correctly, it should be
- Scala 2 nightly releases are named
<version>-bin-<commit hash prefix>(or
<version>-pre-<commit hash prefix>for pre-release versions, which may never happen again). As commit hashes do not provide meaningful ordering, they should not be part of the pre-release portion, which is treated as well-ordered by SemVer. Instead, it should be included as build metadata, something like
<version>-bin+<commit hash prefix>.
- I don’t know how Scala 3 nightly releases are named, but they may or may not have the same issue.
I may be the only person bothered by this, or it may be too much of a pain to change, but I just thought I’d put it out there.
This doesn’t really fit into the “Tooling” category, but it doesn’t fit well in any other category either. My justification is that if the version formats were changed, maybe that would affect some tooling?