-
Check that all development Pull Requests have been merged into
develop -
Create a new release branch (from
develop), with the name patternrelease/<version number>git checkout develop git pull git checkout -b release/1.11.0 git push -u origin release/1.11.0
When you run git push -u origin release/1.11.0, the following occurs automatically:
-
auto-bump-develop.ymlworkflow triggers- Detects that a release branch was created
- Checks if
developis still on the version being released (e.g.,1.11.0a5) - If yes, bumps
developto the next minor version (e.g.,1.11.0a5→1.12.0a1) - Commits with
[skip ci]to avoid triggering additional workflows - Pushes the change to
develop
-
You can verify this worked:
git fetch origin develop git checkout develop git log -1 # Should show "Start 1.12.0a1 development [skip ci]" grep '^version = ' pyproject.toml # Should show version = "1.12.0a1"
-
If auto-bump didn't run:
- Go to Actions → "Auto-bump develop after release branch created"
- Click "Run workflow"
- Enter the release version (e.g.,
1.11.0) - Click "Run workflow"
- See .github/CI-CD-README.md for details
-
Create a Pull Request from the
release/<version number>branch tomain-
Use previous Release PRs as a template for the description of the new release PR (Ensure all check boxes are unchecked, remove any previous issue links, and remove any ReadTheDocs preview.)
-
Determine which issues were addressed in this release version, and add links to them using the
Closes #<issue number>pattern in the Release PR's description
-
-
(Optional, if any new changes are desired, create PRs with target to release branch)
-
Merge the Release PR into
main- This triggers the final version bump (strips
rclabel) - Example:
1.11.0rc3→1.11.0 - A git tag is automatically created (e.g.,
1.11.0) - Builds Docker
- This triggers the final version bump (strips
-
Create and Publish a GitHub Release
-
Navigate to: https://github.com/nasa/stitchee/releases/new
-
Select the tag created by the merge (e.g.,
1.11.0) -
Set the release title (e.g.,
1.11.0) -
Write release notes:
- Summarize major changes
- Link to closed issues
- Highlight breaking changes if any
-
Click "Publish release"
-
This automatically triggers:
- ✅ Publishing to PyPI (production)
- ✅ Docker image build and push
- ✅ Snyk security monitoring update
-
-
Merge
mainback intodevelop- This ensures
develophas the final release version - Do via a local merge:
git checkout develop git pull git merge main git push
- This ensures