kfpr is the Kubeflow Pipelines release automation CLI. It can run the full checkpointed release
flow or any individual release step.
From the repository root:
python3 -m pip install -e release
kfpr --help
kfpr doctor --release-type patch --version 3.2.1 --fork-remote USER
kfpr run --dry-run --state-file /tmp/kfp-release-state.jsonWithout installing, run from source:
PYTHONPATH=release python3 -m kfpr.cli --helpkfpr run \
--release-type patch \
--version 3.2.1 \
--fork-remote USER \
--patch-prs 12345,12346 \
--include-backend \
--include-sdkrun stores prompt answers and completed steps in release-state.json by default. Pass
--state-file to use a different checkpoint file. If the checkpoint already exists, run prints
the saved status and asks before resuming; pass --force to resume without that prompt.
For major and minor releases, pass --release-source-branch BRANCH to skip the source
branch prompt.
Patch releases also update the persistent release-<major>.<minor> and
kfp-kubernetes-<major>.<minor> documentation branches.
For --fork-remote, you can pass either a full remote URL or just your GitHub username. kfpr
expands droctothorpe to https://github.com/droctothorpe/pipelines.git.
List the selected flow:
kfpr steps --release-type patch --include-backend --no-include-sdk
kfpr steps --diagramRun one step without marking it complete:
kfpr run update-version-tags \
--release-type patch \
--version 3.2.1 \
--fork-remote USER \
--patch-prs 12345,12346 \
--dry-runMark a step complete after it succeeds:
kfpr run update-version-tags \
--release-type patch \
--version 3.2.1 \
--fork-remote USER \
--patch-prs 12345,12346 \
--doneSingle-step commands do not update the checkpoint unless --done is passed.
update-version-tags cuts <version>-update-version-tags from the release branch
before committing version changes. When SDK release steps are enabled, this same PR also updates
SDK package versions, requirements, docs versions, and sdk/RELEASE.md.
If you complete a step outside kfpr (for example, manually creating an already-existing
release branch), mark that step done before resuming:
kfpr done prepare-release-branch --state-file release-state.json
kfpr run --state-file release-state.jsonUse the exact step ID from kfpr steps or the list below.
kfpr status --state-file release-state.json
kfpr clear --state-file release-state.json
kfpr validate-state --state-file release-state.json
kfpr run watch-publish-images --state-file release-state.json
kfpr done update-version-tags --state-file release-state.json
kfpr reset-step update-version-tags --state-file release-state.jsonstatus prints saved answers, completed steps, the next step, the resume command, and the active
manual checklist when the next step needs external confirmation.
merge-version-pr watches PR CI and fails as soon as a reported gate fails; after all reported
gates complete successfully, it continues waiting for the PR to merge.
watch-publish-images watches the latest image publication workflow for the saved release branch
without dispatching a new workflow run.
confirm-rtd prompts for a Read the Docs API token, keeps it only in process memory, and uses it
to activate release versions, trigger builds, wait for successful builds, and update project
defaults. If the API call fails, kfpr asks whether to fall back to the manual checklist.
run
doctor
status
clear
validate-state
done
reset-step
steps
run preflight
run prepare-release-branch
run prepare-patch-branch
run cherry-pick-prs
run merge-cherry-pick-pr
run update-version-tags
run merge-version-pr
run publish-images
run create-sdk-tag
run publish-sdks
run create-kfp-kubernetes-docs-branch
run confirm-rtd
run create-sdk-release
run create-backend-release
run sync-master
run confirm-website-and-slack
run watch-publish-images
For the KFP 3.0 release, the confirm-website-and-slack checkpoint also requires the Kubeflow
website installation and upgrade documentation to announce that Argo Workflows 3.x is unsupported,
and requires the GitHub release notes to identify that removal as a breaking change.