ObjFW  Release process

Release process

  1. Update the ChangeLog and cherry-pick the change into trunk.
  2. 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!
  3. Change the version in AC_INIT and the BUNDLE_VERSION in configure.ac and commit. This commit should have the ${version}-release tag!
  4. Push and make sure the tag propagates to Git as well.
  5. Run fossil up ${version}-release and run fossil clean -x -v, then ./autogen.sh && ./configure. Don't forget this, or the version might be wrong!
  6. Generate and sign tarballs using make release.
  7. Extract objfw-${version}.tar.gz and objfw-docs-${version}.tar.gz as well as objfw-${previousVersion}.tar.gz and objfw-docs-${previousVersion}.tar.gz. Then diff the current against the previous version and check nothing unexpected is in there.
  8. Upload the tarballs and their signatures.
  9. Extract the new documentation and put it here.
  10. Update the LATEST symlink.
  11. Update the Releases page.
  12. Update the News page.
  13. Announce the new release on the Fediverse.
  14. 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:

  1. Edit Makefile to increase version.
  2. Run make makesum to update distinfo. Check it is correct.
  3. Run make package.
  4. Run make print-PLIST >PLIST to update the PLIST. Look at the diff and fix any custom PLIST entries that this reverted. Pay attention to what is already in the other PLIST.* files!
  5. Commit (include the change log in the commit message) and run make cce.

Fedora

  1. Make sure to be on rawhide and run git pull.
  2. Increase version in objfw.spec and git add it.
  3. Download the tarball and signature via spectool -g objfw.spec.
  4. fedpkg upload both objfw-${version}.tar.gz and objfw-${version}.tar.gz.sig.
  5. Remove the old version from sources and .gitignore, then git add both.
  6. git commit -m "Update to ${version}"
  7. for i in f39 f40 f41 epel8 epel9 epel10; do git checkout $i && git merge rawhide; done
  8. git push
  9. for i in f39 f40 f41 epel8 epel9 epel10 rawhide; do git checkout $i && fedpkg build --nowait; done
  10. Wait for the builds to be done, then create the updates on Bodhi. Set the Karma required to 1.

Fedora MinGW

  1. Make sure to be on rawhide and run git pull.
  2. Increase version in mingw-objfw.spec and git add it.
  3. Download the tarball and signature via spectool -g mingw-objfw.spec.
  4. fedpkg upload both objfw-${version}.tar.gz and objfw-${version}.tar.gz.sig.
  5. Remove the old version from sources and .gitignore, then git add both.
  6. git commit -m "Update to ${version}"
  7. for i in f40 f41; do git checkout $i && git merge rawhide; done
  8. git push
  9. for i in f40 f41 rawhide; do git checkout $i && fedpkg build --nowait; done
  10. Wait for the builds to be done, then create the updates on Bodhi. Set the Karma required to 1.

Debian

  1. Clone the objfw Salsa project.
  2. Run gbp import-orig https://objfw.nil.im/downloads/objfw-${version}.tar.gz
  3. Run gbp dch, update the changelog as necessary.
  4. Perform changes to debian/*, if necessary.
  5. Commit.
  6. Run git tag debian/${version}-${debversion}, e.g. git tag debian/1.1.5-1.
  7. Run git push --all.
  8. Ping a Debian developer to upload the package.

MSYS2

  1. Edit the PKGBUILD file to increase the version and update the hash.
  2. Commit with the message objfw: Update to ${version} and create a draft pull request. This will trigger CI.
  3. Once CI passed, click on Ready for review.

OpenIndiana

  1. Edit the Makefile to increase the version and update the hash.
  2. If a library minor increased, the *.p5m files need to be changed as well.
  3. Run gmake sample-manifest, gmake publish, gmake test and gmake REQUIRED_PACKAGES.
  4. Commit with the message library/objfw: update to ${version} and create a pull request.

Alpine Linux

  1. Edit the APKBUILD to increase the version and update the file name and hash.
  2. Commit with the message community/objfw: upgrade to ${version} and create a draft pull request. This will trigger CI.
  3. (Optional) Manually trigger the RISC-V build.
  4. Once CI passed, click on Mark as ready.
  5. 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:

  1. Rename the recipe file to the new version.
  2. Update the hash.
  3. Update the library versions as necessary.
  4. Run haikuporter objfw_x86 (for gcc2h) or haikuporter objfw.
  5. Commit & push.

OpenBSD

In devel/objfw:

  1. Edit Makefile and increase the version and potentially library versions.
  2. Run make makesum.
  3. Run make update-plist to update the PLIST. Look at the diff and revert any unwanted diffs.
  4. Run cvs diff and send the output to ports@openbsd.org.

FreeBSD

In devel/objfw:

  1. Edit Makefile and increase the version.
  2. Run make makesum.
  3. Run make makeplist >pkg-plist and check and edit pkg-plist.
  4. Run make install.
  5. Create a patch and create a bug titled devel/objfw: Update to ${version}.
  6. Attach the patch and change log to the bug.
  7. Mention whether the update should be applied to the quarterly.

ArchLinux

  1. Edit PKGBUILD in AUR and increase the version and update the hash.
  2. Run makepkg.
  3. Run makepkg --printsrcinfo >.SRCINFO.
  4. git add PKGBUILD .SRCINFO, then commit and push.