ObjFW  Update of "Release process"

Overview

Artifact ID: c1516f30aacc56c669f469656701a25b822ef3c3ac923b4326fc2c808efa8bf7
Page Name:Release process
Date: 2024-03-16 00:46:49
Original User: js
Mimetype:text/x-markdown
Parent: 15351c5c6a115e8cf6240101eb2e8f2f8adbdee41f6edb75780e8772981835e7 (diff)
Next 33345a0084ff02dcf1b7120878e9a39e43e2ac1b925177b90f8a72e20aabe366
Content

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 main.
  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 rawhide f38 f39 f40 epel8 epel9; do git checkout $i && git merge main; done
  8. git push
  9. for i in rawhide f38 f39 f40 epel8 epel9; 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.

Homebrew

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

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 commit message 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 print-plist >pkg/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.