Provides bake tasks for common gem release workflows.
Please see the project documentation for more details.
- Getting Started - This guide explains how to use
bake-gemto release gems safely and efficiently.
Please see the project releases for all releases.
- Prepare release branches with
gem:release:branch:patch/minor/major, committing the version bump and all release-hook changes before review. - Add
gem:release:validateto detect stale generated release content and unrelated changes. - Build committed source in a fresh Ruby process and accept an explicit signing key path with
gem:build. - Push only the intended release tag when publishing locally.
- Better
version.rbdetection inversion_pathmethod.
- Add
after_gem_releasehook for post-release actions.
- Add
guard_last_commit_not_version_bumpmethod to prevent consecutive version bumps. - Add
build_gem_in_worktreemethod for building gems in isolated git worktrees. - Improve shell command execution with better error handling and specific exit code access.
- Better integration with
bake's default output.
- Improved bake task return values.
- Better handling of versions.
- Add
after_gem_release_version_incrementhook.
- Bake — The bake task execution tool.
We welcome contributions to this project.
- Fork the repository.
- Create your feature branch (
git checkout -b my-new-feature). - Commit your changes (
git commit -am 'Add some feature.'). - Push to the branch (
git push origin my-new-feature). - Create a new pull request.
To run the test suite:
$ bundle exec susTo make a new release:
$ bundle exec bake gem:release:patch # or minor or majorIn order to protect users of this project, we require all contributors to comply with the Developer Certificate of Origin. This ensures that all contributions are properly licensed and attributed.
This project is best served by a collaborative and respectful environment. Treat each other professionally, respect differing viewpoints, and engage constructively. Harassment, discrimination, or harmful behavior is not tolerated. Communicate clearly, listen actively, and support one another. If any issues arise, please inform the project maintainers.