How does version numbering work
Presentation slides also explain why it is important to stick to the same versioning approach throughout the whole life of the software project. Personally my attitude towards using date version instead of real version numbers assumes that developers of the software with dated versions:.
This approach might seem a little bit controversial, but I believe this to be most straightforward way of giving software appropriate version numbers. For every major version you release, it's not uncommon to have a working version you call it internally. For instance, at my last job, we referred to a major version with the following Ubuntu-inspired naming convention:. Version is for big incompatible changes, new functionality, changes on some specific paradigms on software, etc.
Suppose you name your tagged release versions A. C major. This has the nice benefit of letting you know exactly what source you built from, while not having to number every single build yourself.
I prefer version numbers that assign some semantic meaning. As long as you can use the version number to track bugs reported with a particular version to changes that occurred in the source code and in your activity management system then you're probably using the right method.
I use. NET so I'm stuck with the. NET version numbering system but I try to give semantic meaning to the numbers so with. We always make sure thatt he version number is visible in some way with our batch console-based programs its printed to console and a log file, with web apps its on the menu bar at the top usually.
This way if clients report problems we can use the version number to track if they are using the latest version and how many problems we have had with particular versions.
We use Major. Version numbers should have enough information that you avoid conflicts and fixing a bug in the wrong release type problems, but shouldn't convey additional information that isn't relevant. For instance if you use the date customers can tell that they have an older version, and patches against old versions can have confusing versions.
Releases are Major. Patch Patch increments every time you release a build. Minor increments every time backwards compatible functionality is added. Major increments when new functionality is not backwards compatible. Lower numbers reset to 0 every time you increment, so. Z is our internal version number. Y is the public version number, the one that has a meaning to our clients.
When a X. Z version becomes public, there will never be a X. Z is used internally, and has no fixed meaning. Until now, I create a new Z version when I think that the application has a set of features that are interesting to show to non developers, and is relatively stable.
This way, I can show a demo of the "last known good version" of the application when someone ask one. In a near future, I plan to use the Z number versions for naming a "target" of features, in our bugtracker. As a side note, we use maven with the release command to increment the version number. So, there are X. Z-1 and X. Sign up to join this community. The best answers are voted up and rise to the top.
Stack Overflow for Teams — Collaborate and share knowledge with a private group. Create a free Team What is Teams? Learn more. What "version naming convention" do you use? Asked 11 years, 2 months ago. Active 8 months ago. Viewed 93k times. Improve this question.
Richard Stelling Richard Stelling 1, 2 2 gold badges 17 17 silver badges 16 16 bronze badges. Why hexadecimal and not regular decimal system? Add a comment. Active Oldest Votes. Major version. Minor version. Revision number. Build number More often than not, for personal projects, I find this to be overkill.
Improve this answer. Rob Bednark 4 4 bronze badges. Mike B Mike B 1, 10 10 silver badges 11 11 bronze badges. This tends to follow the pattern I've seen used successfully in many projects, large or small.
It is very effective. Is it part of the hash, incremental, or something else? Jace, where I work we use Mercurial, and go off the changeset number. We then have [major]. Does "build number" imply that it's just minor tweaks like bug fixes? Should any new functionality at least get its own revision number?
I encourage everyone to actually read the article that Mike B is referring to. Atwood suggests to NOT use the. NET or any numbered versioning and use date-based versioning instead. Show 2 more comments. For the "1. You might find the Semantic Versioning Specification useful. Stack Overflow for Teams — Collaborate and share knowledge with a private group.
Create a free Team What is Teams? Collectives on Stack Overflow. Learn more. What rules does software version numbering follow? Asked 11 years, 1 month ago. Active 5 years, 5 months ago. Viewed k times. Improve this question. Add a comment. Active Oldest Votes.
The usual method I have seen is X. Z, which generally corresponds to major. The way in which the version number is incremented after this release is dependent on this public API and how it changes.
Patch version Z x. A bug fix is defined as an internal change that fixes incorrect behavior. Minor version Y x. It MAY be incremented if substantial new functionality or improvements are introduced within the private code.
It MAY include patch level changes. Patch version MUST be reset to 0 when minor version is incremented. Major version X X. It MAY also include minor and patch level changes. Patch and minor versions MUST be reset to 0 when major version is incremented.
A pre-release version MAY be denoted by appending a hyphen and a series of dot separated identifiers immediately following the patch version. Pre-release versions have a lower precedence than the associated normal version. A pre-release version indicates that the version is unstable and might not satisfy the intended compatibility requirements as denoted by its associated normal version.
Examples: 1. Build metadata MAY be denoted by appending a plus sign and a series of dot separated identifiers immediately following the patch or pre-release version. Build metadata MUST be ignored when determining version precedence. Thus two versions that differ only in the build metadata, have the same precedence. Precedence MUST be calculated by separating the version into major, minor, patch and pre-release identifiers in that order Build metadata does not figure into precedence.
Precedence is determined by the first difference when comparing each of these identifiers from left to right as follows: Major, minor, and patch versions are always compared numerically. When major, minor, and patch are equal, a pre-release version has lower precedence than a normal version:.
Precedence for two pre-release versions with the same major, minor, and patch version MUST be determined by comparing each dot separated identifier from left to right until a difference is found as follows:. A larger set of pre-release fields has a higher precedence than a smaller set, if all of the preceding identifiers are equal. Example: 1. This is not a new or revolutionary idea.
In fact, you probably do something close to this already. Without compliance to some sort of formal specification, version numbers are essentially useless for dependency management.
By giving a name and clear definition to the above ideas, it becomes easy to communicate your intentions to the users of your software. Once these intentions are clear, flexible but not too flexible dependency specifications can finally be made.
0コメント