Skip to content

fix(release): improve release process and docs#12912

Open
droctothorpe wants to merge 2 commits intokubeflow:masterfrom
droctothorpe:improve-releases
Open

fix(release): improve release process and docs#12912
droctothorpe wants to merge 2 commits intokubeflow:masterfrom
droctothorpe:improve-releases

Conversation

@droctothorpe
Copy link
Collaborator

Description of your changes:
This PR encapsulates a bunch of fixes that @zazulam and I had to implement in order to release 2.16.0. It also includes various documentation updates.

Checklist:

Copilot AI review requested due to automatic review settings February 25, 2026 19:41
@google-oss-prow
Copy link

[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 ask for approval from droctothorpe. 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

Comment on lines +471 to +489
## Opportunities for release improvement

- Improve header hierarchy and consistency of this document.
- Update markdown hyperlink syntax to store links near text.
- Add some approximation of how long each step takes to help release manages plan.
- Automate SDK requirements.in bumping.
- api/v2alpha1/python/setup.py has a VERSION that wasn't bumped. Maybe this can be automated.
- Automate this step for kfp and kfp-kubernetes python packages:

````
Update the SDK version in \`version.py` (`__init__.py` for kfp-kubernetes) and `readthedocs` `versions.json`, example PR [here](https://github.com/kubeflow/pipelines/pull/11715/files).
````

- kfp-kubernetes uses conf.py instead of versions.py. Consider standardizing.
- Missing sdk/RELEASE.md update instructions.
- Clarify that backend GitHub release creation happens after the SDK GitHub release. It's weird because the images get published and then we abruptly switch gears.
- The PyPi publication workflow should run sequentially given the dependencies.
- Can we replace or improve the API generator container? It's brittle and opaque.
- The supplied release body template is not actually being adhered to in releases. Practically speaking, people are just using the automatic changelog generation in the GitHub UI. This documentation should reflect that.
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

We put TODOs here @HumairAK. We can implement them in follow up PRs. I need to not look at this documentation again for a little while. #brainbleach

Copy link
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 improves the KFP release process and documentation based on lessons learned from releasing version 2.16.0. It addresses cross-platform compatibility issues, fixes dependency installation order, updates documentation tooling, and significantly enhances the RELEASE.md guide with more detailed instructions and troubleshooting information.

Changes:

  • Added portable sedi() function for macOS/Linux sed compatibility in release scripts
  • Fixed test dependency installation order in CI to install kfp-server-api before test dependencies
  • Updated Sphinx and related documentation dependencies to newer versions (Sphinx 5.0.2 → 7.2.6)
  • Enhanced proto generation script with better error handling and distutils.spawn deprecation fix
  • Improved version extraction in release scripts to avoid import-time dependency issues
  • Extensively updated RELEASE.md with clearer instructions, new sections, and practical improvement suggestions

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
test/release/release.sh Added portable sedi() function for cross-platform sed support and automated ConfigMap version updates
sdk/python/pre-release-requirements-update.sh Added wheel building steps before pip-compile to ensure local dependencies are available
kubernetes_platform/python/pre-release-requirements-update.sh Added wheel building steps for all dependencies before pip-compile
kubernetes_platform/python/generate_proto.py Fixed distutils.spawn deprecation, improved path handling, added error checking for protoc generation
kubernetes_platform/python/docs/requirements.txt Updated Sphinx and related packages to newer versions
docs/sdk/requirements.txt Updated Sphinx and related packages to newer versions
kubernetes_platform/python/create_release_branch.sh Changed version extraction to use grep/sed instead of Python import to avoid dependency issues
RELEASE.md Comprehensive documentation improvements including better structure, clearer instructions, and opportunities for future improvements
.readthedocs.yml Updated Python version from 3.9 to 3.11
.github/workflows/kfp-sdk-client-tests.yml Fixed dependency installation order to install kfp-server-api before test dependencies
Comments suppressed due to low confidence (6)

RELEASE.md:160

  • There appears to be stray text "333" at the end of this line. This should be removed as it looks like accidental content that was inserted during editing.
This script updates the version values for various manifests, and generated code.333

RELEASE.md:365

  • There's a typo "t Use" at the beginning of this line - the "t" should be removed. The line should start with "Use this template..."
t Use this template for public releases and replace the `$VERSION` with real values.

kubernetes_platform/python/pre-release-requirements-update.sh:14

  • The variable $GIT_ROOT should be quoted in the cd commands to handle paths with spaces properly. Change to cd "$GIT_ROOT/api/v2alpha1/python" on all lines where cd is used with $GIT_ROOT. This is a best practice for shell scripting to prevent word splitting and globbing issues.
cd $GIT_ROOT/api/v2alpha1/python
python setup.py bdist_wheel

cd $GIT_ROOT/backend/api/v2beta1/python_http_client
python setup.py bdist_wheel

cd $GIT_ROOT/sdk/python
python setup.py bdist_wheel

cd $GIT_ROOT/kubernetes_platform/python

.readthedocs.yml:11

  • The Python version was updated to 3.11 in the root .readthedocs.yml, but kubernetes_platform/python/docs/.readthedocs.yml still uses Python 3.9. For consistency and to ensure both documentation builds use the same Python version, consider updating the kubernetes_platform readthedocs config to also use Python 3.11. This would align the documentation builds across both SDK and kubernetes platform packages.
    python: "3.11"

sdk/python/pre-release-requirements-update.sh:11

  • The variable $GIT_ROOT should be quoted in the cd commands to handle paths with spaces properly. Change to cd "$GIT_ROOT/api/v2alpha1/python" on all lines where cd is used with $GIT_ROOT. This is a best practice for shell scripting to prevent word splitting and globbing issues.
cd $GIT_ROOT/api/v2alpha1/python
python setup.py bdist_wheel

cd $GIT_ROOT/backend/api/v2beta1/python_http_client
python setup.py bdist_wheel

cd $GIT_ROOT/sdk/python

RELEASE.md:402

  • The reference to "Claude" at line 402 is informal and may not be appropriate for official release documentation. Consider either removing this sentence entirely (since the command names are self-explanatory) or replacing it with a more formal reference, such as "For details about what make release-in-place does, see [link to documentation]" or simply removing the parenthetical comment altogether.
Run the following code. If you're curious about what `make release-in-place` does, here's some context from Claude.

@droctothorpe
Copy link
Collaborator Author

/retest

@droctothorpe
Copy link
Collaborator Author

/retest

Signed-off-by: droctothorpe <mythicalsunlight@gmail.com>
Co-authored-by: zazulam <m.zazula@gmail.com>
Signed-off-by: droctothorpe <mythicalsunlight@gmail.com>
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.

2 participants