Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

A good strategy for implementing a versioning system

I have been struggling with versioning software for a while now. I'm not talking about a naming convention, I'm talking about how to actually apply a version in a build system all the way through to a release.

I generally use major.minor.maintenance-[release type] i.e. 1.0.2-rc1

The problem is managing the version number. I've tried many ways (sticking it in a build file, a properties file, a database, etc,etc) but I haven't found anything that really works well.

The closest thing I came up with is using Jira which I documented here: http://blog.sysbliss.com/uncategorized/release-management-with-atlassian-bamboo-and-jira.html

I'm wondering if anyone has any good ideas about this. Also, wondering how people handle releasing a version.... i.e. If I release/deploy version 1.0.0-rc1 do bugs found in this release then get logged into 1.0.0 (the next/production release).

like image 218
jdoklovic Avatar asked Nov 04 '08 18:11

jdoklovic


People also ask

What is the use of versioning?

In software development, versioning allows development teams to keep track of changes they make to the project code. The changes may include new functions, features or bug fixes. Minor changes can also be tracked in a similar manner.

What is a versioning strategy?

What Is Versioning? Versioning (also known as "quality discrimination") is a business practice in which a company produces different models of essentially the same product and then charges different prices for each model.


1 Answers

Microsoft uses <major>.<minor>.<patch>-<build number> (or a variation).

I like using <major>.<minor>.<buildnumber>

like image 101
warren Avatar answered Oct 13 '22 18:10

warren