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!
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.
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...
Done.
Done what exactly? I mean, apart from turning a version number into a meaningless number
CLI paste? paste.pr0.tips!
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.
So you released version 111 and some people downloaded it and purchased a support contract. Then you add a major new features in version 112 that due to their awesomeness have to break backward compatibility with version 111, and for that reason the aforementioned customer is not going to upgrade right away... but they did find a bug in version 111 that you are obligated to fix.
Myth number one, new features does not need breaking changes. Take a look at the Linux kernel. Probably the most modern kernel of all time, yet its developers take pride in that they don't break compatibility. New features does not have to come with the price of breaking changes.
actually has meaning, a larger number is newer.
How innovative. Care to point me at some version numbering schemes that do not have this property?
CLI paste? paste.pr0.tips!
new features does not need breaking changes
But sometimes/often they do, and in the situation described by AC this case is assumed. What exactly is your point?
CLI paste? paste.pr0.tips!
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; }
That there are actual shipping software that follows this principle and still manages to improve and add new features and capabilities at a high rate. Sometimes people make stupid decisions; no one will ever be able to type ls * without an error in /usr/lib/systemd/system because someone though it was a good idea to put a file there called -.slice there. Now it's part of the API so it has to stay that way. Inconventient, yes. But will it prevent new features and improvements? No.
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)
There are 10 kinds of people in the world...
The cesspool just got a check and balance.
The "10" in windows 10 is not the version number, it's the marketing name. Their version number is something different which may or may not begin with 10, but at least doesn't bounce up and down and outside of the domain randomly
CLI paste? paste.pr0.tips!
its developers take pride in that they don't break compatibility
The fuck you say?
Simple enough to figure out.
The cesspool just got a check and balance.
It's not like I care about what windows does or does not ...
CLI paste? paste.pr0.tips!