Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Handling versioning in a continuous integration environment

How do you handle versioning in a continuous integration environment where there is a development branch and a release branch? I'm using git so there is no incrementing repository version to use. Seems like there will be overlapping versions such as 1.1.0 on the dev branch and 1.1.0 on the release branch. Do you just append the text "dev" or "release"?

Also, when you create a release branch do you immediately increment the development branch to the next "proposed" release number? You may not know the next release number yet but if you don't increment it then you have 1.1.0 dev containing new work not included in 1.1.0 release.

So my main question is what is the relationship in the versioning sequences between these two branches?

Keep in mind, I'm not asking anything about how to decide what version numbers to use. I tried asking this before and kept getting comments like "increment major for breaking changes" etc.

like image 842
JC. Avatar asked Apr 07 '10 20:04

JC.


2 Answers

I don't version the dev branch. The devline is the trunk and I periodically branch from dev to a new release folder. So the release branch is full of folders which are basically snapshots of the devline.

IE, under root I have /dev, /releases/0.1, /releases/0.2, /releases/1.0, etc.

I'm not sure if this really answers your question.

like image 198
David Avatar answered Sep 24 '22 19:09

David


I would recommend set a final activity for your CI environment to make tags. I believe the git command looks like this: git tag -a name

We use Major.Minor.Release.BuildNumber

though some places use Major.Minor.Release.CheckinNumber

So, if you want to use that then I would version your dev branch, otherwise just version the release branch.

like image 37
Lucas B Avatar answered Sep 26 '22 19:09

Lucas B