Before starting a release, ensure you have:
- Merged all code change PRs into main
-
Ensure all feature changes are merged
git checkout main git pull origin main
Verify: Latest commits should match GitHub's main branch.
-
Review changes to determine version bump
- Review merged PRs since last release:
git log v14.11.1..HEAD --oneline - Apply semantic versioning:
- PATCH (X.Y.Z+1): Bug fixes only
- MINOR (X.Y+1.0): New features, backward compatible
- MAJOR (X+1.0.0): Breaking changes
- Review merged PRs since last release:
-
Create a new branch
git checkout -b vX.Y.Z
-
Update version number Edit
lib/shopify_api/version.rb:module ShopifyAPI VERSION = "X.Y.Z" # Replace with your version end
-
Update dependencies
bundle update sorbet sorbet-runtime sorbet-static tapioca --conservative bundle install
Expected: Gemfile.lock updates with new dependency versions.
-
Update CHANGELOG
-
Add entry under "## Unreleased" with format:
## X.Y.Z (YYYY-MM-DD) - [#PR_NUMBER](https://github.com/Shopify/shopify-api-ruby/pull/PR_NUMBER) Description of change
-
Move all unreleased items under the new version
-
-
Create and push PR
git add -A git commit -m "preparing for release v X.Y.Z" git push origin release-X.Y.Z- Title PR: "Release vX.Y.Z"
- Add release notes to PR description
-
After PR is merged, update local main
git checkout main git pull origin main
Verify:
git log -1shows your merge commit. -
Create and push tag
git tag -f vX.Y.Z && git push origin vX.Y.ZVerify: Tag appears at https://github.com/Shopify/shopify-api-ruby/tags
-
Publish via Shipit
-
Verify gem publication
List the gem on https://rubygems.org/gems/shopify_api
Expected: Shows your new version (may take 5-10 minutes).
For major/minor releases, update these repositories:
- Shopify/shopify_app: Update gemspec
- File:
shopify_app.gemspec - Priority: High for breaking changes, medium otherwise
- File: