This document describes the release process for the grape-oas gem.
Before releasing, ensure:
-
All tests pass locally and in CI:
bundle install bundle exec rake -
The CHANGELOG.md is up to date with all changes since the last release.
-
The version number in
lib/grape_oas/version.rbis correct.
-
Update the version in
lib/grape_oas/version.rbto the release version -
Prepare the CHANGELOG:
bundle exec rake release:prereleaseThis task will:
- Replace "Unreleased" with the version number and today's date
- Remove any "Your contribution here" placeholder lines
- Commit with message "Preparing for release vX.X.X"
Note: The task is idempotent - safe to run multiple times.
-
Push and create the release:
git push origin main bundle exec rake releaseThis will:
- Build the gem
- Create a git tag
- Push the tag to GitHub
- Push the gem to RubyGems.org
Manual Release Steps (if needed)
-
Update CHANGELOG.md
- Change "Unreleased" to the version number and date
- Remove any "Your contribution here" placeholder lines
-
Commit the release preparation:
git add CHANGELOG.md git commit -m "Preparing for release v0.x.x" git push origin main -
Create and push the release:
bundle exec rake releaseThis will:
- Build the gem
- Create a git tag
- Push the tag to GitHub
- Push the gem to RubyGems.org
You can automate the post-release preparation with:
bundle exec rake release:postrelease
git push origin mainThis task will:
- Bump the patch version in
lib/grape_oas/version.rb - Ensure CHANGELOG.md has an "Unreleased" section with "* Your contribution here" placeholder
- Commit the changes with message "Prepare for next development iteration"
Note: The task is idempotent - safe to run multiple times without duplicating work.
Manual Post-Release Steps (if needed)
-
Prepare for next development cycle:
- Add "Unreleased" section to CHANGELOG.md with "* Your contribution here" placeholder
- Bump version in
lib/grape_oas/version.rb
-
Commit post-release changes:
git add CHANGELOG.md lib/grape_oas/version.rb git commit -m "Prepare for next development iteration" git push origin main
This project follows Semantic Versioning:
- MAJOR: Incompatible API changes
- MINOR: New functionality in a backward compatible manner
- PATCH: Backward compatible bug fixes