fix: ship the relocation fix to existing installs, document the real release flow - #29
Merged
Merged
Conversation
The release notes told users to roll back with `brew install --formula ./cloudsmith-cli.rb`, which current Homebrew refuses outright: Error: Homebrew requires formulae to be in a tap, rejecting: ./cloudsmith-cli.rb Point at the pinned cloudsmith-cli@<version> formulae in the tap instead, which are installable, linkable and pinnable, and link to the README for the rest. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The tap tracks the CLI's version, so a formula-only fix has no version of its own to ship under. Homebrew's revision field covers exactly this: the package becomes 1.20.2_1 while the CLI still reports 1.20.2, so brew sees an upgrade and existing installs move onto the fixed formula. Without it, anyone already on 1.20.2 keeps a keg built by the failed relocation, which aborts on the first failure and so leaves the bundle partially rewritten. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The CLI release workflow's publish-homebrew job has owned this formula since 1.20.1: it renders packaging/homebrew/cloudsmith-cli.rb.tmpl, verifies the checksums against the published downloads, and opens a bump pull request here as cloudsmith-bot. Nothing in this repository needs running for a version bump. CONTRIBUTING still documented scripts/bump-cloudsmith-cli.sh as the standard release process. That helper had also stopped working when 1.20.1 replaced the single cloudsmith.pyz asset with per-platform archives: it aborts with "Could not find formula url line", because its regexes expect a two-space indent while the urls now sit inside `if OS.mac?` branches. Following the documented process would have failed, so remove it rather than repair a path the automation supersedes. The setup instructions were also unusable: Homebrew rejects `brew install --formula ./Formula/cloudsmith-cli.rb` outright now, since formulae must come from a tap. Record what actually matters instead: the formula is generated, so a change to it has to go into the upstream template or the next release drops it, and the pinned formulae and workflows are what is maintained here. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
- Ships a formula-only fix to existing installs by adding a Homebrew
revision, and updates contributor/release documentation to reflect the current “generated formula” release flow and supported rollback paths.
Changes:
- Add
revision 1toFormula/cloudsmith-cli.rbso Homebrew treats the unchanged CLI version as an upgrade and reinstalls the fixed formula. - Remove the now-broken/obsolete
scripts/bump-cloudsmith-cli.shhelper and updateCONTRIBUTING.mdto document the upstreampublish-homebrewtemplate-driven process. - Update release notes generation to describe rollback via pinned
cloudsmith-cli@<version>formulae instead ofbrew install --formula ./....
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| scripts/bump-cloudsmith-cli.sh | Removes an outdated bump helper script that no longer matches the generated-formula workflow. |
| Formula/cloudsmith-cli.rb | Adds a Homebrew revision to push a formula-only fix to existing installs. |
| CONTRIBUTING.md | Re-documents the real release flow (upstream template) and correct local testing guidance inside a tap checkout. |
| .github/workflows/release.yml | Updates autogenerated release notes rollback instructions to avoid unsupported brew install --formula ./... usage. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
BartoszBlizniak
approved these changes
Jul 31, 2026
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.
Follow-up to #28. Three small changes, no new tooling.
revision 1The tap tracks the CLI's version, so a formula-only fix has no version of its own to ship under. Homebrew's
revisioncovers exactly that: the package becomes1.20.2_1while the CLI still reports1.20.2, sobrewsees an upgrade and existing installs move onto the fixed formula.Verified:
brew outdatedreports(1.20.2) < 1.20.2_1,brew upgradereinstalls,brew styleandbrew auditstay clean.Without it, anyone already on 1.20.2 keeps a keg built by the failed relocation — which aborts on the first failure, so the bundle is left partially rewritten.
publish-homebrewremoves the line on the next release, since it overwrites the formula from its template. That is the correct lifetime: a revision belongs to one CLI version.Release notes rollback instructions
They told users to roll back with
brew install --formula ./cloudsmith-cli.rb, which current Homebrew refuses:Now points at the pinned
cloudsmith-cli@<version>formulae, which are installable, linkable and pinnable. Note this workflow only triggers onv*tags and the release automation opens a pull request without tagging, so it has not run sincev1.14.0— the fix is correct but dormant unless tagging resumes.CONTRIBUTING.mdandscripts/bump-cloudsmith-cli.shCONTRIBUTINGdocumented the bump helper as the standard release process. That is no longer true —publish-homebrewin the CLI repo has owned this formula since 1.20.1 — and the helper had also stopped working: run against the current formula it aborts withCould not find formula url line, because its regexes expect a two-space indent while the urls now sit insideif OS.mac?branches. It also usedsubagainst four url/sha256 pairs and never touched theversionstanza, which is why recent bumps were hand-authored.Following the documented process would have failed, so the helper is removed rather than repaired, and
CONTRIBUTINGnow records what actually matters:brew install --formula ./pathis rejected🤖 Generated with Claude Code