Skip to content

Commit 07bd008

Browse files
authored
Kubeflow SDK Official Release 0.4.0 (#404)
Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
1 parent 2ee7dae commit 07bd008

File tree

3 files changed

+107
-12
lines changed

3 files changed

+107
-12
lines changed

CHANGELOG/CHANGELOG-0.4.md

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# Changelog
2+
3+
## [0.4.0](https://github.com/kubeflow/sdk/releases/tag/0.4.0) (2026-03-20)
4+
5+
### 🚀 Features
6+
7+
- feat: Run dataset and model initializers in parallel ([#313](https://github.com/kubeflow/sdk/pull/313) by @priyank766)
8+
- feat(trainer): replace PodTemplateOverrides with RuntimePatches API ([#381](https://github.com/kubeflow/sdk/pull/381) by @Fiona-Waters)
9+
- feat(docs): Update README with Spark Support ([#349](https://github.com/kubeflow/sdk/pull/349) by @andreyvelich)
10+
- feat(spark): Refactor unit tests to sdk coding standards ([#293](https://github.com/kubeflow/sdk/pull/293) by @digvijay-y)
11+
- feat: add TrainerClient examples for local PyTorch distributed training ([#312](https://github.com/kubeflow/sdk/pull/312) by @MansiSingh17)
12+
- feat: Add validate lockfile workflow to complement CVE scanning ([#306](https://github.com/kubeflow/sdk/pull/306) by @Fiona-Waters)
13+
- feat(trainer): Support namespaced TrainingRuntime in the SDK ([#130](https://github.com/kubeflow/sdk/pull/130) by @shaikmoeed)
14+
- feat: Adds a GitHub Actions workflow to check kubeflow/hub/OWNERS. ([#280](https://github.com/kubeflow/sdk/pull/280) by @muhammadjunaid8047)
15+
- feat: Added examples to the documentation demonstrating different ways to handle ports ([#243](https://github.com/kubeflow/sdk/pull/243) by @osamaahmed17)
16+
- feat: add SparkClient API for SparkConnect session management ([#225](https://github.com/kubeflow/sdk/pull/225) by @Shekharrajak)
17+
- feat(trainer): add dataset and model initializer support to container backend ([#188](https://github.com/kubeflow/sdk/pull/188) by @HKanoje)
18+
- feat: Add Kubeflow SDK docs website ([#237](https://github.com/kubeflow/sdk/pull/237) by @kramaranya)
19+
- feat: add model registry client ([#186](https://github.com/kubeflow/sdk/pull/186) by @jonburdo)
20+
21+
### 🐛 Bug Fixes
22+
23+
- fix: support RC version format in Makefile release target ([#398](https://github.com/kubeflow/sdk/pull/398) by @Fiona-Waters)
24+
- fix(trainer): add missing wildcard to .pt and .pth ignore patterns ([#372](https://github.com/kubeflow/sdk/pull/372) by @ghazariann)
25+
- fix(trainer): Fix packages installation with extra notation ([#385](https://github.com/kubeflow/sdk/pull/385) by @andreyvelich)
26+
- fix(trainer): ignore PEP 668 system python check ([#384](https://github.com/kubeflow/sdk/pull/384) by @robert-bell)
27+
- fix: Make validate-lockfile action non-blocking ([#361](https://github.com/kubeflow/sdk/pull/361) by @Fiona-Waters)
28+
- fix(trainer): adapt SDK to removal of numProcPerNode from TorchMLPolicySource ([#360](https://github.com/kubeflow/sdk/pull/360) by @tariq-hasan)
29+
- fix(trainer): return TRAINJOB_COMPLETE when all steps are done ([#340](https://github.com/kubeflow/sdk/pull/340) by @priyank766)
30+
- fix(optimizer): add missing get_job_events() to RuntimeBackend base c… ([#325](https://github.com/kubeflow/sdk/pull/325) by @ruskaruma)
31+
- fix(optimizer): prevent input mutation in optimize() ([#322](https://github.com/kubeflow/sdk/pull/322) by @ruskaruma)
32+
- fix(trainer): handle falsy values in get_args_from_peft_config ([#328](https://github.com/kubeflow/sdk/pull/328) by @krishdef7)
33+
- fix: improve logging around packages_to_install ([#269](https://github.com/kubeflow/sdk/pull/269) by @briangallagher)
34+
- fix: Fix runtime lookup fallback and test local SDK in E2E ([#307](https://github.com/kubeflow/sdk/pull/307) by @XploY04)
35+
- fix: nightly security dependency updates ([#296](https://github.com/kubeflow/sdk/pull/296) by @github-actions[bot])
36+
- fix: Improve CVE workflow ([#267](https://github.com/kubeflow/sdk/pull/267) by @Fiona-Waters)
37+
- fix: preserve case for extended resource keys ([#264](https://github.com/kubeflow/sdk/pull/264) by @danish9039)
38+
- fix: upgrade pyasn1 to v0.6.2 ([#257](https://github.com/kubeflow/sdk/pull/257) by @Fiona-Waters)
39+
- fix(ci): Bump Kubernetes version for E2E tests ([#253](https://github.com/kubeflow/sdk/pull/253) by @andreyvelich)
40+
- fix: Remove uv from tools in readthedocs ([#242](https://github.com/kubeflow/sdk/pull/242) by @kramaranya)
41+
42+
### ⚙️ Miscellaneous Tasks
43+
44+
- chore(deps): Bump Kubeflow Trainer API to 2.2.0 ([#406](https://github.com/kubeflow/sdk/pull/406) by @andreyvelich)
45+
- chore(ci): bump aquasecurity/trivy-action from 0.34.0 to 0.34.1 in the actions group ([#319](https://github.com/kubeflow/sdk/pull/319) by @dependabot[bot])
46+
- chore(trainer): Add API reference docs for kubeflow.trainer.options classes ([#396](https://github.com/kubeflow/sdk/pull/396) by @Fiona-Waters)
47+
- chore(trainer): fix typos in TrainerClient docstrings ([#394](https://github.com/kubeflow/sdk/pull/394) by @andres75125)
48+
- chore(spark): add Spark documentation and API reference ([#364](https://github.com/kubeflow/sdk/pull/364) by @Amir380-A)
49+
- chore(spark): remove SDK-side validation from SparkClient ([#345](https://github.com/kubeflow/sdk/pull/345) by @YassinNouh21)
50+
- chore(spark): change pyspark[connect] dependency ([#357](https://github.com/kubeflow/sdk/pull/357) by @alimaredia)
51+
- chore(spark): migrate SDK to kubeflow_spark_api Pydantic models ([#295](https://github.com/kubeflow/sdk/pull/295) by @tariq-hasan)
52+
- chore: fix docstrings in TrainerClient ([#333](https://github.com/kubeflow/sdk/pull/333) by @priyansh-saxena1)
53+
- chore(deps): bump the python-minor group with 2 updates ([#299](https://github.com/kubeflow/sdk/pull/299) by @dependabot[bot])
54+
- chore(ci): bump actions/setup-python from 5 to 6 ([#298](https://github.com/kubeflow/sdk/pull/298) by @dependabot[bot])
55+
- chore(deps): bump pytest from 8.4.2 to 9.0.2 ([#301](https://github.com/kubeflow/sdk/pull/301) by @dependabot[bot])
56+
- chore(ci): bump aquasecurity/trivy-action from 0.33.1 to 0.34.0 in the actions group ([#297](https://github.com/kubeflow/sdk/pull/297) by @dependabot[bot])
57+
- chore(ci): bump actions/checkout from 4 to 6 ([#278](https://github.com/kubeflow/sdk/pull/278) by @dependabot[bot])
58+
- chore(ci): bump peter-evans/create-pull-request from 6 to 8 ([#277](https://github.com/kubeflow/sdk/pull/277) by @dependabot[bot])
59+
- chore(deps): bump the python-minor group across 1 directory with 4 updates ([#291](https://github.com/kubeflow/sdk/pull/291) by @dependabot[bot])
60+
- chore(ci): bump astral-sh/setup-uv from 5 to 7 ([#276](https://github.com/kubeflow/sdk/pull/276) by @dependabot[bot])
61+
- chore: upgrade code style for python3.10 ([#288](https://github.com/kubeflow/sdk/pull/288) by @jonburdo)
62+
- chore: bump minimum model-registry version to 0.3.6 ([#289](https://github.com/kubeflow/sdk/pull/289) by @jonburdo)
63+
- chore: added sdk docs website to readme ([#284](https://github.com/kubeflow/sdk/pull/284) by @jaiakash)
64+
- chore: Confirm that a public ConfigMap exists to check version ([#250](https://github.com/kubeflow/sdk/pull/250) by @sameerdattav)
65+
- chore(docs): Create symlink for CLAUDE.md ([#270](https://github.com/kubeflow/sdk/pull/270) by @andreyvelich)
66+
- chore(deps): bump pytest from 8.4.1 to 8.4.2 ([#255](https://github.com/kubeflow/sdk/pull/255) by @dependabot[bot])
67+
- chore(deps): bump ty from 0.0.13 to 0.0.14 in the python-minor group ([#254](https://github.com/kubeflow/sdk/pull/254) by @dependabot[bot])
68+
- chore: add trivy cve scan and fix workflow ([#266](https://github.com/kubeflow/sdk/pull/266) by @Fiona-Waters)
69+
- chore(docs): Update Copilot Instructions and AGENTS.md ([#248](https://github.com/kubeflow/sdk/pull/248) by @andreyvelich)
70+
- chore(deps): bump kubernetes from 33.1.0 to 35.0.0 ([#256](https://github.com/kubeflow/sdk/pull/256) by @dependabot[bot])
71+
- chore(hub): add kubeflow hub approver jonburdo ([#252](https://github.com/kubeflow/sdk/pull/252) by @jonburdo)
72+
- chore(deps): bump the python-minor group with 8 updates ([#247](https://github.com/kubeflow/sdk/pull/247) by @dependabot[bot])
73+
- chore(ci): bump astral-sh/setup-uv from 6 to 7 ([#245](https://github.com/kubeflow/sdk/pull/245) by @dependabot[bot])
74+
- chore(ci): bump actions/upload-artifact from 4 to 6 ([#246](https://github.com/kubeflow/sdk/pull/246) by @dependabot[bot])
75+
- chore(hub): add OWNERS file to kubeflow.hub ([#244](https://github.com/kubeflow/sdk/pull/244) by @jonburdo)
76+
77+
### New Contributors
78+
79+
- @andres75125 made their first contribution in [#394](https://github.com/kubeflow/sdk/pull/394)
80+
- @ghazariann made their first contribution in [#372](https://github.com/kubeflow/sdk/pull/372)
81+
- @priyank766 made their first contribution in [#313](https://github.com/kubeflow/sdk/pull/313)
82+
- @robert-bell made their first contribution in [#384](https://github.com/kubeflow/sdk/pull/384)
83+
- @Amir380-A made their first contribution in [#364](https://github.com/kubeflow/sdk/pull/364)
84+
- @YassinNouh21 made their first contribution in [#345](https://github.com/kubeflow/sdk/pull/345)
85+
- @alimaredia made their first contribution in [#357](https://github.com/kubeflow/sdk/pull/357)
86+
- @ruskaruma made their first contribution in [#325](https://github.com/kubeflow/sdk/pull/325)
87+
- @digvijay-y made their first contribution in [#293](https://github.com/kubeflow/sdk/pull/293)
88+
- @priyansh-saxena1 made their first contribution in [#333](https://github.com/kubeflow/sdk/pull/333)
89+
- @MansiSingh17 made their first contribution in [#312](https://github.com/kubeflow/sdk/pull/312)
90+
- @krishdef7 made their first contribution in [#328](https://github.com/kubeflow/sdk/pull/328)
91+
- @XploY04 made their first contribution in [#307](https://github.com/kubeflow/sdk/pull/307)
92+
- @shaikmoeed made their first contribution in [#130](https://github.com/kubeflow/sdk/pull/130)
93+
- @github-actions[bot] made their first contribution in [#296](https://github.com/kubeflow/sdk/pull/296)
94+
- @muhammadjunaid8047 made their first contribution in [#280](https://github.com/kubeflow/sdk/pull/280)
95+
- @jonburdo made their first contribution in [#288](https://github.com/kubeflow/sdk/pull/288)
96+
- @HKanoje made their first contribution in [#188](https://github.com/kubeflow/sdk/pull/188)
97+
- @sameerdattav made their first contribution in [#250](https://github.com/kubeflow/sdk/pull/250)
98+
- @danish9039 made their first contribution in [#264](https://github.com/kubeflow/sdk/pull/264)

cliff.toml

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ header = """
1010
body = """
1111
{%- if version %}
1212
## [{{ version }}](https://github.com/kubeflow/sdk/releases/tag/{{ version }}) ({{ timestamp | date(format="%Y-%m-%d") }})
13-
{%- else %}
13+
{% else %}
1414
## [Unreleased]
1515
{%- endif %}
1616
@@ -39,16 +39,13 @@ body = """
3939
{%- if github -%}
4040
{%- set new_contributors = github.contributors | filter(attribute="is_first_time", value=true) -%}
4141
{%- if new_contributors | length != 0 %}
42-
4342
### New Contributors
44-
{%- for contributor in new_contributors %}
45-
* @{{ contributor.username }} made their first contribution in \
43+
{% for contributor in new_contributors %}
44+
- @{{ contributor.username }} made their first contribution in \
4645
[#{{ contributor.pr_number }}](https://github.com/kubeflow/sdk/pull/{{ contributor.pr_number }})
4746
{%- endfor %}
4847
{%- endif %}
4948
{%- endif -%}
50-
51-
{% raw %}\n{% endraw %}
5249
"""
5350

5451
trim = true
@@ -66,9 +63,9 @@ ignore_tags = ".*-(alpha|beta|rc).*"
6663

6764
# Manually define groups based on conventional patterns
6865
commit_parsers = [
69-
{ message = "^feat(\\(.*\\))?:", group = "🚀 Features" },
70-
{ message = "^fix(\\(.*\\))?:", group = "🐛 Bug Fixes" },
71-
{ message = "^chore(\\(.*\\))?:", group = "⚙️ Miscellaneous Tasks" },
72-
{ message = "^revert(\\(.*\\))?:", group = "⏪ Reverts" },
73-
{ message = ".*", skip = true },
66+
{ message = "^feat(\\(.*\\))?:", group = "🚀 Features" },
67+
{ message = "^fix(\\(.*\\))?:", group = "🐛 Bug Fixes" },
68+
{ message = "^chore(\\(.*\\))?:", group = "⚙️ Miscellaneous Tasks" },
69+
{ message = "^revert(\\(.*\\))?:", group = "⏪ Reverts" },
70+
{ message = ".*", skip = true },
7471
]

kubeflow/__init__.py

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

15-
__version__ = "0.4.0rc0"
15+
__version__ = "0.4.0"

0 commit comments

Comments
 (0)