To release a new version of CEKit a number of steps must be taken.
The automated process uses https://pypi.org/project/zest.releaser to perform the correct steps. This is installed by the Pipfile development environment.
Clone git@github.com:cekit/cekit.git
(from https://github.com/cekit/cekit )
Run make release
and follow the prompts.
Note
A
.pypirc
should be configured according to https://packaging.python.org/specifications/pypirc for PyPi uploads.Note
It is recommended to use a 3 digit version specification when prompted (e.g.
3.9.10
,3.10.2
).
Switch to main branch
Ensure you have the latest code: git reset --hard upstream/main
Merge develop: git merge develop -X theirs
and in the commit message enter: Release <version>
Edit cekit/version.py
file and put <next-version>
, add that file and amend the previous commit.
Tag repository: git tag <version>
Push code to main: git push upstream main
Push tags: git push upstream --tags
Push a release to PyPi (https://pypi.org/project/cekit/ ) via make clean release
(requires twine: https://pypi.org/project/twine/ which is also available as a RPM in Fedora)
Update version on develop to point to next major/minor release
Note
Note when you see line like this: Uploading distributions to https://upload.pypi.org/legacy/ enter blindly your username on PyPi and hit enter, it will ask you for password.
Once the GitHub release is complete RPM builds for Fedora and EPEL can be performed.
A pre-requisite for this is that the developer running the updates has a Fedora Account System account, has Kerberos authentication setup as described here and has correctly setup Pagure with a SSH key here.
Ensure the following RPM packages are installed on your system:
The CEKit RPM repository is stored on Pagure at https://src.fedoraproject.org/rpms/cekit
Unfortunately several manual steps must be done next:
fkinit -u <user-id>
to create your Kerberos principal. Note that by klist
will only show the last created, so use klist -A
to show all.Release
version should be reset to zero for the next command. For example, the changes might be: Name: %{modname}
-Version: 3.9.0
-Release: 3%{?dist}
+Version: 3.12.0
+Release: 0%{?dist}
Summary: Container image creation tool
License: MIT
URL: https://cekit.io
-Source0: https://github.com/cekit/cekit/archive/%{release_version}/%{name}-%{release_version}.tar.gz
+Source0: https://github.com/cekit/cekit/archive/refs/tags/%{version}.tar.gz
spectool -g cekit.spec
which will parse the Source0
and download the sources.rpmdev-bumpspec cekit.spec -c "Release 3.12.0"
which will update the Release
version and generate a change log entry.fedpkg new-sources *tar.gz
to upload the new version. Note that you can explicitly specify the tar file and the system won’t re-upload any old tar files. The lookaside cache applies to all branches so only a single upload is required.fedpkg build --scratch
fedpkg build
(or fedpkg build --nowait
)Then for each branch active in https://src.fedoraproject.org/rpms/cekit/branches switch branch (with fedpkg switch-branch f33
) and repeat steps 3->9. It may be possible to simply cherry-pick or merge the commit from step 7, then perform steps 8 and 9.
Finally using https://bodhi.fedoraproject.org/updates/?packages=cekit submit all non-Rawhide packages as updates. For Rawhide, as everything is testing, its automatic. Once the packages have reached appropriate karma or the requisite time has passed they may be pushed.