fix(release): improve release process and docs#12912
fix(release): improve release process and docs#12912droctothorpe wants to merge 2 commits intokubeflow:masterfrom
Conversation
|
[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 |
| ## 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. |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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_ROOTshould be quoted in thecdcommands to handle paths with spaces properly. Change tocd "$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, butkubernetes_platform/python/docs/.readthedocs.ymlstill 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_ROOTshould be quoted in thecdcommands to handle paths with spaces properly. Change tocd "$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.
|
/retest |
d40e8ab to
e9d1132
Compare
|
/retest |
Signed-off-by: droctothorpe <mythicalsunlight@gmail.com> Co-authored-by: zazulam <m.zazula@gmail.com>
e9d1132 to
9f4c45b
Compare
Signed-off-by: droctothorpe <mythicalsunlight@gmail.com>
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: