Romance and Rebellion In Software Versioning
joabj writes: Most software releases more or less follow the routine convention of Major.Minor.Bugfix numbering (i.e. Linux 4.2.1). This gives administrators an idea of what updates are major ones and might bring compatibility issues. As Dominic Tarr points out in his essay "Sentimental Versioning," a few projects boldly take on more whimsical schemes for versioning, such as Donald Knuth's use of successive Pi digits to enumerate new updates to TeX, or Node.js's punk-rock careening between major and minor releases. If you break convention, Tarr seems to be arguing, at least do so with panache.
http://semver.org/
All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
Some can go up to eleven, but most should stop at 10.
Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
you could do something whimsical. Alternately, you could not be an asshat. Sematic versioning FTW!
Start at 1 and just increase with 1 with each version. No dots, no nothing. Just an integer that is increased with every new version. Done.
Use one series of primes for major.
Use a second series of primes for minor.
Use a third series of primes for patches/micro/bug fixing.
The three sets of primes should be disjoint.
For each release, multiply major with minor with micro. That is your unique version number.
You may add some sugar by adding powers of these primes for various locales, database compatibility etc. etc.
Religous speak to God. Insane are spoken to by God. When all shut up, one can finally hear Shostakovich in peace
It seems many developers stopped caring about versioning several years ago. I've been torn on whether it was just marketing finally overtaking common sense or too many inexperienced but successful developers showing up and making some poor choices.
It seems that many projects now opt for a regular progression of numbers with or without any major new features. Even Ubuntu releases, formerly the occasion for the introduction of some initially broken new feature, have become boring affairs. Even the well-numbered Linux kernel appears to break the major.minor paradigm. Besides the addition of more and more drivers, was there anything particularly disruptive in the move from Linux 3.19 to Linux 4.0? Beyond the third digit of the bug fix releases, Linux version numbering fall more into the sentimental rather than semantic versioning camp.
1. Stay Consistent!!! Don't drop your versioning and swap to another one. Like Microsoft, Firefox, to a lesser extent Apple.
2. If you are using names make sure you know which one is greater. Ubuntu method of going up alphabetically is a good example.
3. Insure development milestones are consistent with the version bumps. So Version 2 to version 3, should be just as large as from version 3 to 4.
The key importance to versioning is so we know what is the newest/newer version and if you have a major version you will expect some compatiblity changes.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
Please keep this crap simple. It is maddening for secondary tools (ones I don't use daily) to get all cutesy with the Silky Lizard release, which is also known at the 2015 release, but has an about me of 3.2.0.1 hotfix 430. Searching under all three is necessary since everyone adopts a different preferred method to refer to the dang thing.
On the whole I greatly prefer versions that are year.month based so it is very easy to recognize how long in the tooth something is. XYZ 2015.01 tells me it is the January 2015 release.
Windows, OSX, Android, Adobe Photoshop, several Linux distributions... And that's just off the top of my head.
Once you start ascribing mythical importance to version updates and, worse, selling them, they cease to be useful as a development milestone.
Microsoft Windows 42
With year-based, I know how old the software is and I know which version is newer. Maybe add something extra to indicate if it's a major change, or if it gets long term support.
Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
If your new version has limited new visible functionality let users vote on a name of the most current release. Can you name the new feartures of android Marshmellow? If nom, you do know the name!
Microsoft's version numbering "system" has always been the most confusing to me. They went from actual version numbers (Windows 3, 3.1), to the approximate year they were released (Windows 95, 98, 2000), to weird brand names (XP, Vista), to made up version numbers that aren't actually the real version number reported by the OS * (Windows 7, 8, 8.1), and finally back to an actual version number that matches what the OS says it is (Windows 10).
Bloody hell, man!
* Windows 7 reports as version 6.3 when you use the "ver" command.
We run with a full continuous integration cycle... with continuous release. Our software version is whatever the Git hash is. This is for a large computational science library that's in use by hundreds of researchers around the globe.
You can read about some of our software development methodology here:
http://openresearchsoftware.me...
Although, that's a bit dated now and a newer article has already been accepted by the Journal Of Open Research Software and should be out "real soon now". You can see an early draft of the new paper here:
http://figshare.com/articles/C...
OK, but I'm still on Panache 0.92.4!
Do I need to update to 1.1.x?
Also, it would seem that certain young women on the internet have Panache x.x.x.
You have the right to remain sentient. If you give up the right to remain sentient, you will be elected to public office
I personally preferred the version numbers or years. When they changed it Me, XP, Vista, and then 7, 8, it annoyed the hell out of me. At least with the version numbers 3.11 or years Windows 98 it was easier to follow. I am glad they finally made Windows 10 kernel ver 10. Now Office is kind of a different story because for one instance they had XP but then switched back to years.
It's great as a joke or starting out, but eventually you end up with a really long number, and comparing the two numbers becomes something that a string length function is required for. Only slightly more readable than using 1,11,111,1111,11111,...,1111111111111111111111... If all you're doing is counting the number of digits, you might as well use something more than base 1 for your counting. Then you're just counting of course.
Hello,
First you have to use something AUTOMATIC. No manual changes else it is bound to be forgotten.
Second, use something that makes it easy to see how old somethign is
Third use something that allows you to go back to a given version.
We use the date AND svn revison number as the version. It is automaticaly included in the build so there is no manual operations to change the version.
Since we have done that, we have never gone back!
cyrille
i.e. means equivalent. e.g. means an example.
I think Firefox and Chrome, which are mostly on a quarterly release schedule, should have year-dot-quarter version numbers. But I don't have anything against the Gecko version numbering (which is what current FF version numbers correspond to). But no matter what you do, someone will have borked up browser version checking that will break when you change your version numbering to something that seems more sensible.
As for the Windows version naming, the funny part was how they were ready to call it Windows 9 until they realized just how much stuff (including Java, for fuck's sake!) did if (substr(version, 0, 9) == "Windows 9") to lazily check for Windows 95 and Windows 98 in a single comparison.
#naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
Just like kids and puppies, it's cute when they are small, then develops into an annoyance you put up with for decades.
It's also painfully annoying when you have a version of something (e.g. 7.0), then another version contained in the driver file (340.xx), and still another version reported in a OS-unique manner (e.g. A.B.C.D on Windows). Yes, I'm looking at you, nVidia.
Similar case for themed server names versus role-based, owner-based, rack-location-based, physical-location-based -- anything that allows a rational human being to determine something useful about the server in question versus some confused mnemonic about how Gandalf is the mail server, Frodo is the DNS and Bilbo is the VPN gateway.
I count four, no, five version numbering schemes:
- romantic
- rebellious
- traditional (major.minor.bugfix)
- marketing (year.month)
- irrational (a.k.a. Mine's Bigger: Firefox, Chrome)
I can never remember which version of Eclipse is newer. The names don't tell me anything, which is particularly annoyince since releases go only by their names and not their version numbers.
Quick, without looking up the answer, which is newer for example - Luna or Kepler? Heck, do you even know what version numbers these are? If I look up eclipse in a Linux repository I'll only get version numbers, so I won't know how out of date it is compared to the latest (as repos are almost always out of date).