diff --git a/.claude/skills/release/SKILL.md b/.claude/skills/release/SKILL.md index ad3c94a..96ee5de 100644 --- a/.claude/skills/release/SKILL.md +++ b/.claude/skills/release/SKILL.md @@ -20,11 +20,15 @@ is safe; **merging it is the publish action**. owner's explicit go-ahead. 2. **Bump**: `VERSION = 'X.Y.Z'`; CHANGELOG `## [X.Y.Z] - ` + empty `## [Unreleased]` + link reference; `bin/changelog-notes X.Y.Z` prints the section. -3. **Verify**: `bundle exec rake compile`, `CI=1 bundle exec rspec`, `bundle exec rubocop`, +3. **Refresh the issue-template versions placeholder** in `.github/ISSUE_TEMPLATE/bug_report.yml`: + gem version from `lib/gem/ruby2html/version.rb`, Ruby version from `.ruby-version`, Rails version + from `Gemfile.lock`. GitHub issue forms cannot derive the value at fill time, so it is refreshed here. +4. **Verify**: `bundle exec rake compile`, `CI=1 bundle exec rspec`, `bundle exec rubocop`, `bundle exec rake smoke`. -4. **PR**: branch `release/X.Y.Z`, one commit `release: X.Y.Z`, PR titled `release: X.Y.Z` with the - changelog section as the body. Ask before pushing if the user hasn't asked for the PR. -5. **Merge** only on green and only when the user (or, for non-major releases, the developerz.ai +5. **PR**: branch `release/X.Y.Z`, one commit `release: X.Y.Z`, PR titled `release: X.Y.Z` with the + changelog section as the body, containing nothing else apart from the placeholder refresh in + step 3. Ask before pushing if the user hasn't asked for the PR. +6. **Merge** only on green and only when the user (or, for non-major releases, the developerz.ai maintainer policy) authorizes it. Then watch `gh run list --workflow release.yml --limit 1`. ## Never diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 68e5559..f29a93b 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -41,7 +41,11 @@ body: attributes: label: Versions description: "ruby2html, ruby -v (with/without YJIT), Rails, ViewComponent, OS/arch" - placeholder: "ruby2html 2.0.0, ruby 3.4.7 +YJIT, Rails 8.1.4, x86_64-linux" + # GitHub issue forms cannot derive values at fill time (static label/description/ + # placeholder/value only), so this placeholder is refreshed by hand: on every + # release, take the gem version from lib/gem/ruby2html/version.rb, the Ruby version + # from .ruby-version and the Rails version from Gemfile.lock (see docs/release.md). + placeholder: "ruby2html 2.1.0, ruby 4.0.9 +YJIT, Rails 8.1.4.1, x86_64-linux" validations: required: true - type: checkboxes diff --git a/docs/release.md b/docs/release.md index 61b45dd..f59f77d 100644 --- a/docs/release.md +++ b/docs/release.md @@ -18,8 +18,9 @@ agent never opens one. 1. Pick the version (SemVer): patch for fixes; minor for new tags/helpers/options, perf work or intentional output changes; major for removed or renamed public API, or a raised Ruby/Rails floor. 2. `lib/gem/ruby2html/version.rb` → `VERSION = 'X.Y.Z'` (the gemspec reads it). 3. `CHANGELOG.md`: move `## [Unreleased]` into `## [X.Y.Z] - YYYY-MM-DD` (with "Upgrading to X.0" for a major), leave an empty `## [Unreleased]`, add the `[X.Y.Z]` link at the bottom. `bin/changelog-notes X.Y.Z` must print the section. -4. Verify: `bundle exec rake compile && CI=1 bundle exec rspec && bundle exec rubocop && bundle exec rake smoke`. -5. One PR titled `release: X.Y.Z`, containing nothing else. Merge on green. +4. Refresh the issue-template versions placeholder in `.github/ISSUE_TEMPLATE/bug_report.yml`: gem version from `lib/gem/ruby2html/version.rb`, Ruby version from `.ruby-version`, Rails version from `Gemfile.lock`. GitHub issue forms cannot derive the value at fill time, so it is updated here. +5. Verify: `bundle exec rake compile && CI=1 bundle exec rspec && bundle exec rubocop && bundle exec rake smoke`. +6. One PR titled `release: X.Y.Z`, containing nothing else (apart from the issue-template placeholder refresh in step 4). Merge on green. ## After