11Release criteria
22----------------
33
4- Ideally , the following minimum criteria should be fulfilled before a new version
5- is released:
4+ Ideally, the following minimum criteria should be fulfilled before a new
5+ version is released:
66
77 - The code coverage for blocks must be at least 80%
88 - No findbugs warnings
@@ -13,24 +13,18 @@ is released:
1313Checklist for releasing OpenGrok:
1414---------------------------------
1515
16- ../ext_lib - is a directory where we keep latest JFlex.jar and all necessary
17- jars/dirs for tests
16+ 0) set new version
1817
19- 0) set proper version in build.xml
20-
21- <property name="version" value="???"/>
22-
23- and put some stuff into CHANGES.txt
18+ mvn versions:set -DgenerateBackupPoms=false -DnewVersion=1.1-rcXYZ
2419
2520 Then commit and push the change:
2621
27- git commit build.xml
22+ git commit --all
2823 git push
2924
30251) build must be clean
3126
32- ant clean
33- ant # defaults to jar currently
27+ mvn clean package
3428
35292) sanity check:
3630
@@ -48,64 +42,22 @@ jars/dirs for tests
48423) check all tests, tests code coverage:
4943 junit, pmd, findbugs, checkstyle, emma, jdepend
5044
51- They should be ok , currently only checkstyle has 8 warnings , the rest is
52- clean; emma reports should be based according to what is set for the release ,
53- usually it's overall coverage above 80%)
54-
55- (jenkins can help here , see README.txt on setup)
56-
57- The release is OK , once above is fulfilled to our satisfaction.
58-
59- 4) produce proper distributions
60-
61- Check them before upload , always try to build on Solaris , since GNU tar might
62- create a non-standard compliant .tgz version and tag from step 0) will be used
63- to produce the archive
64-
65- ant dist
66- ant package
67-
68- The command above creates both formats of package .pkg and .p5p into the directory dist
69-
45+ emma reports should be based according to what is set for the release,
46+ usually it's overall coverage above 80%.
7047
71- Note that for the IPS package *.p5p the version names are translated this way:
48+ Jenkins can help here.
7249
73- 0.12 ~ 0.12.0.1.0
74- 0.<n> ~ 0.<n>.0.1.0
75- ...
50+ The release is OK, once above is fulfilled to our satisfaction.
7651
77- 0.12-rc1 ~ 0.12.0.0.1
78- 0.12-rc<i> ~ 0.12.0.0.<i>
79- ...
52+ 4) Trigger release creation
8053
81- (Note that the release candidate must follow immediately after the basic version
82- number (0.12))
54+ git tag 1.1-rcXYZ
55+ git push origin tag 1.1-rcXYZ
8356
57+ Wait for the build to finish and release created.
8458
85- 0.12.1 ~ 0.12.1.0.0
86- 0.12.<j> ~ 0.12.<j>.0.0
87- ...
88-
89- 0.12.0.1 ~ 0.12.0.1.1
90- 0.12.0.<k> ~ 0.12.0.1.<k>
91- ...
92-
93- 5) Create the release and upload the files via GitHub API:
94-
95- First , make sure these environment variables are set:
96-
97- GITHUB_USER (your Github user name)
98- GITHUB_PASSWORD (your Github password)
99- https_proxy (set to host:port of proxy if behind HTTP proxy)
100- DO_PRERELEASE (set to non-empty if creating release candidate)
101-
102- Next:
103-
104- ant release
105-
106- Now go to https://github.com/OpenGrok/OpenGrok/releases and edit the text
59+ Go to https://github.com/OpenGrok/OpenGrok/releases and edit the text
10760 of the release, e.g. adding list of issues fixed, whether complete reindex
10861 is necessary etc.
10962
110- 5) Send announcement to opengrok-users@yahoogroups.com
111-
63+ 5) Send announcement to opengrok-users@yahoogroups.com, Slack channel etc.
0 commit comments