Skip to content

Releasing

Luca Weiss edited this page Nov 10, 2024 · 2 revisions

These are my personal notes on publishing a new release

set ver 0.3.0
  • Bump the version in meson.build - version
  • Write a good changelog.
  • Commit these changes
git add -u
git commit -m "Release version $ver"
  • Tag the release
git tag -s v$ver -m "$ver"
  • Create a source archive
git archive v$ver --prefix=libopenrazer-$ver/ | xz > libopenrazer-$ver.tar.xz
  • Sign the release
gpg --armor --detach-sign libopenrazer-$ver.tar.xz
gpg --verify libopenrazer-$ver.tar.xz.asc
  • Push git
git push --follow-tags
  • Upload libopenrazer-$ver.tar.xz and libopenrazer-$ver.tar.xz.asc to GitHub releases.
  • Update Arch Linux (AUR)
  • Update Alpine Linux
  • Go to packaging repo
cd ~/dev/packaging/
  • Update the spec file (Version: $ver)
cd libopenrazer/
sed -i 's/Version: .*$/Version: '$ver'/' libopenrazer.spec
  • Update debian packaging:
podman run --rm -it -v $PWD:/data -e TZ=$(timedatectl show -P Timezone) -e ver=$ver debian:latest
apt update && apt -y install devscripts neovim
cd /data
export [email protected]; export DEBFULLNAME="Luca Weiss"
dch -v $ver-0
# Use "New upstream release" as changelog
dch -r stable
mkdir -p tmp/tmp
cd tmp/tmp
curl -L https://github.com/z3ntu/libopenrazer/releases/download/v$ver/libopenrazer-$ver.tar.xz -o ../libopenrazer_$ver.orig.tar.xz
cp -r ../../debian .
debuild -us -uc -S -d
cd ../..
  • Copy artifacts to OBS repo
cp libopenrazer.spec tmp/libopenrazer_$ver-0.dsc tmp/libopenrazer_$ver.orig.tar.xz tmp/libopenrazer_$ver-0.debian.tar.xz ~/dev/open-build-service/hardware:razer/libopenrazer/
  • Finalize OBS
rm _service*
# Delete old Debian files from previous release
rm libopenrazer_$oldver*
osc add https://github.com/z3ntu/libopenrazer/releases/download/v$ver/libopenrazer-$ver.tar.xz
rm _service:*
osc addremove
osc commit # message: "v$ver"
Clone this wiki locally