ObjFW  Artifact [15351c5c6a]

Artifact 15351c5c6a115e8cf6240101eb2e8f2f8adbdee41f6edb75780e8772981835e7:

Wiki page [Release process] by js on 2024-02-18 14:54:44.
D 2024-02-18T14:54:44.842
L Release\sprocess
N text/x-markdown
P 798598be59684c6c06b6d3e403c0b3051fc13f92bd29256a4dbfa556f2895520
U js
W 5486
# 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 main.
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 rawhide f38 f39 f40 epel8 epel9; do git checkout $i && git merge main; done`
1. `git push`
1. `for i in rawhide f38 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.

### Homebrew

1. Edit the [Formula](https://github.com/Homebrew/homebrew-core/blob/master/Formula/o/objfw.rb) to increase the version and update the hash.
1. Commit with the message `objfw ${version}` and create a draft pull request. This will trigger CI.
1. Once CI passed, click on `Ready for review`.

### 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 print-plist >pkg/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.
Z 1d67b2dccca5854326eb60f3b1d0e1db