fix(release): stop merges from publishing, filter prerelease tags, gate manual update in dev builds - #69
Merged
Conversation
…te manual update in dev builds Three independent release-plumbing fixes, none of them UI-overhaul work. release.yml no longer fires on a push to main. It published on any push touching src/** or installer/**, so merging a PR was indistinguishable from cutting a release -- v0.1.62 through v0.1.64 all shipped that way as a side effect of merging. Publishing now requires an explicit act: a pushed v*.*.* tag or a manual workflow_dispatch. Both remain. The version auto-bump now filters prerelease tags. The 'v*.*.*' glob also matches v0.1.65-beta.1, and with no filter $parts[2] becomes "65-beta", which [int] throws on -- a tagged prerelease would have broken every subsequent release. dev-build.yml has always had this filter; release.yml did not, despite the docs claiming both did. The Settings "Check now" button no longer self-updates a dev build. The startup check has always been gated on App.IsDevBuild(), but this manual path was not: clicking it in a dev build downloaded the newest stable installer and launched it over the running build. It now reports that updates are disabled and returns. Shipping bug, independent of the beta channel work. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three independent release-plumbing fixes. None of them are UI-overhaul work — they are pulled out ahead of it so
mainis safe before the feature branch diverges further.The trigger removal only takes effect after it lands. This PR touches both
src/**andrelease.yml, so merging it firesrelease.ymlone last time under the old rules and publishes v0.1.65. Every merge after that is silent.That release is legitimate — it contains the user-facing fix in #3 below.
1. A push to main no longer publishes
release.ymlfired on any push tomaintouchingsrc/**,installer/**, or the workflow itself, which made merging a PR indistinguishable from cutting a release. v0.1.62, v0.1.63 and v0.1.64 all shipped as a side effect of merging.Publishing now requires an explicit act: push a
v*.*.*tag, or run the workflow by hand. Both paths are unchanged.paths:went withbranches:— it existed only to narrow the branch trigger, and leaving a path filter on a tag-only trigger would be misleading.2. The version auto-bump no longer breaks on a prerelease tag
The
v*.*.*glob also matchesv0.1.65-beta.1. With no filter,$parts[2]becomes"65-beta"and[int]throws — a single tagged prerelease would have broken every subsequent release.dev-build.ymlhas always had this filter.release.ymlnever did, despite the project docs claiming both did.3. "Check now" no longer self-updates a dev build
CheckUpdatesNowButton_ClickcalledUpdateService.CheckLatestAsync()with no guard. In a dev build, clicking it downloaded the newest stable installer and launched it over the running build — the exact self-replacementIsDevBuild()exists to prevent. The startup check has always been gated; this manual path was not.It now reports that updates are disabled and returns before
UpdateServiceis touched. No XAML change, no orphaned handler.This is a live shipping bug, independent of the beta-channel work that prompted finding it.
Verification
Build clean (warnings-as-errors), full suite green — 631 tests.
🤖 Generated with Claude Code