Versioning strategy major minor

Contents

  1. Specify API level requirements
  2. About semantic versioning
  3. How to Version Your Software
  4. GitLab release and maintenance policy | GitLab
  5. What is a Release?

For example maybe I added the ability to print a receipt or added the ability to import pictures. Basically additional functionality I want to add now and not wait for the next major release to do it. This could be a change in the layout, colour scheme, etc. This bug needs to be fixed and published.

Specify API level requirements

It just means I am fixing what I already published to work properly. I would also use this if I am working on a new build, a new addition or started a new major version. The published version obviously needs to be patched while we are waiting for the next major, minor or build release. So in this manner a finished or stalled project can still be fixed and made useable until the next release is published.

I hope this gives someone a better understanding of how this type of versioning would or should work. To me it is the only definition and practice that makes any type of real sense when using this type of versioning. I've only ever seen a build number as the last number in the release ID. I'm not sure how you'd come up with a revision to a build number. I like time-stamped build numbers, although not quite as David describes I like major.

However, where I work, we just use a sequential number that our build server generates. It is whatever you want it to be. I tend to use year. If I'm producing more than one a minute, something's wrong. What do you want it to be. What they need to do is make it so you get to the source used to create that output, so whatever enables you to do that.

About semantic versioning

Our team uses the third number revision as the revision number from the Subversion repository. We use the fourth number build as the build number from our TeamCity continuous integration server which actually creates the build. TeamCity creates a new AssemblyInfo file with the right s in it during the build process. Like jkohlhepp, we use the third part of the version to show the revision number in SubVersion and the fourth to show the build number from our continuous integration server Jenkins for us. This gives us a several benefits - having the version number set by our CI server removes a manual step that could otherwise be accidentally missed; it's easy to check that a developer hasn't done a cheeky release from their development PC which would result in these numbers being zero ; and it allows us to tie any piece of software back to both the code that it was generated from and the CI job that built it, just by looking at the version number - which we occasionally find very useful.

Sign up to join this community.


  • Semantic Versioning | Semantic Versioning.
  • rolling spot forex mifid.
  • the best system for binary option no lose system?
  • best option trade broker.
  • Versioning.
  • trade cryptocurrency like forex.

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.

How to Version Your Software

Asked 10 years, 3 months ago. Active 6 months ago. Viewed 98k times.

Keyboard Shortcuts

Improve this question. A9S6 A9S6 1 1 gold badge 7 7 silver badges 8 8 bronze badges. Then you could use the date as the build number! Build: Each new build of the system, Revision: Hotfix or "revision" of a released Build, thus why it alters the Build version; You're current build might be 2.

JimmyHoffa, build number shall always increasing, so I am not sure your example make sens as you couldn't have 2. Also it doesn't make sens that if you persue development process you are still at 2. Of course it entirely possible to have differents set of rules that lead to the version scheme you descibre Add a comment.

Active Oldest Votes. Improve this answer. AminM 2 2 silver badges 12 12 bronze badges. I would expect revision being last to make the most sense - it's the number that will probably change the most. Izkata, actually the build number changes the most, as least the way we use it at my main contract right now that uses strict version control because we are making medical devices.

An updated revision indicates that there has been a fix to the previous software, which needs to be tested by QA Quality Assurance. This is a completely separate department that does extensive testing for three days per FDA guidelines.

GitLab release and maintenance policy | GitLab

If they find any issues, then additional code changes might be necessary requiring a new build recompile and link and then retesting, but the revision number stays the same. I was thinking of revisions in version control. Show 3 more comments. The downside of that approach is, that we might get the following sequence of events: commit number Alice added feature A CI produces build 1.

JensG JensG 2, 1 1 gold badge 16 16 silver badges 25 25 bronze badges. This is a great answer! Here is the relevant portion: major. Cole Campbell Cole Campbell 3 3 silver badges 9 9 bronze badges. It baffles me why no one knows this standard, every answer here claims build goes at the end and doesn't understand revision is very simple; it means hotfix.

You release a build, and then create further builds, but when you have to go back and fix that release you update the revision to show the particular build which was released was altered for a new release — Jimmy Hoffa Oct 25 '12 at Merely incrementing the number is rather useless if the revision stays the same unless you have an insane build system that is time dependent.

Using the build number to signal what compiler, platforms, etc is useful. Build as a recompilation of the same source seems to be an important point that is missed. PeterX As in the case of build-specific changes when re-targeting? Once you make a revision, its no longer the same source. I just want some logical consistency!!

Show 1 more comment. There are at least a couple different things that I could imagine the build number referencing: Source control version that was release. I like using the source control revision , because it makes it that much easier to look up bugs reported against that version in source control.


  • The Release Process (Symfony Docs).
  • engulfing pattern binary options strategy.
  • Set application version information;
  • how to be successful in trading binary options.
  • What is a "Major Release"?.
  • Semantic versioning.

MasonWheeler : works great if you are on SVN. But when you get to dcvs land it gets squirrely. This would be one thing I miss most about svn I'll add.

What is a Release?

A build number is usually incremented at every build so it is unique. So, it is recommended that if you are not aware of what is on a tag, to stick to the stable releases listed on the Release page. Batch ingestion Native batch Hadoop-based. Configuration Configuration reference Extensions Logging. Misc Papers. This page discusses how we do versioning and provides information on our stable releases.

Versioning Strategy We generally follow semantic versioning. The general idea is "Major" version leftmost : backwards incompatible, no guarantees exist about APIs between the versions "Minor" version middle number : you can move forward from a smaller number to a larger number, but moving backwards might be incompatible.

The higher the number, the more things are fixed hopefully , but the programming interfaces are completely compatible and you should be able to just drop in a new jar and have it work. Tagging strategy Tags of the codebase are equivalent to release candidates.