Releases: PyPSA/linopy
Releases · PyPSA/linopy
v0.8.0
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
remoteextra 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=Trueno-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
- @mgrabovsky made their first contribution in #667
Full Changelog: v0.7.0...v0.8.0
v0.7.0
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
- @finozzifa made their first contribution in #600
- @davide-f made their first contribution in #588
- @danielelerede-oet made their first contribution in #601
- @mcoughlin made their first contribution in #593
- @bobbyxng made their first contribution in #623
- @MaykThewessen made their first contribution in #619
Full Changelog: v0.6.4...v0.7.0
v0.6.7
Full Changelog: v0.6.6...v0.6.7
v0.6.6
Full Changelog: v0.6.5...v0.6.6
v0.6.5
Full Changelog: v0.6.4...v0.6.5
v0.6.4
What's Changed
- fix: update HiGHS URLs and naming by @FabianHofmann in #585
- Add Knitro solver support by @FabianHofmann in #532
Full Changelog: v0.6.3...v0.6.4
v0.6.3
What's Changed
- Bugfix/fix readthedocs by @RobbieKiwi in #574
- fix polars dep lb by @FBumann in #578
- fix: revert np.where to xarray.where when adding vars/ constraints by @lkstrp in #575
- test and future warning for #575 by @lkstrp in #579
- Reinsert broadcasted mask by @FabianHofmann in #580
- fix: add coords and dims to as_dataarray by @FabianHofmann in #582
Full Changelog: v0.6.2...v0.6.3
v0.6.2
What's Changed
- add sphinx_copybutton extension by @mosc9575 in #553
- Bugfix/gurobi license and docs by @RobbieKiwi in #556
- Fix multiplication of constant-only LinearExpression by @FabianHofmann in #568
- perf: speed up LP file writing (2.5-3.9x on large models, no regressions on small) by @FBumann in #564
- Add auto_mask parameter to Model class by @FBumann in #555
New Contributors
Full Changelog: v0.6.1...v0.6.2
v0.6.1
v0.6.0
What's Changed
- build(deps): bump the github-actions group with 3 updates by @dependabot[bot] in #519
- fix (solvers): Add compatibility shim for xpress.Namespaces by @coroa in #521
- Speed up printing by @FBumann in #526
- build(deps): bump actions/checkout from 5 to 6 in the github-actions group by @dependabot[bot] in #527
- Feature/solver features registry by @FBumann in #528
- add linear expression from constant by @RobbieKiwi in #518
- Feature/simplify expression by @RobbieKiwi in #530
- feat: Add sos constraints by @coroa in #495
- Add Xpress 9.8+ API support with backward compatibility by @brunoficoxpress in #542
- fix(highs): stop solve on Ctrl-C by @FabianHofmann in #536
- fix(solvers): add forgotten xpress getDual fallback by @coroa in #547
- Bugfix/fix notebook docs by @RobbieKiwi in #546
- fix: correct regex to capture negative objective values when using CBC by @qheuristics in #540
- build(deps): bump the github-actions group with 3 updates by @dependabot[bot] in #543
- Feature/dummy solve by @RobbieKiwi in #534
- Add support for solver cuPDLPx by @mal84emma in #516
New Contributors
- @brunoficoxpress made their first contribution in #542
- @mal84emma made their first contribution in #516
Full Changelog: v0.5.8...v0.6.0
What's Changed
- build(deps): bump the github-actions group with 3 updates by @dependabot[bot] in #519
- fix (solvers): Add compatibility shim for xpress.Namespaces by @coroa in #521
- Speed up printing by @FBumann in #526
- build(deps): bump actions/checkout from 5 to 6 in the github-actions group by @dependabot[bot] in #527
- Feature/solver features registry by @FBumann in #528
- add linear expression from constant by @RobbieKiwi in #518
- Feature/simplify expression by @RobbieKiwi in #530
- feat: Add sos constraints by @coroa in #495
- Add Xpress 9.8+ API support with backward compatibility by @brunoficoxpress in #542
- fix(highs): stop solve on Ctrl-C by @FabianHofmann in #536
- fix(solvers): add forgotten xpress getDual fallback by @coroa in #547
- Bugfix/fix notebook docs by @RobbieKiwi in #546
- fix: correct regex to capture negative objective values when using CBC by @qheuristics in #540
- build(deps): bump the github-actions group with 3 updates by @dependabot[bot] in #543
- Feature/dummy solve by @RobbieKiwi in #534
- Add support for solver cuPDLPx by @mal84emma in #516
New Contributors
- @brunoficoxpress made their first contribution in #542
- @mal84emma made their first contribution in #516
Full Changelog: v0.5.8...v0.6.0