From 0fd57958fec3c0dd501a7686519dff53ff188965 Mon Sep 17 00:00:00 2001 From: FlintWave Date: Tue, 2 Jun 2026 00:16:08 -0700 Subject: [PATCH] ci(release): add a release-candidate path via -rc prerelease tags Push a tag with a `-rc` suffix (e.g. v26.06.01-rc.1) to build the real installers and publish them as a GitHub pre-release. Pre-releases are not marked "Latest", so the in-app update check (which reads /releases/latest) never offers an RC to users. This lets us test submitted code and feature builds without bumping the announced version. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/release.yml | 5 +++++ CONTRIBUTING.md | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 49bb0a4..2893f2e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -151,6 +151,11 @@ jobs: - name: Publish installers + SHA256SUMS to the GitHub Release uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 with: + # A tag with a `-rc` suffix (e.g. v26.06.01-rc.1) publishes a PRE-RELEASE: it is not + # marked "Latest", so the once-a-day in-app update check (which reads /releases/latest) + # never offers it to users. Push such a tag to test a real installer build without + # announcing a new version; a normal `vX.Y.Z` tag publishes the announced release. + prerelease: ${{ contains(github.ref_name, '-rc') }} files: | dist/*.dmg dist/*.msi diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f28a274..083f3d6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -42,3 +42,10 @@ searchmob-desktop --help # invoke the CLI Releases follow Ubuntu-style `YY.MM.VV` versioning. Bump `__version__` in `src/searchmob_desktop/version.py`, tag `vYY.MM.VV`, and push the tag. The release workflow builds the native installers and uploads them to the GitHub Release. + +**Release candidates (testing without announcing a version).** To build real installers for testing +without bumping the version that users are told about, push a tag with a `-rc` suffix, for example +`v26.06.01-rc.1`. The same workflow runs, but the GitHub Release is published as a **pre-release**: +it is not marked "Latest", so the once-a-day in-app update check (which reads `/releases/latest`) +never offers it to users. Install the pre-release assets manually to test, then delete the +pre-release (or let it sit) and cut the normal `vYY.MM.VV` tag when the work is ready to announce.