136 lines
4.5 KiB
Markdown
136 lines
4.5 KiB
Markdown
How to release a new version of Lorax for Fedora
|
|
================================================
|
|
|
|
Install `tito` and `podman` on your system.
|
|
|
|
Optionally patch `tito` to support signing the tags with your gpg key. If you
|
|
do this your key should be available on the public gpg keyservers so that
|
|
people can verify your signature.
|
|
|
|
The upstream `tito` PR can be found [here](https://github.com/dgoodwin/tito/pull/328).
|
|
|
|
You will need to have permission to push to the lorax repository, and to the
|
|
Fedora dist-git repository. If your FAS name isn't listed on the [lorax package
|
|
page](https://src.fedoraproject.org/rpms/lorax/) members list then you need to
|
|
contact one of the project admins and ask to be added.
|
|
|
|
|
|
Run the tests
|
|
-------------
|
|
You can run the tests using `podman` instead of `docker` by running this from the
|
|
top level of the checked-out lorax repo:
|
|
|
|
DOCKER=podman RUN_TESTS="ci test_cli" make test-in-docker
|
|
|
|
If they fail, fix them and submit a PR :)
|
|
|
|
You can also run the cockpit CI tests locally:
|
|
|
|
make vm
|
|
./test/check-cli
|
|
|
|
See the `./test/README.md` documentation for more details about the cockpit CI
|
|
tests.
|
|
|
|
|
|
Update the documentation
|
|
------------------------
|
|
If there are changes to the code that would effect the documentation you should
|
|
rebuild the `sphinx` based documents:
|
|
|
|
DOCKER=podman make docs-in-docker
|
|
git add docs/
|
|
git commit -m "New lorax documentation - x.y"
|
|
|
|
The documentation is accessible [from here](https://weldr.io/lorax), and the
|
|
source for those pages is stored in the `gh-pages` branch of lorax. I have a
|
|
second `lorax` repository checked out that I use for updating the `gh-pages`
|
|
branch:
|
|
|
|
git clone git@github.com:weldr/lorax.git lorax-gh-pages
|
|
cd lorax-gh-pages
|
|
git checkout gh-pages
|
|
git pull
|
|
|
|
And then I rsync the new documentation over from the current lorax build
|
|
directory:
|
|
|
|
rsync -aP --exclude .git --exclude .nojekyll ../lorax/docs/html/ ./
|
|
git add .
|
|
git commit -m "Add lorax x.y documentation"
|
|
git push
|
|
|
|
After a few minutes the online version of the documentation should appear.
|
|
|
|
Tag and build the release tar.gz
|
|
--------------------------------
|
|
We use the `tito` tool to handle incrementing the version number and updating
|
|
the `lorax.spec` file changelog section using the git commits since the last
|
|
tag. `tito tag` will open an editor, allowing you to edit the changelog. Make
|
|
sure it looks clean, entries starting with '- ' and no wrapped lines:
|
|
|
|
tito tag
|
|
git push --follow-tags origin
|
|
|
|
Build the release tarball:
|
|
|
|
tito build --tgz
|
|
|
|
The release tarball will be placed into /tmp/tito/lorax-x.y.z.tar.gz
|
|
|
|
|
|
Build the Fedora lorax package
|
|
------------------------------
|
|
The first time you do this you need to clone the Fedora dist-git repository
|
|
[from here](https://src.fedoraproject.org/rpms/lorax/) using your ssh key:
|
|
|
|
git clone URL lorax-fedora
|
|
|
|
After that the steps are the same each time, make sure your `lorax-fedora` repo
|
|
is up to date:
|
|
|
|
git co master
|
|
git pull
|
|
|
|
Copy the `lorax.spec` that tito modified from your `lorax` project repo:
|
|
|
|
cp /path/to/lorax/repo/lorax.spec .
|
|
|
|
Make sure you have a current fedoraproject kerberos ticket, you can use
|
|
`kswitch -p FEDORAPROJECT.ORG` to switch to it if you need to, or `kinit` to
|
|
get one. See [the Fedora
|
|
wiki](https://fedoraproject.org/wiki/Infrastructure/Kerberos) for more details
|
|
and debugging tips.
|
|
|
|
Upload the new release's tar to build system, making sure you pick the right
|
|
one. The `/tmp/tito/` directory is only cleared out when you reboot, so it may
|
|
have several versions in there:
|
|
|
|
fedpkg new-sources /tmp/tito/lorax-x.y.tar.gz
|
|
|
|
Update the changelog. Yes, fedpkg changes the formatting and it is annoying.
|
|
Make sure the lines start with '- ' and that any wrapped lines are un-wrapped.
|
|
Usually the committer email address is what will get bumped to the next line:
|
|
|
|
fedpkg clog
|
|
vim clog
|
|
|
|
Add all the updated files, make sure nothing has been forgotten (lorax.spec, sources, .gitignore):
|
|
|
|
git add -u
|
|
git status (just to be sure you have all the files added )
|
|
git commit -F clog
|
|
git show
|
|
|
|
Examine the commit with care. Make sure the sources have changed, that the NVR
|
|
is correct, and that it contains the %changelog
|
|
|
|
At this point anything can be changed, either reset the checkout to the last
|
|
commit and start over, or fix the problems and squash the changes together into
|
|
the commit you just made. There should be one commit per-release.
|
|
|
|
fedpkg push && fedpkg build
|
|
|
|
If there are errors in the build, check the logs in koji at the link provided by fedpkg.
|
|
|