Skip to content

milestone done: PyPSA 1.3.0 is stated in the language and differentially verified across 16 rungs #306

Description

@FBumann

Prompt: add a last issue to that milestone that states the final state, and can be verified and closable! Then close that one!

Note

The following content was generated by AI.

Final state of the milestone: every PyPSA 1.3.0 feature built inside a single n.optimize() is stated in the language and differentially verified. This issue is the closable record of that; it supersedes #124.

What "done" means here, and how to check it

  • Corpus — 16 rungs (examples/references/pypsa/rung_*.py), each a network stated inline, all solved by pypsa 1.3.0. uv run examples/references/pypsa/reference.py --check → every rung solves to its record.
  • Gallery table — every PyPSA-1.3.0 feature row across docs/examples/pypsa*.md is done, split (same feasible region and optimum, note names the bookkeeping), or out (deliberately, note names the keyword/scope/version). Zero open rows once docs: drop the effects row from the PyPSA-1.3.0 parity table, a feature that release does not have #305 lands (the last one, effect_limit, was never a 1.3.0 feature — removed).
  • Differential parity — the milestone's bar (objective; constraint and variable names and counts; solver model size col/row/nonzero; per-named-constraint duals after weighting normalisation on non-degenerate cases; MILP compared on solution) is certified on the lpspec side under differential/pypsa/, not here.
  • Gates — pixi run ci green: loads, typesets all three formats, mkdocs --strict, compile-tex.

The #124 members, all resolved

Weightings structurally non-1.0; every GlobalConstraint sense built; the negative-min_pu branch fires; and multi-link ports past bus2 — now the four-output CHP on rung 9, ports carried as the link_output dimension. Link delay landed since (#300), and effect_limit is not a 1.3.0 feature (#305).

Deliberately out of this milestone

  • The per-conjunct completeness sweep — every where: conjunct true somewhere and false somewhere, every parameter away from its PyPSA default somewhere. This is a coverage-harness assurance in lpspec's runner (its block-level half, parity.coverage(), already exists), not a feature gap in this repo. It belongs to lpspec, and does not block this milestone.
  • Effects (effect_limit, priced effects) — a later-PyPSA feature, out by version; re-enters when the pinned PyPSA is bumped.

Closes #124.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions