Versioning in a continuous integration environment

How do you deal with version control in a continuous integration environment where there is a development branch and a release branch? I use git, so there is no version with a repository extension. It seems that there will be duplicate versions, such as 1.1.0 in the dev branches and 1.1.0 in the release branches. Are you just adding the text "dev" or "release"?

Also, when you create a release branch, do you immediately expand the development branch to the next “proposed” release number? You may not know the next version number yet, but if you do not increase it, you have a 1.1.0 dev containing a new job not included in version 1.1.0.

So my main question is: what is the relationship in the sequence of versions between these two branches?

Keep in mind, I am not asking how to decide which version numbers to use. I tried asking for it earlier and kept getting comments like "increment major for breaking changes" etc.

+7
versioning continuous-integration
source share
3 answers

I am not a version of the dev branch. Devline is a trunk, and I periodically switch from dev to a new release folder. Thus, the release branch is full of folders, which are mostly snapshots of the deviant.

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

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

+3
source share

I would recommend setting the ultimate activity for your CI tagging environment. I believe the git command is as follows: git tag -a name

We use Major.Minor.Release.BuildNumber

although in some places Major.Minor.Release.CheckinNumber is used

So, if you want to use this, I would run the version of your dev branch, otherwise just the version of the release branch.

+1
source share

If you have only one development branch, it is more efficient to make it be a chest and separate the release branch every time you just want to stabilize the release. If you have several function projects, you can have a branch for each of them with CI settings on them. Once they are completed, you will merge them one by one into the trunk, and as soon as everything is combined, you will go to the first scenario in which you again separate the release branch from the trunk.

In any case, you do not keep the development branch between releases. You want to finish it and start a new one for development for the next version. Thus, some features may be forked during multiple releases if they take longer. But you do not have too much mess in your branches of development.

You can branch out development branches for the next version as soon as you branch out a release branch or even earlier if you want, but as a rule, it is a good idea, as soon as you stabilize the release, merge changes from the release branch into the main and from there to the development industry, if you do that. If you expect branching after release, you avoid a few merges there, but you slow down development.

0
source share

All Articles