rtfeldman/node-test-runner

Proposal: Independent semantic versioning

Closed this issue · 2 comments

Currently the elm-test version tries to follow the Elm version. Current version as of this writing is 0.19.1-revision4.

Elm releases new versions so seldomly that I don’t think it’s worth following.

My proposal is to release 1.0.0 the next time we make a breaking change and then follow semver.

We could add a table in the readme saying which version of elm-test to use for older versions of Elm.

This allows us to:

  • Make it clear to the user when there are breaking changes (major version bump).
  • Make it clear what actually is the latest version. At a glance, it’s unclear if 0.19.1 or 0.19.1-revision4 is the latest version.

elm-format, elm-json, elm-review, elmi-to-json, node-elm-compiler, elm-webpack-loader, elm-language-server, intellij-elm, elm-hot … none of them have the Elm version number as their version number.


Edit: A reflection. There’s something called Chesterton’s fence:

Don't change something until you understand why it is the way it is. There may be a valid reason for it to be that way.

We discussed this on Slack.

elm-test used to have independent versioning: https://www.npmjs.com/package/elm-test?activeTab=versions

There was version 0.1.0 through 0.6.5 – then it jumped to 0.16.0. Richard said this was due to people being confused what version of elm-test to use with what version of Elm.

Another point Richard brought up was that if we release 1.0.0 to try it out, we’re basically stuck with that decision. Otherwise we’re going to end up with the same confusing situation as the elm npm package, which has 1.0.0 - 2.0.0 versions but the latest couple of versions are 0.15.x - 0.19.x.

The reason I started thinking about this was because #442 needed to drop support for Node.js 8 for practical reasons – but we decided that we could do that anyway: #461

I think the conclusion is that we should keep the current versioning system, with one change: We should always have a -revisionX suffix. Currently it’s unclear if 0.19.1 or 0.19.1-revision4 is the latest. When Elm 0.19.2 or Elm 0.20.0 is released we should release 0.19.2-revision1 or 0.20.0-revision1 to avoid that confusion in the future.

Just noticed that there’s a similar issue open (I have apparently even commented on it!): #387