|
| 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) |
0 commit comments