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.

Datos de origen

Repositorio
bibendi/dip
Última actividad en el origen
9 de mayo de 2026 a las 21:13
Idioma detectado de SKILL.md
inglés
Estrellas
1350
Forks
50

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
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 `dip` gem involves: 1. Bump version in `lib/dip/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/dip/settings` - Add a Trusted Publisher for: - Repository: `bibendi/dip` - 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/dip/version.rb`. Follow [SemVer](https://semver.org/). ### 2. Update version file Edit `lib/dip/version.rb` and update the `VERSION` constant: ```ruby module Dip 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/dip/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`)
Ver en GitHub