Skip to content

Commit 360bd09

Browse files
HumairAKdhellmann
andauthored
Release 2.14 (#12336)
* fix: include requirements files in python sdist (#12330) The source distribution produced does not include all of the files needed to rebuild the wheel. This change adds a MANIFEST.in file to cause the requirements.txt and requirements-dev.txt files to be included so when the setup.py tries to read them they are present. Signed-off-by: Doug Hellmann <[email protected]> Signed-off-by: Humair Khan <[email protected]> (cherry picked from commit de73b6f) * chore: release 2.14.5 automate requirements updates Signed-off-by: Humair Khan <[email protected]> --------- Signed-off-by: Humair Khan <[email protected]> Co-authored-by: Doug Hellmann <[email protected]>
1 parent 08f4fe3 commit 360bd09

File tree

13 files changed

+227
-57
lines changed

13 files changed

+227
-57
lines changed

RELEASE.md

Lines changed: 55 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -236,23 +236,49 @@ When performing these releases, you should adhere to the order presented below.
236236
twine upload dist/*
237237
```
238238

239-
1. Release `kfp` Python packages to PyPI.
240-
241-
Update the SDK version in `version.py` and `readthedocs` `versions.json`, example PR [here](https://github.com/kubeflow/pipelines/pull/11715/files).
242-
239+
1. Release `kfp-server-api` Python packages to PyPI.
240+
243241
```bash
244-
git checkout -b release-X.Y
245-
pip3 install twine --user
246-
cd sdk
247-
make python
248-
cd python
249-
twine check dist/*
250-
twine upload dist/*
242+
git checkout $BRANCH
243+
git pull upstream $BRANCH
244+
cd backend/api/v2beta1/python_http_client
245+
rm -r dist
246+
python3 setup.py --quiet sdist
247+
python3 -m twine upload dist/*
251248
```
252249

253-
!!! The file name must contain the version. See <https://github.com/kubeflow/pipelines/issues/1292>
250+
1. Release `kfp` Python packages to PyPI.
251+
252+
Note that if this `kfp` release depends on a new version of `kfp-pipeline-spec` or `kfp-server-api`, ensure
253+
those packages have their versions updated, and you have built them in twine.
254+
Then update the `sdk/python/requirements.in` file, ensure these package's lower-bound versions are accurate.
255+
Once done, you can run the following command to update the requirements:
254256
255-
** Update Readthedocs **
257+
```bash
258+
cd sdk/python
259+
# Note if the dependent packages have already been released use the following command:
260+
pip-compile --no-emit-find-links --no-header --no-emit-index-url requirements.in > requirements.txt
261+
# Otherwise you can use:
262+
./pre-release-requirements-update.sh
263+
```
264+
265+
Once done you should see a diff in `requirements.txt`. Confirm the changes.
266+
267+
Update the SDK version in `version.py` and `readthedocs` `versions.json`, example PR [here](https://github.com/kubeflow/pipelines/pull/11715/files).
268+
269+
```bash
270+
git checkout -b release-X.Y
271+
pip3 install twine --user
272+
cd sdk
273+
make python
274+
cd python
275+
twine check dist/*
276+
twine upload dist/*
277+
```
278+
279+
!!! The file name must contain the version. See <https://github.com/kubeflow/pipelines/issues/1292>
280+
281+
**Update `kfp` Readthedocs**
256282
257283
* Create a GitHub release for KFP SDK release. [Here's an example](https://github.com/kubeflow/pipelines/releases/tag/sdk-2.14.1) reference for a template.
258284
* When creating a release create a new tag `sdk-x.y.z`
@@ -264,6 +290,19 @@ When performing these releases, you should adhere to the order presented below.
264290

265291
1. Release `kfp-kubernetes` Python packages to PyPI.
266292

293+
Note that if this `kfp-kubenretes` release depends on a new version of `kfp` or `kfp-pipeline-spec`, ensure
294+
those packages have their versions updated, and you have built them in twine.
295+
Then update `kubernetes_platform/python/requirements.in` file, ensure these package's lower-bound versions are accurate.
296+
Once done, you can run the following command to update the requirements:
297+
298+
```bash
299+
cd kubernetes_platform/python
300+
# Note if the dependent packages have already been released use the following command:
301+
pip-compile --no-emit-find-links --no-header --no-emit-index-url requirements.in > requirements.txt
302+
# Otherwise you can use:
303+
./pre-release-requirements-update.sh
304+
```
305+
267306
Update the KFP Kubernetes SDK version in `__init__.py` and `readthedocs` `versions.json`, example PR [here](https://github.com/kubeflow/pipelines/pull/11380).
268307
269308
```bash
@@ -287,7 +326,8 @@ When performing these releases, you should adhere to the order presented below.
287326
> Note that kfp-kubernetes package has a separate readthedocs site and requires that a new branch be pushed for readthedocs to be able to host multiple pages from the same repo.
288327
> Every new patch version for this package requires us to create a new release branch purely for readthedocs purposes. However always cut this branch from the `release-X.Y` branch.
289328
290-
** Update Readthedocs **
329+
**Update `kfp-kubernetes` Readthedocs**
330+
291331
Once the branch is updated, you need to add this version to readthedocs. Follow these steps:
292332
293333
* Navigate to the package section on the readthedocs website [here](https://app.readthedocs.org/projects/kfp-kubernetes/).
@@ -297,18 +337,7 @@ Once the branch is updated, you need to add this version to readthedocs. Follow
297337
* Go to Settings
298338
* Set this version as the default version.
299339
* Click Save
300-
* Click "View Docs" to navigate to the docs page and ensure the new version shows up as the default.
301-
302-
1. Release `kfp-server-api` Python packages to PyPI.
303-
304-
```bash
305-
git checkout $BRANCH
306-
git pull upstream $BRANCH
307-
cd backend/api/v2beta1/python_http_client
308-
rm -r dist
309-
python3 setup.py --quiet sdist
310-
python3 -m twine upload dist/*
311-
```
340+
* Click "View Docs" to navigate to the docs page and ensure the new version shows up as the default.
312341

313342
Push the changes to the `release-X.Y` branch.
314343

docs/sdk/versions.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
[
22
{
3-
"version": "https://kubeflow-pipelines.readthedocs.io/en/sdk-2.14.4/",
4-
"title": "2.14.4",
3+
"version": "https://kubeflow-pipelines.readthedocs.io/en/sdk-2.14.5/",
4+
"title": "2.14.5",
55
"aliases": [
66
"stable",
77
"latest"
88
]
99
},
10+
{
11+
"version": "https://kubeflow-pipelines.readthedocs.io/en/sdk-2.14.3/",
12+
"title": "2.14.4",
13+
"aliases": []
14+
},
1015
{
1116
"version": "https://kubeflow-pipelines.readthedocs.io/en/sdk-2.14.3/",
1217
"title": "2.14.3",
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
include requirements.txt
2+
include requirements-dev.txt

kubernetes_platform/python/docs/conf.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,19 @@ def decorator(func):
138138
'version_dropdown':
139139
True,
140140
'version_info': [
141+
{
142+
'version':
143+
'https://kfp-kubernetes.readthedocs.io/en/kfp-kubernetes-2.14.5/',
144+
'title':
145+
'2.14.5',
146+
'aliases': ['stable'],
147+
},
141148
{
142149
'version':
143150
'https://kfp-kubernetes.readthedocs.io/en/kfp-kubernetes-2.14.4/',
144151
'title':
145152
'2.14.4',
146-
'aliases': ['stable'],
153+
'aliases': [],
147154
},
148155
{
149156
'version':

kubernetes_platform/python/kfp/kubernetes/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
__version__ = '2.14.4'
15+
__version__ = '2.14.5'
1616

1717
__all__ = [
1818
'add_ephemeral_volume',
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/usr/bin/env bash
2+
3+
GIT_ROOT=$(git rev-parse --show-toplevel)
4+
5+
pip-compile --no-emit-find-links --no-header --no-emit-index-url requirements.in \
6+
--find-links="${GIT_ROOT}/sdk/python/dist" \
7+
--find-links="${GIT_ROOT}/api/v2alpha1/python/dist" \
8+
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# After any updates to this file, requirements.txt should be regenerated running
2+
# the following in this folder:
3+
# pip-compile --no-emit-index-url requirements.in
4+
5+
# protobuf version should be identical to the one in kfp-pipeline-spec
6+
# api/v2alpha1/python/requirements.txt
7+
protobuf==6.31.1,<7.0
8+
kfp>=2.14.5,<3
Lines changed: 107 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,107 @@
1-
# protobuf version should be identical to the one in kfp-pipeline-spec
2-
# api/v2alpha1/python/requirements.txt
3-
protobuf==6.31.1,<7.0
4-
kfp>=2.14.0,<3
1+
cachetools==6.2.0
2+
# via google-auth
3+
certifi==2025.10.5
4+
# via
5+
# kfp-server-api
6+
# kubernetes
7+
# requests
8+
charset-normalizer==3.4.3
9+
# via requests
10+
click==8.1.8
11+
# via
12+
# click-option-group
13+
# kfp
14+
click-option-group==0.5.7
15+
# via kfp
16+
docstring-parser==0.17.0
17+
# via kfp
18+
google-api-core==2.26.0
19+
# via
20+
# google-cloud-core
21+
# google-cloud-storage
22+
# kfp
23+
google-auth==2.41.1
24+
# via
25+
# google-api-core
26+
# google-cloud-core
27+
# google-cloud-storage
28+
# kfp
29+
# kubernetes
30+
google-cloud-core==2.4.3
31+
# via google-cloud-storage
32+
google-cloud-storage==3.4.1
33+
# via kfp
34+
google-crc32c==1.7.1
35+
# via
36+
# google-cloud-storage
37+
# google-resumable-media
38+
google-resumable-media==2.7.2
39+
# via google-cloud-storage
40+
googleapis-common-protos==1.70.0
41+
# via google-api-core
42+
idna==3.10
43+
# via requests
44+
kfp==2.14.5
45+
# via -r requirements.in
46+
kfp-pipeline-spec==2.14.3
47+
# via kfp
48+
kfp-server-api==2.14.3
49+
# via kfp
50+
kubernetes==30.1.0
51+
# via kfp
52+
oauthlib==3.3.1
53+
# via
54+
# kubernetes
55+
# requests-oauthlib
56+
proto-plus==1.26.1
57+
# via google-api-core
58+
protobuf==6.31.1
59+
# via
60+
# -r requirements.in
61+
# google-api-core
62+
# googleapis-common-protos
63+
# kfp
64+
# kfp-pipeline-spec
65+
# proto-plus
66+
pyasn1==0.6.1
67+
# via
68+
# pyasn1-modules
69+
# rsa
70+
pyasn1-modules==0.4.2
71+
# via google-auth
72+
python-dateutil==2.9.0.post0
73+
# via
74+
# kfp-server-api
75+
# kubernetes
76+
pyyaml==6.0.3
77+
# via
78+
# kfp
79+
# kubernetes
80+
requests==2.32.5
81+
# via
82+
# google-api-core
83+
# google-cloud-storage
84+
# kubernetes
85+
# requests-oauthlib
86+
# requests-toolbelt
87+
requests-oauthlib==2.0.0
88+
# via kubernetes
89+
requests-toolbelt==1.0.0
90+
# via kfp
91+
rsa==4.9.1
92+
# via google-auth
93+
six==1.17.0
94+
# via
95+
# kfp-server-api
96+
# kubernetes
97+
# python-dateutil
98+
tabulate==0.9.0
99+
# via kfp
100+
urllib3==2.5.0
101+
# via
102+
# kfp
103+
# kfp-server-api
104+
# kubernetes
105+
# requests
106+
websocket-client==1.9.0
107+
# via kubernetes

sdk/RELEASE.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@
1010

1111
## Documentation updates
1212

13+
# 2.14.5
14+
15+
## Bug Fixes
16+
17+
* **sdk:** fix: include requirements files in python sdist (#12330)
18+
1319
# 2.14.4
1420

1521
## Bug Fixes

sdk/python/kfp/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '2.14.4'
1+
__version__ = '2.14.5'

0 commit comments

Comments
 (0)