Ben Finney wrote: > Grant Edwards <invalid@invalid.invalid> writes: > >> I agree with the comments that the appellation for "simply the next >> version after 3.9" should be 3.10 and not 4.0. Everybody I know >> considers SW versions numbers to be dot-separated tuples, not floating >> point numbers. > > This consensus is sometimes termed “semantic versioning”, that is, > giving semantic meaning to the structural elements of a version string > <URL:http://semver.org/>. > > I'm glad someone has taken the time to codify that sensible and useful > de-facto standard for version strings. > >> I don't think one (or several) blog posts is going to change the >> perceptions and expectations that have been coditioned into us by >> decades of experience with x.0 versions of countless software >> packages. If it's just another in a a series of incremental "bug fix >> and minor enhancements without breaking backwards incompatibility" >> releases, you simply do not call it vers x.0. > > Agreed. The convention is well established
Only if you ignore the vast majority of software which does not follow that convention. Having *any* semantics to version numbers at all, apart from "bump the version number when you feel like it", is the exception rather than the rule. Probably the most common version numbering system is "the date I last remembered to update the version number", or a simple incrementing counter. (It's a version *number*, not a version tuple.) It is amazing how well-established a convention can appear if you ignore the exceptions to it and consider only a sufficiently narrow niche, like "some of the FOSS software I'm familiar with". > and rogues deviate from it at the peril of unnecessary confusion. Rogues like Python, the Linux kernel, Oracle, Mozilla, Haskell, ... Well, okay, Oracle are rogues. But not because of their version numbering. I find it amusing that Haskell uses a versioning number scheme that uses two dot-separated major versions specifically to combat the emotional reaction to major-version changes exhibited in this thread by Grant. With Haskell, changing from (say) 0.6.3.2 -> 0.7.0.0 is a major API-breaking upgrade, but it avoids the emotional reaction of having to go from 6.3.2 -> 7.0.0. http://www.haskell.org/haskellwiki/Package_versioning_policy Haskell also explicitly prohibits the useful practice of including version tags like "a", "b", "rc" *because some tools couldn't sort them correctly*. (This reminds me of those who advocate spaces over tabs, because some tools can't deal with tabs correctly.) Rather than fix the tools, the Haskell community removed non-numeric tags from the specification. On the other hand, Oracle and Sun before them take the attitude that a jump in Java's version number from 5 to 6 to 7 are only minor release changes, and the Java community is quite happy to agree. -- Steven -- https://mail.python.org/mailman/listinfo/python-list