Release v8.9.1#3529
Conversation
…n checks Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
…eration Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
…e build steps Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
…kflow and upgrade git-cliff-action version Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
…ption Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
…tHub release Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
…nding and simplify release name Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
…eration and simplify workflow Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
…ine tagging process Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
Signed-off-by: krishna-kg732 <krishnagupta.kg2k6@gmail.com>
Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
Signed-off-by: milinddethe15 <milinddethe15@gmail.com>
Signed-off-by: krishna-kg732 <krishnagupta.kg2k6@gmail.com>
Signed-off-by: Krishna Gupta <Krishnagupta.kg2k6@gmail.com>
Signed-off-by: Krishna Gupta <Krishnagupta.kg2k6@gmail.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Pull request overview
This PR updates Kubeflow Trainer’s release artifacts and automation for a v8.9.1 release, including version bumps across manifests/charts, changelog restructuring, and new CI workflows/scripts to validate and publish releases.
Changes:
- Bump release/version references to
v8.9.1acrossVERSION, Helm chart metadata, manifests, and Python API version. - Introduce automated release tooling (
make release+hack/release.sh) and GitHub Actions workflows (check-release.yaml,release.yaml) plusgit-cliffconfiguration (cliff.toml). - Move release notes to a per-minor changelog directory (
CHANGELOG/) and update documentation links accordingly.
Reviewed changes
Copilot reviewed 29 out of 31 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
VERSION |
Updates repo version to v8.9.1. |
README.md |
Points changelog link to CHANGELOG/README.md. |
manifests/third-party/leaderworkerset/kustomization.yaml |
Updates LWS image tag override (currently set to v8.9.1). |
manifests/third-party/jobset/kustomization.yaml |
Updates JobSet image tag override (currently set to v8.9.1). |
manifests/overlays/runtimes/kustomization.yaml |
Pins runtime-related images to v8.9.1. |
manifests/overlays/manager/kustomization.yaml |
Pins controller manager image to v8.9.1. |
manifests/overlays/data-cache/kustomization.yaml |
Pins dataset-initializer image to v8.9.1. |
manifests/base/runtimes/xgboost_distributed.yaml |
Pins xgboost runtime image tag to v8.9.1. |
manifests/base/runtimes/data-cache/torch_distributed_with_cache.yaml |
Pins CACHE_IMAGE to v8.9.1. |
Makefile |
Adds make release target wrapper. |
hack/release.sh |
Adds local release-prep script (version bump + changelog + generate + commit). |
docs/release/README.md |
Updates release documentation to describe new automation and validations. |
docs/release/changelog.py |
Removes old PyGithub-based changelog generator. |
cliff.toml |
Adds git-cliff configuration/template for release notes. |
charts/kubeflow-trainer/README.md |
Updates chart version badge. |
charts/kubeflow-trainer/Chart.yaml |
Bumps chart version to 8.9.1. |
CHANGELOG/README.md |
Adds changelog directory index. |
CHANGELOG/changelog-8.9.md |
Adds release notes stub for v8.9.1. |
CHANGELOG/changelog-2.2.md |
Adds/relocates 2.2 changelog content. |
CHANGELOG/changelog-2.1.md |
Adds/relocates 2.1 changelog content. |
CHANGELOG/changelog-2.0.md |
Adds/relocates 2.0 changelog content. |
CHANGELOG/changelog-1.x.md |
Adds/relocates legacy 1.x changelog content. |
api/python_api/pyproject.toml |
Changes Python package metadata (notably project name). |
api/python_api/kubeflow_trainer_api/__init__.py |
Bumps Python API __version__ to 8.9.1. |
.github/workflows/template-publish-image/action.yaml |
Adds metadata-action tagging support for workflow_dispatch on tags. |
.github/workflows/release.yaml |
Adds automated release workflow (validation, branch/tag/release, package publish, dispatch downstream builds). |
.github/workflows/publish-helm-charts.yaml |
Adds workflow_dispatch and concurrency configuration. |
.github/workflows/check-release.yaml |
Adds PR-time validation for release version consistency. |
.github/workflows/check-pr-title.yaml |
Adds area/release to ignored labels. |
.github/workflows/build-and-push-images.yaml |
Adds workflow_dispatch, adjusts publish condition, and comments out upstream-only guard. |
Comments suppressed due to low confidence (1)
docs/release/README.md:20
- The release guide still instructs installing
PyGithubto generate the changelog, but the PR removesdocs/release/changelog.pyand switches changelog generation togit-cliff.
Update this prerequisite section to reflect the newgit-cliff-based workflow (and remove/replace the PyGithub requirement).
- Maintainer access to [the Kubeflow Trainer API Python modules](https://pypi.org/project/kubeflow-trainer-api/).
- Create a [GitHub Token](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token).
- Install `PyGithub` to generate the [Changelog](./../../CHANGELOG/README.md):
pip install PyGithub>=1.55
| images: | ||
| - name: us-central1-docker.pkg.dev/k8s-staging-images/lws/lws | ||
| newName: registry.k8s.io/lws/lws | ||
| newTag: v0.8.0 | ||
| newTag: v8.9.1 |
| - name: us-central1-docker.pkg.dev/k8s-staging-images/jobset/jobset | ||
| newName: registry.k8s.io/jobset/jobset | ||
| newTag: v0.11.0 | ||
| newTag: v8.9.1 |
| if [ -z "$1" ]; then | ||
| echo "Usage: $0 <version>" | ||
| echo "You must follow this format: X.Y.Z or X.Y.Z-rc.N" | ||
| exit 1 | ||
| fi | ||
|
|
||
| NEW_VERSION=$(echo "$1" | tr -d '\n' | tr -d ' ') |
| echo "Updated VERSION file to $NEW_VERSION" | ||
|
|
||
| # Update image tags in manifests | ||
| find "$MANIFESTS_DIR" -type f -name '*.yaml' -exec sed -i "s/newTag: .*/newTag: $TAG/" {} + |
| CHART_DIR="$REPO_ROOT/charts/kubeflow-trainer" | ||
| CHART_FILE="$CHART_DIR/Chart.yaml" | ||
| PYTHON_API_VERSION_FILE="$REPO_ROOT/api/python_api/kubeflow_trainer_api/__init__.py" | ||
|
|
| publish_pypi: | ||
| needs: | ||
| - prepare | ||
| - build_python_api | ||
| - create_branch | ||
| runs-on: ubuntu-latest | ||
| environment: | ||
| name: release | ||
| url: https://test.pypi.org/project/krishna-kubeflow-trainer-api/ | ||
|
|
||
| steps: | ||
| - name: Download build artifacts | ||
| uses: actions/download-artifact@v4 | ||
| with: | ||
| name: python-dist-${{ needs.prepare.outputs.version }} | ||
| path: dist/ | ||
|
|
||
| - name: Publish to TestPyPI | ||
| uses: pypa/gh-action-pypi-publish@release/v1 | ||
| with: | ||
| print-hash: true | ||
| packages-dir: dist/ | ||
| repository-url: https://test.pypi.org/legacy/ | ||
| user: ${{ secrets.TWINE_USERNAME }} | ||
| password: ${{ secrets.TWINE_PASSWORD }} | ||
|
|
| - name: Check if manifests image tag matches version | ||
| run: | | ||
| RAW_VERSION=$(cat VERSION | tr -d ' \n') | ||
| VERSION=${RAW_VERSION#v} | ||
| TAG="v${VERSION}" | ||
| MANIFEST_TAGS=$(grep -r 'newTag:' manifests | sed 's/.*newTag:[[:space:]]*//' | tr -d '"' | tr -d "'" | sort | uniq) | ||
| if [ -z "$MANIFEST_TAGS" ]; then | ||
| echo "No newTag found in manifests." | ||
| exit 1 | ||
| fi | ||
| for t in $MANIFEST_TAGS; do | ||
| if [ "$t" != "$TAG" ]; then | ||
| echo "Image tag in manifests ($t) does not match version tag ($TAG)." | ||
| exit 1 | ||
| fi | ||
| done | ||
| echo "All image tags in manifests match version tag $TAG." |
| @@ -1,5 +1,5 @@ | |||
| [project] | |||
| name = "kubeflow_trainer_api" | |||
| name = "krishna-kubeflow-trainer-api" | |||
| Kubeflow Trainer release notes are split by minor version in this directory. | ||
|
|
||
| - [changelog-2.2.md](changelog-2.2.md) | ||
| - [changelog-2.1.md](changelog-2.1.md) | ||
| - [changelog-2.0.md](changelog-2.0.md) | ||
| - [changelog-1.x.md](changelog-1.x.md) |
|
|
||
| env: | ||
| SHOULD_PUBLISH: ${{ github.event_name == 'push' }} | ||
| SHOULD_PUBLISH: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }} |
What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in
Fixes #<issue number>, #<issue number>, ...format, will close the issue(s) when PR gets merged):Fixes #
Checklist: