ObjFW  Artifact [19c8d73d72]

Artifact 19c8d73d723374aa3dab1ea200a12ba7f85f4a7e1290f7336dbdb7d8aabc2716:

Wiki page [Release process] by js on 2024-11-09 13:09:02.
D 2024-11-09T13:09:02.145
L Release\sprocess
N text/x-markdown
P 3adc64cc18ad295275b2fb1130aa4a2d70aca9f107c25fdb72322f161c4fd830
U js
W 6611
# 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 f40 f41 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.

### Debian

1. Clone the [`objfw`](https://salsa.debian.org/debian/objfw) Salsa project.
1. Download the tarball and signature and verify it.
1. Run `gbp import-orig ../objfw-${version}.tar.gz`
1. Run `gbp dch`, update the changelog as necessary.
1. Perform changes to `debian/*`, if necessary.
1. Commit.
1. Run `gbp buildpackage`.
1. Run `git tag debian/${version}-${debversion}`, e.g. `git tag debian/1.1.5-1`.
1. Run `git push --tags`.
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. 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 --test objfw_x86` (for gcc2h) or `haikuporter --test 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 7a6e3d562147a2b3e3ea8702786b5bfe