> My preference is to get our versioning as standard Semantic Versioning as > possible, to avoid any precedence that depends on finely reading through the > spec that isn't otherwise popular. Requiring the ordering of the pre-release > tag to be case-sensitive alphanumeric is an example of this, but only one.
I am not comfortable relying upon the pre-release tag being case-sensitive alphanumerically ordered. Standardising on lower-case pre-release labels and build metadata can be beneficial, especially when cross-platform scenarios are considered. (One of SemVer author's own words.) One example implementation exists here (in a library that we do already use) https://github.com/vdurmont/semver4j/blob/master/src/main/java/com/vdurmont/semver4j/Semver.java#L235 And when it comes to cognitive load, I would question the load of knowing what the difference between PRE1 and SNAPSHOT is (when there is none), and why we use a custom pre-release tag on builds that are not releases.