I guess this is more of a general question that I cant find the the answer to anywhere. What is the version numbering logic for open source developers managing software releases and is there any governance or guidance I can read up on. The origins of this question comes from me reviewing and researching software on countless websites that I would like to use on my Ubuntu OS.

Through experience, I am learning some sites are much better than others explaining if a release is a stable, experimental or maintenance release but these explanations are not consistent with any version numbering logic I am familiar with.

  • This might be better asked over on programmers.stackexchange.com It specializes in "conceptual questions about software development." – andrewsomething Aug 18 '12 at 1:11
  • @andrewsomething I agree up to a point. This question was asked from an Ubuntu user perspective not conceptual one. I primarily use USC for applications but in some cases was tempted by the latest and greatest. I wanted to know what the logic was to help me identify stable releases etc. The question was answered to my satisfaction and if it benefits others elsewhere, them I'm good. – stephenmyall Aug 18 '12 at 10:50

As you probably know, there are more than one "software development methodology".

And sure, more than one "life cycle".

Some of them are "Security Driven", some "Release Driven", some "Deadline Driven", "Documentation Driven" and more...

Even if the software is open source or not, the software can be managed with any methodology, according to the goal of the project.

I think; It is better to search for the methodology of the project (if there is one, specific), and then search for it's release version control.

Example: The project is managed with Waterfall Life Cycle Model. That means, every step is checked, there is a big work and team is separated to certain sub-teams. (This one is not good for Open Source, because Water Fall is not for open minds)

Example 2: The project is managed with XP, Agile: That means, the project is story (feature) driven. Every sub-version brings new and fully-working features to latest program. And every version brings bigger changes (or may be collects goal related features together).

  • I am familiar with the Waterfall Life Cycle model you describe (although i didn't know thats what it was called). Quote:"It is better to search for the methodology of the project (if there is one, specific)" I have been doing this and This is probably the driver for my questions as there are many methods. Thanks for the response. – stephenmyall Apr 9 '12 at 22:20
  • There are more than Waterfall Life Cycle model, which fits to my description. Please make sure, if you are just talking with this description. This LC is used to create military software like softwares, and believe me it is NOT A GOOD choice, if you are trying to create a software which is adaptive, fast and featured. More information can be found at: en.wikipedia.org/wiki/Software_development_process en.wikipedia.org/wiki/Waterfall_model en.wikipedia.org/wiki/Agile_software_development – Hilmi Erdem KEREN Apr 9 '12 at 23:09

I think it's probably worth addressing the specific version numbering part of this question. Of course, there are many different development models and versioning schemes used by open source projects. So there is no real definitive answer, but there are two projects very important to Ubuntu that have a specific way of doing version numbering.

GNOME uses a versioning scheme where in X.Y.Z

  • "X" is the major release number. This only changes when there has been a significant break in the project.

  • "Y" is an even number for stable versions, and is an *odd number for unstable version*s. For example, the 3.4.1 version is stable, but 3.5.1 is unstable.

  • "Z" is used in "odd numbered" releases as an increment towards the "even numbered" release. After the stable release is made, it is then used for small bug fix "point releases."

The Linux kernel uses a similar versioning scheme. This seems to work best for projects with time based releases.

Not the answer you're looking for? Browse other questions tagged or ask your own question.