-
Notifications
You must be signed in to change notification settings - Fork 17
Release Workflow
End-to-end sequence for moving the overlay to a new cosmic-epoch tag.
git switch main
git pull
git clean -dfx
git reset --hard HEADgit switch -c feature/<version>Every release bump goes through a feature branch + PR — never commit a release bump directly to main.
./scripts/bump_and_qa_ebuild.sh -v epoch-<version>See Bumping Ebuilds for the retry loop (undo the half-generated ebuild, reproduce with ebuild ... prepare/compile/install, diff against the previous version and against -9999, re-run the script for just that package).
The bump script updates ebuild boilerplate, but it won't tell you about behavioral changes upstream made. For each package that changed non-trivially, check the cosmic-epoch release notes and diff the relevant submodule between tags for:
-
Justfilechanges — install paths, new install targets, renamed recipes -
Cargo.tomlchanges — new/removed system dependencies, feature flags
Port anything relevant into the ebuild by hand (e.g. a new file the Justfile now installs needs a matching line in src_install).
emerge -uDN @world --quiet --keep-goingThis actually builds and installs every touched package on the test VM, which is what proves the bump works — a pkgcheck scan alone doesn't (see the caveat in QA and Testing). Run it alongside a static check for obvious mistakes:
python3 scripts/simple-qa-check.pygit push --set-upstream origin feature/<version>The overlay keeps the current and previous tagged version around; once the new version is green, drop the version two releases back (VERSION-2):
find -iname "*<version-2>*.ebuild" -delete
./scripts/digests_and_cache.sh # regenerates manifests, removing the now-unused tarball hash lines
git commit -a -m "drop <version-2>"Title/description as a short changelog, e.g.:
add 1.7.0, drop 1.5.0
- fix cosmic-comp OSD crash on wayland (backport #142)
- ...
A clean release-bump PR should look mechanical, per package:
-
1 file moved:
<pkg>-<version-2>.ebuilddeleted,<pkg>-<version>.ebuildadded - Manifest: 1 line removed (old tarball hash), 1 line added (new tarball hash)
- plus any extra, clearly-scoped fixes from step 5
If a package's diff looks like more than that without an obvious reason, that's worth a second look before merging — it usually means something didn't bump cleanly.
Once CI (qa-check.yml) is green on the PR, merge it.
- The overlay version is the
cosmic-epochtag with theepoch-prefix dropped (epoch-1.4.0→1.4.0). -
-r<N>is reserved for overlay-only patch bumps (a backport, an ebuild fix) — never for upstream source changes. Don't reach for-r1just because a new tag exists; that's a newPV. - New packages (e.g.
cosmic-monitor,cosmic-sound-themewhen they were split out upstream) get added the same way as any other bump target — see Adding and Updating Packages for the--createflow.