Release process
- Update the
ChangeLog
and cherry-pick the change intotrunk
. - Make sure the library version has been increased for all libraries that had changes / bug fixes! Don't forget to increase the minor for every library that had new features added and the patch level for every library that had bug fixes!
- Change the version in
AC_INIT
and theBUNDLE_VERSION
inconfigure.ac
and commit. This commit should have the${version}-release
tag! - Push and make sure the tag propagates to Git as well.
- Run
fossil up ${version}-release
and runfossil clean -x -v
, then./autogen.sh && ./configure
. Don't forget this, or the version might be wrong! - Generate and sign tarballs using
make release
. - Extract
objfw-${version}.tar.gz
andobjfw-docs-${version}.tar.gz
as well asobjfw-${previousVersion}.tar.gz
andobjfw-docs-${previousVersion}.tar.gz
. Then diff the current against the previous version and check nothing unexpected is in there. - Upload the tarballs and their signatures.
- Extract the new documentation and put it here.
- Update the Releases page.
- Update the News page.
- Announce the new release on the Fediverse.
- Announce the new release in the Matrix room and change the topic to include the new release.
Distributions
Repology is great for tracking what distribution is at what version, though it is neither exhaustive nor always update to date.
pkgsrc
In devel/objfw
:
- Edit
Makefile
to increase version. - Run
make makesum
to updatedistinfo
. Check it is correct. - Run
make package
. - Run
make print-PLIST >PLIST
to update thePLIST
. Look at the diff and fix any customPLIST
entries that this reverted. Pay attention to what is already in the otherPLIST.*
files! - Commit (include the change log in the commit message) and run
make cce
.
Fedora
- Make sure to be on rawhide and run
git pull
. - Increase version in
objfw.spec
andgit add
it. - Download the tarball and signature via
spectool -g objfw.spec
. fedpkg upload
bothobjfw-${version}.tar.gz
andobjfw-${version}.tar.gz.sig
.- Remove the old version from
sources
and.gitignore
, thengit add
both. git commit -m "Update to ${version}"
for i in f40 f41 epel8 epel9 epel10; do git checkout $i && git merge rawhide; done
git push
for i in f40 f41 epel8 epel9 epel10 rawhide; do git checkout $i && fedpkg build --nowait; done
- Wait for the builds to be done, then create the updates on Bodhi. Set the Karma required to 1.
Fedora MinGW
- Make sure to be on rawhide and run
git pull
. - Increase version in
mingw-objfw.spec
andgit add
it. - Download the tarball and signature via
spectool -g mingw-objfw.spec
. fedpkg upload
bothobjfw-${version}.tar.gz
andobjfw-${version}.tar.gz.sig
.- Remove the old version from
sources
and.gitignore
, thengit add
both. git commit -m "Update to ${version}"
for i in f40 f41; do git checkout $i && git merge rawhide; done
git push
for i in f40 f41 rawhide; do git checkout $i && fedpkg build --nowait; done
- Wait for the builds to be done, then create the updates on Bodhi. Set the Karma required to 1.
Debian
- Clone the
objfw
Salsa project. - Download the tarball and signature and verify it.
- Run
gbp import-orig ../objfw-${version}.tar.gz
- Run
gbp dch
, update the changelog as necessary. - Perform changes to
debian/*
, if necessary. - Commit.
- Run
gbp buildpackage
. - Run
git tag debian/${version}-${debversion}
, e.g.git tag debian/1.1.5-1
. - Run
git push --tags
. - Ping a Debian developer to upload the package.
MSYS2
- Edit the
PKGBUILD
file to increase the version and update the hash. - Commit with the message
objfw: Update to ${version}
and create a draft pull request. This will trigger CI. - Once CI passed, click on
Ready for review
.
OpenIndiana
- Edit the
Makefile
to increase the version and update the hash. - If a library minor increased, the
*.p5m
files need to be changed as well. - Run
gmake sample-manifest
,gmake publish
,gmake test
andgmake REQUIRED_PACKAGES
. - Commit with the message
library/objfw: update to ${version}
and create a pull request.
Alpine Linux
- Edit the
APKBUILD
to increase the version and update the file name and hash. - Commit with the message
community/objfw: upgrade to ${version}
and create a draft pull request. This will trigger CI. - Once CI passed, click on
Mark as ready
. - Only for bug fix-only releases: Repeat the same for every stable branch, but prefix the PR subject (not the commit) with the branch, e.g.
[3.19] community/objfw: upgrade to 1.0.6
.
Haiku
In dev-libs/objfw
:
- Rename the recipe file to the new version.
- Update the hash.
- Update the library versions as necessary.
- Run
haikuporter --test objfw_x86
(for gcc2h) orhaikuporter --test objfw
. - Commit & push.
OpenBSD
In devel/objfw
:
- Edit
Makefile
and increase the version and potentially library versions. - Run
make makesum
. - Run
make update-plist
to update thePLIST
. Look at the diff and revert any unwanted diffs. - Run
cvs diff
and send the output to ports@openbsd.org.
FreeBSD
In devel/objfw
:
- Edit
Makefile
and increase the version. - Run
make makesum
. - Run
make makeplist >pkg-plist
and check and editpkg-plist
. - Run
make install
. - Create a patch and create a bug titled
devel/objfw: Update to ${version}
. - Attach the patch and change log to the bug.
- Mention whether the update should be applied to the quarterly.
ArchLinux
- Edit
PKGBUILD
in AUR and increase the version and update the hash. - Run
makepkg
. - Run
makepkg --printsrcinfo >.SRCINFO
. git add PKGBUILD .SRCINFO
, then commit and push.