chore(release): 0.6.0 gem-release-ready - #4
Merged
Merged
Conversation
Minor rather than patch because this narrows supported Ruby to 3.2 and newer. Semver exempts 0.x from its rules, but the 0.x convention puts compatibility changes in MINOR, and anyone pinned at `~> 0.5.3` should opt in rather than receive it silently. RubyGems enforces required_ruby_version when resolving, so Ruby 3.1 users are held on 0.5.3 with a working install rather than broken. Adds CHANGELOG.md, covering 0.6.0 back to 0.5.0. The gemspec already advertised a changelog_uri pointing at a file that did not exist. nix/gemset.nix and nix/Gemfile.lock stay on 0.5.3 deliberately. They pin the published gem; update-gemset repins them after publish. The nix/Gemfile constraint `~> 0.5` still covers 0.6.0, so it needs no change. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The runbook claimed that raising required_ruby_version stops users on the dropped Ruby from installing at all. That overstates it. RubyGems enforces required_ruby_version while resolving, so those users stay on the last version that supported them and keep a working install. What they lose is future updates, silently. Also notes that semver exempts 0.x, so the minor-bump rule is convention here rather than a requirement, and explains what the bump actually buys: visibility, and a clean opt-in for anyone pinned at a patch-level constraint. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The overlay landed in flake.nix (#2) but the README's system-config section never mentioned it, so it still only showed inputs.snippet_cli.packages.${pkgs.system}.default -- the exact thing the overlay exists to replace. Verified pkgs.snippet_cli resolves once the overlay is applied. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Owner
Author
|
Also folded in: the README's system-config section documented only |
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.
Releases 0.6.0.
Why minor, not patch
This narrows supported Ruby to 3.2 and newer. The runtime dependencies already required it, so the previous
>= 3.1.0constraint let the gem install on a Ruby it could not actually run on.Semver exempts
0.xfrom its rules, so nothing forces this. But the 0.x convention puts compatibility changes in MINOR, and it means anyone pinned at~> 0.5.3opts in deliberately rather than being held back without knowing why.Nobody breaks either way. RubyGems enforces
required_ruby_versionwhile resolving, so Ruby 3.1 users stay on 0.5.3 with a working install.Contents
lib/snippet_cli/version.rb→0.6.0CHANGELOG.md— new, covering 0.6.0 back to 0.5.0. The gemspec already advertised achangelog_uripointing at a file that did not exist, so that link was dead on RubyGems.docs/updating-version.md— corrects the semver section of the runbook merged in docs: add an agent release runbook and make AGENTS.md canonical #3. It claimed raisingrequired_ruby_versionstops affected users installing at all, which overstates it; they keep a working install and silently stop receiving updates. Also notes the 0.x exemption.The Nix pins stay on 0.5.3
nix/gemset.nixandnix/Gemfile.lockare deliberately untouched. They pin the published gem, and 0.6.0 does not exist on RubyGems untilpublishruns.update-gemsetrepins them afterwards and opens its own PR.nix/Gemfileneeds no change either — its~> 0.5constraint is>= 0.5, < 1.0, so 0.6.0 sits inside it. (A 1.0.0 release would fall outside, andupdate-gemsetis built to fail loudly rather than repin the wrong version.)Expected CI behaviour
nix pins match version.rbshould pass with a notice, not fail:This is the release-in-flight path, and this PR is its first real exercise in CI.
After merge
publishpushes the gem, tagsv0.6.0, and creates a release. Thenupdate-gemsetwaits for RubyGems to index it, regenerates the pins, and openschore/repin-gemset-v0.6.0with auto-merge. This is also the first live use ofGEMSET_BOT_TOKEN; if its scopes are wrong the job fails at checkout, leaving the gem published but unpinned — recoverable by rerunning that job.🤖 Generated with Claude Code