Overview#
This page describes the process to release nuxwdog on Fedora.
A simple and neat workflow for this process would be:
Commit changes locally on the local upstream (github) repo
Tagging upstream repo locally
Generate source tarball using git (rather than tar)
Importing into fedpkg using fedpkg new-sources
Committing the source package repo
Building in COPR (testing)
Push to upstream (github) repo
Tag upstream (github) repo
Push changes to source package repo
Create koji build
Tag source package repo
Submit for bodhi update (if required)
Make a GH release
Authentication#
Obtain a Kerberos ticket for FEDORAPROJECT.ORG account and COPR authentication token.
Getting Source Package#
The repository for nuxwdog source package for Fedora is located at https://src.fedoraproject.org/rpms/nuxwdog. To clone the repository locally:
$ fedpkg clone nuxwdog
$ cd nuxwdog
The repository can be forked for development. To add the fork into the local repository:
Updating Version and Release Numbers#
Follow this guideline to update the version number, release number, and phase in the spec template:
version: ..
release: 0.1, 0.2, …, 1, 2, …
phase: a1, a2, …, b1, b2, …
For pre-releases, set the version number to ..0, set the release number to 0., and phase to -:
Version: 1.0.0
Release: 0.1%{?_timestamp}%{?_commit_id}%{?dist}
%global _phase -a1
For initial release, keep the version number as ..0, set the release number to 1, and comment out the phase:
Version: 1.0.0
Release: 1%{?_timestamp}%{?_commit_id}%{?dist}
# %global _phase -a1
For upstream updates (i.e. upstream bug fixes), increment the in the version number, set the release number to 1:
Version: 1.0.1
Release: 1%{?_timestamp}%{?_commit_id}%{?dist}
# %global _phase -a1
For downstream patches (e.g. platform-specific patches), keep the version number as .., increment the release number:
Version: 1.0.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 ``\ ``nuxwdog
/nuxwdog.spec ``\ ``Fedora/nuxwdog
/nuxwdog.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> - 1.0.4-1
- Rebased to Nuxwdog 1.0.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 v1.0.4
For pre-releases, append the phase name to the version number, e.g. v1.0.4-a1.
Update Source Tarball#
Generate a tarball with the following commands:
$ cd ``\ ``nuxwdog
$ git -C . archive --format=tar.gz --prefix nuxwdog-
`` -o nuxwdog-\ ``.tar.gz v
-
Import the source tarball with the following commands:
$ cd ``\ ``Fedora/nuxwdog
$ fedpkg new-sources ``\ ``nuxwdog
/release/dist/rpmpkg/SOURCES/nuxwdog-1.0.4.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/nuxwdog
$ fedpkg copr-build ``\ ``/
`` –nowait``or create a scratch build (testing in Koji) with the following commands:
If you have updated sources using the above command fedpkg new-sources, then skip this step
$ cp ``\ ``nuxwdog
/release/dist/rpmpkg/SOURCES/nuxwdog-1.0.4.tar.gz
Generate source rpm (srpm):
$ fedpkg srpm
$ fedpkg scratch-build --nowait --srpm nuxwdog-1.0.4-2.fc29.src.rpm
Once the test build is complete, push the changes and tag upstream:
$ cd ``\ ``nuxwdog
$ git push origin master
$ git push origin v1.0.4
Koji Release#
Commit Source Package Changes#
Commit the changes to master (i.e. rawhide):
$ cd ``\ ``Fedora/nuxwdog
$ git commit -m "Rebased to nuxwdog 1.0.4"
$ git push origin master
Creating Koji Build for Rawhide#
Create an official Koji build:
$ cd ``\ ``Fedora/nuxwdog
$ fedpkg build --nowait
If necessary, the task can be monitored with the following command:
``$ koji watch-task ``
Once the build is complete, tag the source package repository:
$ git tag nuxwdog-1.0.4-2.fc29
$ git push origin nuxwdog-1.0.4-2.fc29
Creating GitHub Release#
Go to dogtagpki/nuxwdog and draft a new release (if required).
Include links to the new releases: