MediaWiki releases already support a very sane version scheme following a standard <major>.<minor>.<patch>. I would like to propose that something like the documented semantic versioning scheme be adopted for the other versions as well.
I've already discussed with Mark Hershberger (hexmode) regarding release candidates and he is planning on doing this. So, "1.23.0rc1" becomes "1.23.0-rc.1". It would be great if WMF releases could follow a similar structure. So, "1.24.0wmf5" becomes "1.24.0-wmf.5".
Why care? Mainly by doing this we can more easily understand what the version is. Also, following a standard allows easier programmatic work. For example, there is a semantic version python package that will parse these easily and cleanly.
I’m adopting this module for reading versions on WikiApiary for everything (Mediawiki and extensions). Making the metadata of the release easier to understand will make it easier to write queries like "How many 1.23 releases are running a release candidate?"
Can this be done with no change to current versioning? Yes. But I think it would be nice to set a standard around semantic versions that others could follow.
Note that the Semantic Versioning convention allows a build field as well prefixed with +. The Siteinfo/General API method already reveals the Git version number, but the truncated hash could be used there if desired. I note that there are at times multiple git commits associated with one WMF version number. (e.g., https://wikiapiary.com/w/index.php?title=MediaWiki.org/General&diff=next&oldid=902490)
- Semantic MediaWiki has adopted this going forward. https://github.com/SemanticMediaWiki/SemanticMediaWiki/issues/109
- This was mentioned briefly in bug 61025.