Skip to content

Releases: PyPSA/linopy

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 24 Jul 09:06

What's Changed

  • fix(docs): repair mobile sidebar by bumping sphinx-book-theme to 1.2.0 by @FBumann in #779
  • feat(io): stamp linopy version into netCDF export by @FBumann in #780
  • fix(io): write LP bounds for tightened binary variables by @FBumann in #777
  • feat(model): allow {0,1} bounds for binaries in add_variables by @FBumann in #778
  • bench: internal performance benchmark suite + CodSpeed CI by @FBumann in #781
  • build(deps-dev): bump matplotlib from 3.9.1 to 3.11.0 by @dependabot[bot] in #788
  • build(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #784
  • build(deps-dev): bump sphinx from 7.3.7 to 9.0.4 by @dependabot[bot] in #789
  • build(deps-dev): bump pytest from 9.1.0 to 9.1.1 in the benchmark-tooling group by @dependabot[bot] in #785
  • build(deps-dev): bump sphinx-rtd-theme from 2.0.0 to 3.1.0 by @dependabot[bot] in #786
  • fix(constraints): freeze empty constraint groups without reshape error by @Ketchp in #783
  • feat(persistent): in-place solver updates (Solver framework + HiGHS/Gurobi/Xpress/Mosek) by @FabianHofmann in #718
  • build(deps-dev): bump numpydoc from 1.7.0 to 1.10.0 by @dependabot[bot] in #787
  • fix(variables): Variable.where works with solution attached by @FabianHofmann in #790
  • chore: fix typing with new highspy version by @FBumann in #795
  • docs: import AGENTS.md into CLAUDE.md by @FBumann in #794
  • feat(piecewise): active_fill for partial active gates (alt. to #797, #796) by @FBumann in #798
  • build(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #807
  • bench: arithmetic operation micro-benchmarks by @FBumann in #805
  • build(deps-dev): bump pytest-memray from 1.8.0 to 1.9.0 in the benchmark-tooling group by @dependabot[bot] in #808
  • build(deps-dev): bump ipykernel from 6.29.5 to 7.3.0 by @dependabot[bot] in #812
  • build(deps-dev): bump ipython from 8.26.0 to 9.15.0 by @dependabot[bot] in #810
  • build(deps-dev): bump highspy from 1.13.1 to 1.15.0 by @dependabot[bot] in #809
  • fix: GLPK objective parsing by @danielelerede-oet in #818
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #819
  • fix: widen Variable.sum dim parameter type to DimsLike by @manud99 in #820
  • perf(groupby): unify scatter kernel over numpy and dask via apply_ufunc by @FBumann in #802
  • perf: drop explicit zeros from the constraint matrix (#814) by @FBumann in #815
  • build(deps-dev): update docutils requirement from <0.21 to <0.24 by @dependabot[bot] in #811
  • perf: default integer arrays to int32 for ~25% memory reduction by @FBumann in #566
  • perf: prune explicit zeros at matrix assembly (cut build peak memory) by @FBumann in #816
  • test: make assert_linequal ignore dimension order by @FBumann in #801
  • docs: list SCIP in supported solvers (README, index) by @FabianHofmann in #825
  • fix: groupby-sum fast path reduces multi-dim DataArray grouper over all its dims by @FabianHofmann in #824
  • refactor(int32): per-model label dtype instead of sticky process-global by @FBumann in #828
  • fix(gurobi): dispose the solver model before the env on close by @FBumann in #826
  • fix(groupby): align groupers by label, raise on mismatch (#827) by @FBumann in #830
  • docs: add working-with-solvers notebook for the stateful Solver API by @FBumann in #685
  • docs: list SCIP in supported solvers by @FabianHofmann in #835
  • added two example notebooks: energy-resource-build and sudoku by @tpu-brunkhorst in #356
  • fix(groupby): preserve grouped-dim position in groupby-sum by @FabianHofmann in #860
  • fix: don't leak aux coords of summed dims onto the term dimension by @FBumann in #829
  • fix(packaging): ship linopy.remote and linopy.persistent in the wheel by @FBumann in #865
  • docs: harmonize PR/issue refs in release notes by @FabianHofmann in #866

New Contributors

Full Changelog: v0.8.0...v0.9.0

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 10 Jun 09:48
0f62fd8

What's Changed

  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #505
  • perf: matrix accessor rewrite by @coroa in #630
  • docs(piecewise): rewrite reference page + tutorials for correctness and pedagogy by @FBumann in #677
  • docs: fix broken toctree, refresh API reference, and clean up references by @FBumann in #680
  • refactor: stateful Solver instances and two-step solve API by @FabianHofmann in #682
  • docs: silence HiGHS console output in tutorial notebooks by @FBumann in #678
  • docs: reorganize toctree into basic→advanced sections, rewrite user-guide landing by @FBumann in #681
  • docs: credit Felix Bumann in copyright, author, and pyproject maintainers by @FBumann in #687
  • feat(xpress): add direct API support via loadproblem by @FabianHofmann in #684
  • deps: add remote extra for paramiko and migrate install docs to uv by @FBumann in #686
  • fix(sos): refuse masked SOS variables with a clear error; fix reformulate_sos=True no-op on native SOS solvers by @FBumann in #689
  • fix(test): only skip GPU-only solvers without --run-gpu (#693) by @FBumann in #694
  • refactor(sos): add Model.apply/undo_sos_reformulation methods by @FBumann in #690
  • fix(remote): use TemporaryDirectory to avoid Windows tempfile lock by @FabianHofmann in #698
  • Xpress 9.9+ backward compatibility and other updates by @brunoficoxpress in #701
  • ci: swap aflc/pre-commit-jupyter for nbstripout by @FBumann in #700
  • fix(sos): SOS constraints on masked variables (#688) by @FBumann in #692
  • fix(xpress): use ExitStack to manage xpress.problem() lifecycle by @brunoficoxpress in #702
  • fix(license-leaks): release license slot from Mosek, COPT, and MindOpt probe and solver paths by @FBumann in #695
  • drop python 3.10 support by @lkstrp in #721
  • refactor(types): unify SUPPORTED_CONSTANT_TYPES with ConstantLike alias by @FBumann in #728
  • Improve Mosek interface to select optimal solution by @mgrabovsky in #667
  • Feature/example of drop=True by @RobbieKiwi in #557
  • refactor: unify coords-as-truth handling in add_variables/add_constraints by @FBumann in #732
  • ci: fix model runs by @lkstrp in #522
  • perf(matrices): cache MatrixAccessor properties with cached_property by @MaykThewessen in #716
  • feat: add BaseExpression.has_terms property by @FBumann in #743
  • refactor: move alignment code to linopy/alignment.py; restructure tests by @FBumann in #742
  • 311 syntax by @RobbieKiwi in #739
  • chore: Return Self from SolverStatus.from_termination_condition by @FBumann in #746
  • docs: AI-assisted contribution guide by @FBumann in #754
  • fix(alignment): tolerate xarray without CoordinateValidationError by @FBumann in #762
  • fix: regression with tuple coords entries as xarray's (dim_name, values) by @FBumann in #766
  • test: use public API in assertions instead of internal .data by @FBumann in #760
  • fix(groupby): group by non-dimension coordinate names; fast multi-key grouping by names (#750, #753) by @FBumann in #751
  • fix: Variable.fix() value alignment on named dimensions by @FBumann in #774
  • feat: Add indicator constraints by @mcoughlin in #594
  • feat: add m.dualize() by @bobbyxng in #626
  • docs: cut release notes for v0.8.0 by @FBumann in #759

New Contributors

Full Changelog: v0.7.0...v0.8.0

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 11 May 05:24
3f6ab10

What's Changed

  • feat: add sos reformulations into linopy to simplify adoption of new sos features by @FBumann in #549
  • feat: add piecewise linear constraint API (SOS2, incremental, disjunctive) by @FBumann in #576
  • Add reformulate_sos='auto' support to solve() by @FabianHofmann in #595
  • fix: make google-cloud-storage and requests optional dependencies by @lkstrp in #589
  • build(deps): bump the github-actions group with 3 updates by @dependabot[bot] in #598
  • Expose the knitro context by @finozzifa in #600
  • enable quadratic for win with scip by @davide-f in #588
  • Piecewise linear constraints: follow-up improvements by @FabianHofmann in #602
  • Fix flaky SCIP time limit test (fixes #577) by @FabianHofmann in #606
  • refac: introduce consistent convention for linopy operations with subsets and supersets by @FabianHofmann in #572
  • Fix Xpress IIS mapping for masked constraints by @FabianHofmann in #605
  • handle missing dual values when barrier solution has no crossover by @danielelerede-oet in #601
  • feat: Add semi-continous variables as an option by @mcoughlin in #593
  • ci: Add CI workflow to test documentation notebooks by @FBumann in #615
  • Add OetcSettings.from_env() and forward solver options through Model.solve() by @FabianHofmann in #612
  • feat: add m.copy() method to create deep copy of model by @bobbyxng in #623
  • feat: Add fix(), unfix(), and fixed to Variable and Variables by @FBumann in #625
  • fix: Include semi-continuous in Variable.type property by @FBumann in #635
  • Re-introduce knitro context closure and export solver quantities by @finozzifa in #633
  • feat: Add relax() and unrelax() to Variable and Variables by @FBumann in #634
  • refac: replace print calls with str-returning format_* methods by @FBumann in #621
  • perf: use numpy array lookup for solution unpacking by @MaykThewessen in #619
  • chore: benchmarks by @FBumann in #567
  • fix: add_variables ignoring coords for DataArray bounds by @FBumann in #614
  • fix: blacklist highs 1.14.0 by @coroa in #654
  • fix: use xarray.Dataset copy instead of constructor by @maurerle in #647
  • feat: add weakref to Model.slots by @FBumann in #656
  • fix: as_dataarray treating multi-index levels as extra dims by @FabianHofmann in #659
  • fix: compute a single IIS in Xpress infeasibility path by @FabianHofmann in #658
  • Update release notes for v0.6.7 by @FabianHofmann in #661
  • fix: raise clear error when solving model without objective by @FBumann in #671
  • build(deps): bump the github-actions group across 1 directory with 3 updates by @dependabot[bot] in #669
  • feat: Unify piecewise API behind add_piecewise_formulation (sign + LP dispatch) by @FBumann in #638
  • feat: add slopes_align to breakpoints() by @FabianHofmann in #672
  • refac(piecewise): introduce Slopes class, remove breakpoints(slopes=) mode by @FBumann in #673
  • fix: serialize MultiIndex level names as JSON for scipy netCDF backend by @FBumann in #674
  • docs: restructure upcoming changelog and add missing PRs by @FBumann in #675
  • chore: Update release notes for v0.7.0 by @FBumann in #676

New Contributors

Full Changelog: v0.6.4...v0.7.0

v0.6.7

Choose a tag to compare

@github-actions github-actions released this 21 Apr 07:40
4fc1d6a

Full Changelog: v0.6.6...v0.6.7

v0.6.6

Choose a tag to compare

@github-actions github-actions released this 26 Mar 10:01

Full Changelog: v0.6.5...v0.6.6

v0.6.5

Choose a tag to compare

@github-actions github-actions released this 04 Mar 07:03

Full Changelog: v0.6.4...v0.6.5

v0.6.4

Choose a tag to compare

@github-actions github-actions released this 18 Feb 13:21

What's Changed

Full Changelog: v0.6.3...v0.6.4

v0.6.3

Choose a tag to compare

@github-actions github-actions released this 11 Feb 09:58

What's Changed

Full Changelog: v0.6.2...v0.6.3

v0.6.2

Choose a tag to compare

@github-actions github-actions released this 09 Feb 13:41

What's Changed

New Contributors

Full Changelog: v0.6.1...v0.6.2

v0.6.1

Choose a tag to compare

@github-actions github-actions released this 20 Jan 12:18

What's Changed

Full Changelog: v0.6.0...v0.6.1