#3867·noms

Proposal: separate format version from library/http version

Author: aboodmanCreated Nov 20, 2019Updated Nov 20, 2019

Right now versioning is not very clear in Noms. It was created before Go modules existed, so it's not entirely our fault, but anyway.

I have mod-ularlized Noms awhile ago, so we should also adopt Go's versioning convention. Namely, the Noms git repo should be tagged using semver.

Currently, we have the following git tags:

!? git tag -l
last-js
latest
v7
v7.3
v7.4

v7 contained the snapshot of the last version of the Noms format before we started changing it in preparation for a major new version 8. v7.3 and v7.4 are incremental updates on the way to 8. Currently the code says: const NomsVersion = "7.18", so I guess we stopped tagging the repo at some point.

In any case, I no longer have any plans to do a major new version of the format rolling up a bunch of changes so I think we can just call 7.18 the current stable format version and be done with that.

That still leaves the library version. I think that we should version the library according to Go conventions and version the data format separately.

Concrete proposal

  • Tag the current Noms head v10.0.0 and make that the current Go library version. This makes it clearly different than the "format" version which is 7.18.
  • Modify noms version and so-on to report both the format version and the library version.