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.
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:
v7
contained the snapshot of the last version of the Noms format before we started changing it in preparation for a major new version8
.v7.3
andv7.4
are incremental updates on the way to8
. 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
v10.0.0
and make that the current Go library version. This makes it clearly different than the "format" version which is7.18
.noms version
and so-on to report both the format version and the library version.