You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: release_tools/README.adoc
+56-5Lines changed: 56 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,8 +5,16 @@
5
5
* System with `python3.6` or greater, installed https://pypi.python.org/pypi/PyGithub/1.35[PyGithub] module.
6
6
* A GitHub token - get one on https://github.com/settings/tokens. Choose `repo` scope.
7
7
8
+
8
9
== Process ==
9
10
11
+
When releasign alpha/pre-releases, please keep in mind how RPM handles the versioning. Please see how is this handled in SPEC file https://fedoraproject.org/wiki/Packaging:Versioning before you build Fedora and RHEL packages.
12
+
13
+
. Ensure the project is in a good shape for the release
14
+
+
15
+
* Check CI is passing in https://github.com/OpenSCAP/openscap/actions?query=branch%3Amaint-1.3+event%3Apush[GitHub Actions]
16
+
* Check builds in https://dashboard.packit.dev/projects/github.com/OpenSCAP/openscap[Packit] are successful.
@@ -20,13 +28,27 @@ Put your GitHub token in the `.env` file, so it contains the following line:
20
28
GITHUB_TOKEN='<your token here>'
21
29
22
30
. Check out that the information within `versions.sh` is accurate.
31
+
+
32
+
This file contains some variables that differ among the releases:
33
+
+
34
+
* `version`
35
+
* `previous_version`
36
+
23
37
+
24
38
OpenSCAP versions are supposed to have correct values from the previous build (see the step 6).
25
39
26
40
. Run `up_to_compliance_check.sh`.
41
+
+
42
+
This script automatically performs the following actions:
43
+
44
+
* Build and check build, execute CTest locally
45
+
* Check Python bindings
46
+
* Perform ABI compliance check
47
+
27
48
+
28
49
In the ideal case, the script ends after the ABI compatiblity check finishes.
29
50
Review the check results and act accordingly to them.
51
+
Read the report, if there is an ABI issue (some symbols were changed / removed), fix it before proceeding further!
30
52
31
53
. Run `handle_ltversions.sh`.
32
54
+
@@ -40,6 +62,28 @@ Use this guideline to decide:
40
62
41
63
+
42
64
This changes the libtool library version number so it reflects the API/ABI change.
65
+
The version number is changed in the following way:
66
+
* adjusts `LT_CURRENT`, `LT_REVISION`, `LT_AGE``
67
+
* version is current:revision:age -http://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html
68
+
* resulting soname will be (`LT_CURRENT-LT_AGE`.`LT_AGE`.`LT_REVISION`)
69
+
* Run `ls -al src/.libs/`, check the `libopenscap.so` version afterwards. Ensure that `libopenscap.so` has been built with new soname. Twice.
70
+
71
+
. Perform scratch builds.
72
+
+
73
+
Run `make package_source` and perform a scratch build on Fedora and RHEL in order to verify that the prepared OpenSCAP upstream release will be able to be built and packaged in these Linux distributions.
74
+
+
75
+
You have to be a Fedora packager in order to be able to perform Fedora scratch builds.
rpmdev-bumpspec -c "upgrade to the latest upstream release" \
81
+
-n $version openscap.spec
82
+
fedpkg build --scratch --srpm
83
+
+
84
+
Use an analogous process also for RHEL.
85
+
+
86
+
If something went seriously wrong with the tests (e.g. a very bad pointer handling was revealed), you may want to abort the release process and fix those problems first.
43
87
44
88
. Update the NEWS and make the release commit.
45
89
+
@@ -55,7 +99,7 @@ The last commit before the release has to have the `openscap-<version>` message
55
99
+
56
100
In a clean copy of the release branch run `cmake .. && make package_source` in the `build` directory.
57
101
+
58
-
Create new GitHub release with the name of the vesrion (e.g. 1.3.2) being released.
102
+
Create new GitHub release with the name of the version being released.
59
103
+
60
104
Add relevant part of the NEWS file as a release description.
61
105
+
@@ -64,11 +108,18 @@ Attach `openscap-X.Y.Z.tar.gz` and `openscap-X.Y.Z.tag.gz.sha512` files to the G
64
108
. Run `new-release.sh`.
65
109
+
66
110
This will create and push version tags, create new GitHub release and handle milestones swap.
67
-
Finally, it will bump version numbers in `versions.sh` to be ready for the next (e.g. 1.3.3) upstream release.
111
+
Finally, it will bump version numbers in `versions.sh` to be ready for the next upstream release.
68
112
113
+
. Generate and publish documentation.
114
+
+
115
+
Generate documentation by running `make docs`. Then, upload the generated OpenSCAP User manual and Doxygen API documentation to https://static.open-scap.org/ (Ask project maintainers for information on how to update https://static.open-scap.org/).
69
116
117
+
. Build packages for RHEL and Fedora.
70
118
71
-
== To be done ==
119
+
. Send announcement.
120
+
+
121
+
Check out https://www.redhat.com/archives/open-scap-list/2017-August/msg00001.html for template. If the release is exciting, tweet it on twitter!
72
122
73
-
* Full GitHub integration: Blocked by https://github.com/PyGithub/PyGithub/pull/525
74
-
* Full Jenkins integration.
123
+
. Merge maintenance branch into main.
124
+
+
125
+
It is the best timing to merge just after release.
0 commit comments