'Landed here while googling for "date-based semver". I read / scanned the whole document. When I got to the bottom section, "When to Use CalVer", I found myself wondering if I'd missed something.
Like, what is CalVer, exactly???
calver.org summarizes some projects that use date-based version schemes and discusses some common fields and practices in fairly broad terms, but no attempt is made to describe any one, preferred versioning system. And even the examples provided are at times confusing ("YYYY.MM.DD_MICRO" doens't use "point-separated numbers")
In short, CalVer seems little more than a notation for describing [date-based] version strings. But that doesn't seem all that useful.
Questions it doesn't answer:
- How can I identify a CalVer string?
- What is and is not a valid CalVer string?
- What process should be used to generate a CalVer string?
- Is it expected that CalVer strings be parsable to extract the timestamp? (Not a given, btw.)
- What are the requirements for a CalVer string parser?
(BTW, if the answer to that last question starts with, "first you need to know the format description..." then this document hasn't done it's job.)
In short, what i'm suggesting is that rather than being a hand-wavy collection of possible date-based formats, CalVer should springboard off the research that's already been done, and define a single, canonical format that meets the needs of the community moving forward rather than focusing on legacy versioning systems.
Aside: I think CalVer would benefit by being explicit about the fact SemVer is a well-established thing, and that CalVer strings MUST be SemVer compliant. [Edit: Upon further consideration, I've concluded this is just a terrible idea. SemVer and CalVer are just too at odds semantically for this to be viable.]