Skip to content

Commit 1803466

Browse files
authored
Merge pull request #1915 from jan-cerny/release_guide
Move release guide to upstream
2 parents 1fe2754 + b3ed56e commit 1803466

File tree

1 file changed

+56
-5
lines changed

1 file changed

+56
-5
lines changed

release_tools/README.adoc

Lines changed: 56 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,16 @@
55
* System with `python3.6` or greater, installed https://pypi.python.org/pypi/PyGithub/1.35[PyGithub] module.
66
* A GitHub token - get one on https://github.com/settings/tokens. Choose `repo` scope.
77

8+
89
== Process ==
910

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.
17+
1018
. Clone a clean `openscap` repository:
1119

1220
git clone --recurse-submodules https://github.com/OpenSCAP/openscap.git
@@ -20,13 +28,27 @@ Put your GitHub token in the `.env` file, so it contains the following line:
2028
GITHUB_TOKEN='<your token here>'
2129

2230
. 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+
2337
+
2438
OpenSCAP versions are supposed to have correct values from the previous build (see the step 6).
2539

2640
. 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+
2748
+
2849
In the ideal case, the script ends after the ABI compatiblity check finishes.
2950
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!
3052

3153
. Run `handle_ltversions.sh`.
3254
+
@@ -40,6 +62,28 @@ Use this guideline to decide:
4062

4163
+
4264
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.
76+
77+
make package_source
78+
cp openscap-$version.tar.gz ~/fedora-packages/openscap/
79+
cd ~/fedora-packages/openscap/
80+
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.
4387

4488
. Update the NEWS and make the release commit.
4589
+
@@ -55,7 +99,7 @@ The last commit before the release has to have the `openscap-<version>` message
5599
+
56100
In a clean copy of the release branch run `cmake .. && make package_source` in the `build` directory.
57101
+
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.
59103
+
60104
Add relevant part of the NEWS file as a release description.
61105
+
@@ -64,11 +108,18 @@ Attach `openscap-X.Y.Z.tar.gz` and `openscap-X.Y.Z.tag.gz.sha512` files to the G
64108
. Run `new-release.sh`.
65109
+
66110
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.
68112

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/).
69116

117+
. Build packages for RHEL and Fedora.
70118

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!
72122

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

Comments
 (0)