JSS Release Procedure
Contents
- 1 Overview
- 2 Authentication
- 3 Getting Source Package
- 4 Updating Version and Release Numbers
- 5 Merging Spec Changes
- 6 Commit Upstream Changes
- 7 Update Source Tarball
- 8 Creating Test Build
- 9 Commit Source Package Changes
- 10 Creating Koji Build for Rawhide
- 11 Creating Koji Build for Current Fedora
- 12 Creating Bodhi Update for Current Fedora
- 13 Creating GitHub Release
- 14 References
Overview
This page describes the process to release JSS on Fedora.
Authentication
Obtain a Kerberos ticket for FEDORAPROJECT.ORG account and COPR authentication token.
Getting Source Package
The repository for JSS source package for Fedora is located at https://src.fedoraproject.org/rpms/jss. To clone the repository locally:
$ fedpkg clone jss $ cd jss
The repository can be forked for development. To add the fork into the local repository:
$ git remote add <username> ssh://<username>@pkgs.fedoraproject.org/forks/<username>/rpms/jss.git $ git fetch <username>
Updating Version and Release Numbers
Follow this guideline to update the version number, release number, and phase in the spec template:
- version: <x>.<y>.<z>
- release: 0.1, 0.2, ..., 1, 2, ...
- phase: a1, a2, ..., b1, b2, ...
For pre-releases, set the version number to <x>.<y>.0, set the release number to 0.<n>, and phase to -<phase>:
Version: 4.5.0 Release: 0.1%{?_timestamp}%{?_commit_id}%{?dist} %global _phase -a1
For initial release, keep the version number as <x>.<y>.0, set the release number to 1, and comment out the phase:
Version: 4.5.0 Release: 1%{?_timestamp}%{?_commit_id}%{?dist} # %global _phase -a1
For upstream updates (i.e. upstream bug fixes), increment the <z> in the version number, set the release number to 1:
Version: 4.5.1 Release: 1%{?_timestamp}%{?_commit_id}%{?dist} # %global _phase -a1
For downstream patches (e.g. platform-specific patches), keep the version number as <x>.<y>.<z>, increment the release number:
Version: 4.5.1 Release: 2%{?_timestamp}%{?_commit_id}%{?dist} # %global _phase -a1
See also:
Merging Spec Changes
To merge the spec template with the actual spec files:
$ meld jss/jss.spec Fedora/jss/jss.spec
In the actual spec files, add a change log entry for the new release in downstream spec file (unless there is one already that has not been released):
* Tue May 29 2018 Dogtag PKI Team <pki-devel@redhat.com> - 4.4.4-1 - Rebased to JSS 4.4.4
Notes:
- Do not override changes that were done downstream unless they were done improperly.
- Do not add a change log entry in the upstream spec template.
- There might be changes that cannot be merged. This is OK.
Commit Upstream Changes
Commit all changes to upstream:
$ git commit -a -m "Updated version number to x.y.z-r"
Create a local tag with the following commands:
$ git tag v4.4.4
For pre-releases, append the phase name to the version number, e.g. v4.4.0-a1.
Update Source Tarball
Generate a tarball with the following commands:
$ cd jss $ ./build.sh --source-tag=v4.5.0 src
Import the source tarball with the following commands:
$ cd Fedora/jss $ fedpkg new-sources ~/build/jss/SOURCES/jss-4.5.0.tar.gz
Then verify with the following commands:
$ fedpkg local $ fedpkg lint
Creating Test Build
Create a COPR build with the following command:
$ cd Fedora/jss $ fedpkg copr-build @pki/10.6 --nowait
or create a scratch build with the following commands:
$ fedpkg srpm $ fedpkg scratch-build --nowait --srpm jss-4.4.5-1.fc28.src.rpm
Once the test build is complete, push the changes and tag upstream:
$ cd jss $ git push origin master $ git push origin v4.4.4
Commit Source Package Changes
Commit the changes to master (i.e. rawhide):
$ cd Fedora/jss $ git commit -m "Rebased to JSS 4.4.4" $ git push origin master
Creating Koji Build for Rawhide
Create a Koji build:
$ fedpkg build --nowait
If necessary, the task can be monitored with the following command:
$ koji watch-task <task ID>
Once the build is complete, tag the source package repository:
$ git tag jss-4.4.4-1.fc29 $ git push origin jss-4.4.4-1.fc29
Creating Koji Build for Current Fedora
Cherry pick the changes from master into the current Fedora (e.g. f28):
$ git checkout <branch> $ git cherry-pick <commit ID> $ git push origin <branch>
Then create a Koji build:
$ fedpkg build --nowait
If necessary, the task can be monitored with the following command:
$ koji watch-task <task ID>
Tag package repository:
$ git tag jss-4.4.4-1.fc28 $ git push origin jss-4.4.4-1.fc28
Creating Bodhi Update for Current Fedora
Once the Koji build is complete, submit a Bodhi update:
$ bodhi updates new \ --request=testing \ --notes="Update to JSS 4.4.4-1" \ --type=enhancement jss-4.4.4-1.fc28
The update will appear here.
Creating GitHub Release
Go to https://github.com/dogtagpki/jss/releases/tag/v4.4.4 and edit the release.
Include links to the new releases: