1
1
Release criteria
2
2
----------------
3
3
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:
6
6
7
7
- The code coverage for blocks must be at least 80%
8
8
- No findbugs warnings
@@ -13,24 +13,18 @@ is released:
13
13
Checklist for releasing OpenGrok:
14
14
---------------------------------
15
15
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
18
17
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
24
19
25
20
Then commit and push the change:
26
21
27
- git commit build.xml
22
+ git commit --all
28
23
git push
29
24
30
25
1) build must be clean
31
26
32
- ant clean
33
- ant # defaults to jar currently
27
+ mvn clean package
34
28
35
29
2) sanity check:
36
30
@@ -48,64 +42,22 @@ jars/dirs for tests
48
42
3) check all tests, tests code coverage:
49
43
junit, pmd, findbugs, checkstyle, emma, jdepend
50
44
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%.
70
47
71
- Note that for the IPS package *.p5p the version names are translated this way:
48
+ Jenkins can help here.
72
49
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.
76
51
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
80
53
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
83
56
57
+ Wait for the build to finish and release created.
84
58
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
107
60
of the release, e.g. adding list of issues fixed, whether complete reindex
108
61
is necessary etc.
109
62
110
- 5) Send announcement to [email protected]
111
-
63
+ 5) Send announcement to
[email protected] , Slack channel etc.
0 commit comments