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