kubeflow / kubeflow/pipelines-components

Migrate from optional dependencies to dependency groups

Open Beginner friendly
#118 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.