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.

معلومات المصدر

المستودع
bibendi/schked
آخر نشاط في المصدر
٥ يوليو ٢٠٢٦ في ١٢:٤١
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
١٣٨
التفرعات
١

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
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`)
عرض على GitHub