JSS Release Procedure

From Dogtag
Jump to: navigation, search

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:

References