You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
THis will keep linopy up to date and the distributed package cleaner. Does any contributor use pip <25.1 and cant upgrade?
Note
The following content was generated by AI.
Summary
Today every optional dependency set lives in [project.optional-dependencies] (extras): oetc, remote, docs, dev, solvers. We have no[dependency-groups].
Some of these are purely dev/contributor-facing (dev, docs, plus a benchmarks set) and have no business in the published wheel metadata. PEP 735 [dependency-groups] is the right home for them; runtime-facing extras consumers install from PyPI (solvers, oetc, remote) should stay as extras.
Proposal
Move the dev/contributor-only sets out of [project.optional-dependencies] and into [dependency-groups]. Keep user-facing runtime extras where they are.
Implication for pip users (the part that needs a heads-up)
Dependency groups are not extras, and pip treats them differently:
pip support
how
optional-dependencies (extras)
any pip
pip install ".[dev]"
dependency-groups (PEP 735)
pip ≥ 25.1 only
pip install --group dev
The split is effectively a breaking change for contributors on pip < 25.1 — older pip has no support for groups at all.
Groups are not reachable via the .[...] syntax (pip install ".[dev]" would stop working for anything that moved), and they aren't published in wheel metadata.
So the move needs a documented pip path (in doc/contributing.rst) and a clear note about the pip ≥ 25.1 requirement, alongside the existing uv instructions.
THis will keep linopy up to date and the distributed package cleaner. Does any contributor use pip <25.1 and cant upgrade?
Note
The following content was generated by AI.
Summary
Today every optional dependency set lives in
[project.optional-dependencies](extras):oetc,remote,docs,dev,solvers. We have no[dependency-groups].Some of these are purely dev/contributor-facing (
dev,docs, plus a benchmarks set) and have no business in the published wheel metadata. PEP 735[dependency-groups]is the right home for them; runtime-facing extras consumers install from PyPI (solvers,oetc,remote) should stay as extras.Proposal
Move the dev/contributor-only sets out of
[project.optional-dependencies]and into[dependency-groups]. Keep user-facing runtime extras where they are.Implication for pip users (the part that needs a heads-up)
Dependency groups are not extras, and pip treats them differently:
optional-dependencies(extras)pip install ".[dev]"dependency-groups(PEP 735)pip install --group dev.[...]syntax (pip install ".[dev]"would stop working for anything that moved), and they aren't published in wheel metadata.So the move needs a documented pip path (in
doc/contributing.rst) and a clear note about the pip ≥ 25.1 requirement, alongside the existinguvinstructions.