CdmReleasePolicy » History » Version 2
Andreas Kohlbecker, 03/23/2011 01:22 PM
1 | 1 | Andreas Kohlbecker | |
---|---|---|---|
2 | # CDM Release, Versioning & Branch Policy |
||
3 | |||
4 | |||
5 | 2 | Andreas Kohlbecker | Other conventions and policies are found in the [[CdmLibraryDev#ConventionsPolicyies|CDM Library Development Resources]] |
6 | |||
7 | |||
8 | |||
9 | 1 | Andreas Kohlbecker | |
10 | ---- |
||
11 | |||
12 | |||
13 | All cdm product releases are tagged with a version number which consists of multiple parts: |
||
14 | |||
15 | |||
16 | ~~~ |
||
17 | <major release>.<minor release>.<patch level>.r<revision number> |
||
18 | ~~~ |
||
19 | |||
20 | The **<major release>.<minor release>** do not really need to be explained here since the concept of these is commonly known and understood. |
||
21 | |||
22 | These two numbers are derived from ${project.version} which refers to the <project><version>x.x</version> of the poms. |
||
23 | |||
24 | For general information on Versioning schemes please refer to see http://en.wikipedia.org/wiki/Software_versioning#Software_Versioning_schemes or http://de.wikipedia.org/wiki/Versionsnummer (in German) |
||
25 | |||
26 | |||
27 | |||
28 | **<patch level>** starts fro a specific version with 0 and is increased by 1 every time we release a new bug fix of version x.x. this number is derived from .${project.patchversion} (maybe I should change this portperty name to project.patchlevel |
||
29 | |||
30 | The patch level is also reflected in the svn repository since we decided on the following release branch policy: |
||
31 | |||
32 | * for a <major release>.<minor release> a new branch is created initially |
||
33 | |||
34 | * every time a bug fix release is created the latest branch is again branched |
||
35 | |||
36 | So we end up with a branch tree like: |
||
37 | |||
38 | |||
39 | |||
40 | ~~~ |
||
41 | BRANCH-cdmlib-2.3 |
||
42 | BRANCH-cdmlib-2.3.1 |
||
43 | BRANCH-cdmlib-2.3.2 |
||
44 | BRANCH-cdmlib-2.3.3 |
||
45 | BRANCH-cdmlib-3.3 |
||
46 | BRANCH-cdmlib-3.3.1 |
||
47 | ~~~ |
||
48 | |||
49 | |||
50 | The **<revision number>** is used to distinguish between the different builds of a release branch. |
||
51 | |||
52 | All releases, also those downloadable by end users, will be tagged by the full version string. The following scheme illustrates the release process in the context of the branches in the source repository: |
||
53 | |||
54 | |||
55 | |||
56 | ~~~ |
||
57 | BRANCH-cdmlib-2.3 x---> release BRANCH-cdmlib-2.3.0.r8789 |
||
58 | | x---> release BRANCH-cdmlib-2.3.0.r8876 |
||
59 | +-BRANCH-cdmlib-2.3.1 x---> release BRANCH-cdmlib-2.3.1.r8987 |
||
60 | | x---> release BRANCH-cdmlib-2.3.1.r9001 |
||
61 | | x---> release BRANCH-cdmlib-2.3.1.r9023 |
||
62 | +-BRANCH-cdmlib-2.3.2 x---> release BRANCH-cdmlib-2.3.2.r9045 |
||
63 | +-BRANCH-cdmlib-2.3.3 x---> release BRANCH-cdmlib-2.3.3.r9670 |
||
64 | BRANCH-cdmlib-3.3 x---> release BRANCH-cdmlib-3.3.0.r9011 |
||
65 | +-BRANCH-cdmlib-3.3.1 x---> release BRANCH-cdmlib-3.3.1.r9033 |
||
66 | ~~~ |