Skip to main content

release

Guides through the full gem release process — bump version, update CHANGELOG, tag, push to RubyGems, and create GitHub Release. Use when user asks to release a new version, cut a release, or similar.

Quellinformationen

Repository
bibendi/schked
Letzte Quellaktivität
5. Juli 2026 um 12:41
Erkannte Sprache von SKILL.md
Englisch
Sterne
138
Forks
1

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
release
description
Guides through the full gem release process — bump version, update CHANGELOG, tag, push to RubyGems, and create GitHub Release. Use when user asks to release a new version, cut a release, or similar.
allowed-tools
Bash
# Gem Release Process ## Overview The release process for the `schked` gem involves: 1. Bump version in `lib/schked/version.rb` 2. Add new section in `CHANGELOG.md` 3. Commit and push changes to `master` 4. Create and push a git tag `vX.Y.Z` 5. CI handles the rest (push to RubyGems via Trusted Publishing + GitHub Release) ## Prerequisites - Trusted Publisher must be configured on RubyGems.org: - Go to `https://rubygems.org/gems/schked/settings` - Add a Trusted Publisher for: - Repository: `bibendi/schked` - Workflow: `release.yml` - Environment: *(leave empty)* - You must have push access to the repository - The CI must be green on `master` before releasing (recommended) ## Step-by-step ### 1. Determine new version Look at current version in `lib/schked/version.rb`. Follow [SemVer](https://semver.org/). ### 2. Update version file Edit `lib/schked/version.rb` and update the `VERSION` constant: ```ruby module Schked VERSION = "X.Y.Z" end ``` ### 3. Update CHANGELOG Edit `CHANGELOG.md` and add a new section at the top (after `# Changelog`): ```markdown ## [X.Y.Z] - YYYY-MM-DD - Description of change [#123] ``` Use the format `## [X.Y.Z] - YYYY-MM-DD` with no `v` prefix. Prefix breaking changes with `**BREAKING**`. ### 4. Commit ```bash git add lib/schked/version.rb CHANGELOG.md git commit -m "chore: bump version to X.Y.Z" ``` ### 5. Push to master ```bash git push origin master ``` ### 6. Tag and push the tag ```bash git tag vX.Y.Z git push origin vX.Y.Z ``` ### 7. CI does the rest Pushing the `vX.Y.Z` tag triggers `.github/workflows/release.yml` which: 1. Builds the gem and pushes to RubyGems via `rubygems/release-gem` action (Trusted Publishing — no API keys needed) 2. `bundle exec rake release` runs under the hood — skips tag creation since it already exists (`already_tagged?` guard) 3. Extracts changelog section via `scripts/release_notes.sh` 4. Creates a GitHub Release with the changelog as notes and `.gem` as asset ## Troubleshooting - **`rake release` fails with "not clean"**: Ensure all changes are committed before pushing the tag - **Trusted Publishing fails**: Verify the publisher is correctly configured on rubygems.org and the workflow name matches exactly `release.yml` - **Tag already exists**: If you need to re-release, delete the tag locally and remotely first (`git tag -d vX.Y.Z && git push origin :refs/tags/vX.Y.Z`)
Auf GitHub ansehen