Make v1 the default arithmetic convention (Stage 2)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 257
- Forks
- 87
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 29
Description
[!NOTE]
The following was generated by AI.
Tracks Stage 2 of the v1 arithmetic-convention rollout (opt-in → default → 1.0). v1 shipped opt-in in #717 (linopy.options["semantics"] = "v1", legacy the default). This issue is the decision and work to flip the default to v1.
Prerequisites (done)
- v1 opt-in released — #717
- Transition surface complete — every legacy→v1 divergence warns under legacy (
LinopySemanticsWarning, naming the fix) - Migration guide —
doc/migrating-to-v1.rst
To make v1 the default
- Pick the release for the flip — a pre-1.0 minor, so 1.0 can ship legacy-free (#846). The flip must precede 1.0; otherwise it collides with the removal in a single release, leaving no window where v1 is the default and legacy is still opt-out.
- Flip the
options["semantics"]default to"v1". Legacy stays reachable viaoptions["semantics"] = "legacy"from the flip through to 1.0 (however many minors that spans), and is removed at 1.0. - Add a dedicated opt-out deprecation warning: once v1 is the default, setting
options["semantics"] = "legacy"emits a "legacy is deprecated, removed at 1.0" signal — distinct from the per-siteLinopySemanticsWarning(which flags behaviour changes, not "on borrowed time"). Use whichever unified warning channel #738 settles on. - Gate the flip on downstream readiness — the check-in in #857 (PyPSA, PyPSA-Eur, Calliope, flixopt) so they opt in / pin before it lands.
- Announce ahead of time: changelog note + downstream heads-up.
- Re-frame any docs/notebooks that still describe legacy as the default.
The LinopySemanticsWarning is a FutureWarning firing since the opt-in release (#717), so the deprecation runway is already long by the time of the flip.
Legacy removal is a separate 1.0 step (arithmetics-design/legacy-removal.md). Spec: arithmetics-design/convention.md; rollout: arithmetics-design/open-items.md.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with arithmetics-design/convention.md and arithmetics-design/open-items.md, then inspect the options["semantics"] implementation and the migration guide at doc/migrating-to-v1.rst. Check the warning-channel decision in #738 and downstream readiness in #857 before changing the default. Done means the pre-1.0 release is selected, legacy remains an opt-out with its deprecation warning, and related docs and release notes are updated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100