Skip to content

fix: derive the formula's version from .version instead of duplicating it - #6

Merged
bougyman merged 1 commit into
mainfrom
fix-formula-version-source-of-truth
Aug 12, 2026
Merged

fix: derive the formula's version from .version instead of duplicating it#6
bougyman merged 1 commit into
mainfrom
fix-formula-version-source-of-truth

Conversation

@bougyman

Copy link
Copy Markdown
Member

Summary

  • Reverts the release-please-computed independent versioning from feat: restructure the formula for per-package release-please versioning #3/fix: bump linear-cli formula to v1.4.0 #4 - that produced a semver number (0.2.0) totally decorrelated from which rubyists/linear-cli release the formula actually points to, which is the only version number anyone actually cares about right now. See feat: bump the homebrew-tap formula automatically after each release linear-cli#95's discussion for the full "why" - release-please's conventional-commit-driven versioning and "mirror an external tool's version" are fundamentally incompatible mechanisms, not something to reconcile.
  • Removes .release-please-manifest.json/.release-please-config.json/the release-please workflow, and CHANGELOG.md - nothing needs them once release-please isn't managing this package's version.
  • Keeps the Formula/linear-cli/ directory (not required without release-please, but still a reasonable, Homebrew-supported organizational choice - see the sharded Formula/a/ack.rb precedent - and costs nothing to leave in place for whenever a formula actually wants that isolation).
  • The formula now reads .version directly (File.read(...).chomp) and interpolates it into both url lines, rather than hardcoding the version in three places (the old release-please-computed .version, plus each url).

Test plan

  • Simulated Homebrew's Formula DSL (a small Ruby stub) to load the real file and confirm the resulting version/url/sha256 values are correct
  • Verified again after a simulated bump (new .version + new checksums) - correct output, url lines left untouched
  • Confirmed idempotent - a repeated bump with the same inputs produces identical output
  • ruby -c syntax check

🤖 Generated with Claude Code

…g it

Reverts the release-please-computed independent versioning from the
previous commit - that produced a semver number (0.2.0) totally
decorrelated from which linear-cli release the formula actually points
to, which is the only version number anyone actually cares about right
now. Removes .release-please-manifest.json/.release-please-config.json/
the release-please workflow, and CHANGELOG.md - nothing needs them once
release-please isn't managing this package's version.

Keeps the Formula/linear-cli/ directory (not required without
release-please, but still a reasonable, Homebrew-supported organizational
choice - see the sharded Formula/a/ack.rb precedent - and costs nothing
to leave in place for whenever a formula actually wants that isolation).

The formula now reads .version directly (File.read(...).chomp) and
interpolates it into both url lines, rather than hardcoding the version
in three places (the old release-please-computed .version, plus each
url) - verified by simulating Homebrew's Formula DSL enough to load the
real file and confirm the resulting version/url/sha256 values are
correct, both before and after a bump, and that a repeated bump with the
same inputs is idempotent.
Copilot AI lite review requested due to automatic review settings August 12, 2026 21:46
@bougyman
bougyman merged commit ab0aae0 into main Aug 12, 2026
1 check passed
@bougyman
bougyman deleted the fix-formula-version-source-of-truth branch August 12, 2026 21:46

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR realigns the tap’s versioning with the upstream rubyists/linear-cli release tags by treating Formula/linear-cli/.version as the single source of truth, and removes release-please artifacts that previously introduced a separate, unrelated semver track.

Changes:

  • Derive the formula’s version from Formula/linear-cli/.version and interpolate it into the release download URLs.
  • Remove release-please configuration and workflow files now that release-please is no longer used.
  • Remove the formula-local CHANGELOG.md that was only maintained by release-please.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
Formula/linear-cli/linear-cli.rb Reads .version once and uses it to build the macOS/Linux release URLs consistently.
Formula/linear-cli/CHANGELOG.md Deleted; no longer needed without release-please-managed changelog generation.
Formula/linear-cli/.version Updated to the upstream release version (1.4.0).
.release-please-manifest.json Deleted; release-please manifest mode no longer used.
.release-please-config.json Deleted; release-please configuration no longer used.
.github/workflows/release-please.yaml Deleted; removes the release-please automation workflow.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

bougyman added a commit to rubyists/linear-cli that referenced this pull request Aug 12, 2026
#98)

## Summary
- `ci/bump_homebrew_formula.rb` now writes `Formula/linear-cli/.version`
to the release tag directly (the formula's own single source of truth,
per rubyists/homebrew-tap#6's matching change) instead of rewriting a
literal version number inside each `url` - the `url` lines are now a
constant `v#{version}/<asset>` in the formula's own source, so only the
`sha256` that follows each one actually needs updating per release.
- Also bumps the `vendor/rubyists-homebrew-tap` submodule pointer to the
merged fix (rubyists/homebrew-tap#6).

## Test plan
- [x] Verified against a real copy of the formula: correct
`.version`/`sha256` output, `url` lines left untouched
- [x] Confirmed idempotent - a repeated bump with the same inputs
produces identical output
- [x] Confirmed the resulting formula evaluates to the correct
`version`/`url`/`sha256` via a small Homebrew-Formula-DSL stub
- [x] `actionlint` clean on `main.yaml`
- [x] `mix format --check-formatted`/`mix usage_rules.sync --check`
clean in `app/`

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants