kubeflow / kubeflow/pipelines-components
Migrate from optional dependencies to dependency groups
- Dominant language
- Python
- Stars
- 12
- Forks
- 56
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 3
Description
## Summary
Replace `[project.optional-dependencies]` with `[dependency-groups]`
([PEP 735](https://peps.python.org/pep-0735/)) for `lint`, `test`, and
`dev` in `pyproject.toml`.
## Why
1. **Semantic correctness** – optional dependencies are for package
consumers. Lint/test/dev deps are internal and should not appear as
installable extras.
2. **Cleaner package metadata** – these groups won't leak into the
published wheel.
3. **No self-references** – the fragile `kfp-components[lint]` pattern
is replaced by native `include-group` composition.
4. **uv best practice** – uv
[recommends](https://docs.astral.sh/uv/concepts/projects/dependencies/#dependency-groups)
dependency groups for dev workflows.
5. **Better defaults** – `uv sync` includes the `dev` group
automatically; contributors no longer need `--extra dev`.
Contributor guide
Research direction
Start in pyproject.toml and review the existing lint, test, and dev entries under [project.optional-dependencies]. Replace those definitions with PEP 735 dependency groups and use group composition for the shared development dependencies. Verify that uv sync includes dev dependencies by default and that the published metadata no longer exposes these groups as installable extras.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 68/100