Skip to content

Release v8.9.1#3529

Closed
Krishna-kg732 wants to merge 24 commits into
kubeflow:masterfrom
Krishna-kg732:release-v8.9.1
Closed

Release v8.9.1#3529
Krishna-kg732 wants to merge 24 commits into
kubeflow:masterfrom
Krishna-kg732:release-v8.9.1

Conversation

@Krishna-kg732
Copy link
Copy Markdown
Contributor

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:

  • Docs included if any changes are user facing

milinddethe15 and others added 24 commits May 15, 2026 01:37
…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>
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>
Copilot AI review requested due to automatic review settings May 19, 2026 14:22
@google-oss-prow google-oss-prow Bot requested a review from akshaychitneni May 19, 2026 14:23
@google-oss-prow
Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign jeffwan for approval. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.1 across VERSION, 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) plus git-cliff configuration (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 PyGithub to generate the changelog, but the PR removes docs/release/changelog.py and switches changelog generation to git-cliff.
    Update this prerequisite section to reflect the new git-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

Comment on lines 10 to +13
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
Comment thread hack/release.sh
Comment on lines +23 to +29
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 ' ')
Comment thread hack/release.sh
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/" {} +
Comment thread hack/release.sh
Comment on lines +46 to +49
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"

Comment on lines +195 to +220
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 }}

Comment on lines +54 to +70
- 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"
Comment thread CHANGELOG/README.md
Comment on lines +3 to +8
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' }}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants