.
D 2024-09-01T11:45:03.534
L Release\sprocess
N text/x-markdown
P 7af0ac4ea4f66796237411c2f5f4340c924c87b7fd10ade166fa5cd768145218
U js
W 6592
# Release process
1. Update the `ChangeLog` and cherry-pick the change into `trunk`.
1. **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!**
1. Change the version in `AC_INIT` and the `BUNDLE_VERSION` in `configure.ac` and commit. This commit should have the `${version}-release` tag!
1. Push and make sure the tag propagates to Git as well.
1. 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!
1. Generate and sign tarballs using `make release`.
1. 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.
1. Upload the tarballs and their signatures.
1. Extract the new documentation and put it [here](https://objfw.nil.im/docs/).
1. Update the [`LATEST`](https://objfw.nil.im/docs/LATEST) symlink.
1. Update the [](Releases) page.
1. Update the [](News) page.
1. Announce the new release on the [Fediverse](https://ap.nil.im/objfw).
1. Announce the new release in the Matrix room and change the topic to include the new release.
## Distributions
[Repology](https://repology.org/project/objfw/versions) 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.
1. Run `make makesum` to update `distinfo`. Check it is correct.
1. Run `make package`.
1. 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!
1. 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`.
1. Increase version in `objfw.spec` and `git add` it.
1. Download the tarball and signature via `spectool -g objfw.spec`.
1. `fedpkg upload` both `objfw-${version}.tar.gz` and `objfw-${version}.tar.gz.sig`.
1. Remove the old version from `sources` and `.gitignore`, then `git add` both.
1. `git commit -m "Update to ${version}"`
1. `for i in f39 f40 f41 epel8 epel9 epel10; do git checkout $i && git merge rawhide; done`
1. `git push`
1. `for i in f39 f40 f41 epel8 epel9 epel10 rawhide; do git checkout $i && fedpkg build --nowait; done`
1. Wait for the builds to be done, then create the updates on [Bodhi](https://bodhi.fedoraproject.org/). Set the Karma required to 1.
### Fedora MinGW
1. Make sure to be on rawhide and run `git pull`.
1. Increase version in `mingw-objfw.spec` and `git add` it.
1. Download the tarball and signature via `spectool -g mingw-objfw.spec`.
1. `fedpkg upload` both `objfw-${version}.tar.gz` and `objfw-${version}.tar.gz.sig`.
1. Remove the old version from `sources` and `.gitignore`, then `git add` both.
1. `git commit -m "Update to ${version}"`
1. `for i in f40 f41; do git checkout $i && git merge rawhide; done`
1. `git push`
1. `for i in rawhide f40 f41; do git checkout $i && fedpkg build --nowait; done`
1. Wait for the builds to be done, then create the updates on [Bodhi](https://bodhi.fedoraproject.org/). Set the Karma required to 1.
### Debian
1. Clone the [`objfw`](https://salsa.debian.org/debian/objfw) Salsa project.
1. Run `gbp import-orig https://objfw.nil.im/downloads/objfw-${version}.tar.gz`
1. Run `gbp dch`, update the changelog as necessary.
1. Perform changes to `debian/*`, if necessary.
1. Commit.
1. Run `git tag debian/${version}-${debversion}`, e.g. `git tag debian/1.1.5-1`.
1. Run `git push --all`.
1. Ping a Debian developer to upload the package.
### MSYS2
1. Edit the [`PKGBUILD`](https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-objfw/PKGBUILD) file to increase the version and update the hash.
1. Commit with the message `objfw: Update to ${version}` and create a draft pull request. This will trigger CI.
1. Once CI passed, click on `Ready for review`.
### OpenIndiana
1. Edit the [`Makefile`](https://github.com/OpenIndiana/oi-userland/blob/oi/hipster/components/library/objfw/Makefile) to increase the version and update the hash.
1. If a library minor increased, the `*.p5m` files need to be changed as well.
1. Run `gmake sample-manifest`, `gmake publish`, `gmake test` and `gmake REQUIRED_PACKAGES`.
1. Commit with the message `library/objfw: update to ${version}` and create a pull request.
### Alpine Linux
1. Edit the [`APKBUILD`](https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/community/objfw/APKBUILD?ref_type=heads) to increase the version and update the file name and hash.
1. Commit with the message `community/objfw: upgrade to ${version}` and create a draft pull request. This will trigger CI.
1. (Optional) Manually trigger the RISC-V build.
1. Once CI passed, click on `Mark as ready`.
1. 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.
1. Update the hash.
1. Update the library versions as necessary.
1. Run `haikuporter objfw_x86` (for gcc2h) or `haikuporter objfw`.
1. Commit & push.
### OpenBSD
In `devel/objfw`:
1. Edit `Makefile` and increase the version and potentially library versions.
1. Run `make makesum`.
1. Run `make update-plist` to update the `PLIST`. Look at the diff and revert any unwanted diffs.
1. Run `cvs diff` and send the output to [ports@openbsd.org](mailto:ports@openbsd.org).
### FreeBSD
In `devel/objfw`:
1. Edit `Makefile` and increase the version.
1. Run `make makesum`.
1. Run `make makeplist >pkg-plist` and check and edit `pkg-plist`.
1. Run `make install`.
1. Create a patch and create a [bug](https://bugs.freebsd.org/bugzilla/) titled `devel/objfw: Update to ${version}`.
1. Attach the patch and change log to the bug.
1. Mention whether the update should be applied to the quarterly.
### ArchLinux
1. Edit `PKGBUILD` in AUR and increase the version and update the hash.
1. Run `makepkg`.
1. Run `makepkg --printsrcinfo >.SRCINFO`.
1. `git add PKGBUILD .SRCINFO`, then commit and push.
Z 895a203039e20f41a15a4a43ca20a8e7