| name | zenml-backport |
| description | Backport docs/examples changes to a pre-existing ZenML release. Use when changes merged to `develop` need to be reflected in a live release version. Triggers include "backport", "cherry-pick to release", "update release docs", or when docs/examples changes need to be applied to an existing release branch. |
ZenML Backport Workflow
Backporting applies changes from develop to a live release. Only docs and examples can be backported (not src/ changes, which require a new release).
Inputs Required
Before starting, gather:
- Target release version (e.g.,
0.5.7) - Commit SHAs from
developto backport (get viagit log origin/develop)
Workflow Steps
Step 1: Create Backport Branch
git fetch
git checkout release/<VERSION>
git pull
git checkout -b backport/<descriptive-name>
Step 2: Cherry-pick Commits
For each commit SHA from develop:
git cherry-pick -x <commit-sha>
The -x flag adds a reference to the original commit in the cherry-pick message.
If conflicts occur, resolve them, then:
git add .
git cherry-pick --continue
Step 3: Push and Create PR
git push -u origin backport/<descriptive-name>
Create PR against release/<VERSION> (NOT develop or main):
- Base branch:
release/<VERSION> - Labels: Add
backport,no-release-notes,internal - Reviewers: None required
Use GitHub CLI if available:
gh pr create \
--base release/<VERSION> \
--title "Backport: <description>" \
--body "Backports commits from develop to release/<VERSION>" \
--label backport --label no-release-notes --label internal
Step 4: Sync to Main (Manual - Hamza Only)
⚠️ STOP HERE - The final sync from release/<VERSION> to main requires htahir1 (Hamza) to perform:
git fetch
git checkout main
git pull
git reset --hard origin/release/<VERSION>
git push --force
Tell the user: "The backport PR is ready. Once merged, Hamza (htahir1) needs to force-push release/<VERSION> to main to complete the sync."