Open hasufell opened 2 years ago
I think it would be nice to also add the even/odd convention as between "official" and "experimental" releases as well.
These could both live in the FAQ (https://pvp.haskell.org/faq/) rather than the PVP proper, along with any other sort of non-binding best-practices suggestions.
Note that ghc 9.4.0.20220501 isn't committed to any permanent index (e.g. not uploaded to Hackage). And in fact isn't necessarily PVP compliant (i.e. ghc
lib interfaces might well change still). But it's clever workaround to make ghc <9.4
or ghc >=9.4
checks behave as it if was 9.4 release. (Some project use foo-9.3.20220501
convention, which doesn't work well, but they really want to have foo-9.4.0
as a proper first release, still maintaining linear versions and not using tags - which PVP doesn't even have).
EDIT: Another similar scheme would be to have ghc-9.4.1.20220501
then say ghc-9.4.1.20220606
for beta and ghc-9.4.1.20220720
for final proper release. The version is "ugly", but IMHO that's where versioning systems and marketing needs clash. C.f. build numbers in Windows software.
I don't think the spec should enforce any of that, but what if we provide this as a non-enforced practice recommendation.
IMHO this practice is not widespread enough to make it a recommendation. Essentialy, only GHC and Cabal stick to it, not even base
or any other boot package. Making such recommendation at this stage of ecosystem evolution would be a source of constant confusion about stability expectations. People struggle to follow PVP as is, I don't want to make it worse.
Since PVP doesn't have explicit support for prereleases, there are a few techniques that have been practiced in the community, e.g. GHC:
9.4.0.20220501
This allows PVP compliant update once the real
9.4.1
is released.I don't think the spec should enforce any of that, but what if we provide this as a non-enforced practice recommendation.
VSCode has something similar, where
major.EVEN_NUMBER.patch
marks a release andmajor.ODD_NUMBER.patch
marks a pre-release: https://code.visualstudio.com/api/working-with-extensions/publishing-extension#prerelease-extensionsSo in our terms,
X.Y.EVEN_NUMBER.<date-number>
is the pre-release forX.Y.ODD_NUMBER
or somesuch?