D 2024-08-01T12:32:50.343 L Release\sprocess N text/x-markdown P d138882507ef2e18931f4d85aa81dc15c0a10f8f4d95045c8a4d828f5272679e U js W 5815 # 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. 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 epel8 epel9; do git checkout $i && git merge rawhide; done` 1. `git push` 1. `for i in rawhide f39 f40 epel8 epel9; 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. Perform changes to `debian/*`, if necessary. 1. Run `gdb dch`, update the changelog as necessary and 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 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. 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 bde276fbe6b961e182b16bc8fe038c32