docs: cut release notes for v0.8.0#759
Open
FBumann wants to merge 5 commits into
Open
Conversation
Promote the accumulated "Upcoming Version" entries to a finalized "Version 0.8.0" section and leave a fresh empty "Upcoming Version" placeholder for post-0.8.0 work. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Drop the duplicated MultiIndex-level-projection deprecation text from the Bug Fixes entry; keep the behavior there and cross-reference the Deprecations entry (and vice versa). - Fix a missing bullet on the to_gurobipy/to_highspy Internal entry that was rendering glued onto the previous item. - Fold the two lead bullets (variable_names/where, has_terms) into the Features section instead of orphaning them above the header. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Two "Bug Fixes" change results without raising or warning, so users who relied on the old behavior get silently different models: - partial pandas bounds/masks are now broadcast across a missing dim instead of being dropped (a previously-ignored bound now applies); - Mosek may return a different (better-status) solution for the same model. Prefix both with a "⚠ Behavior change" marker and spell out the upgrade impact inline. No code change — behavior stays as merged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Pure reordering within sections so the highest-impact entries lead; bullet text is unchanged: - Features: CSR storage first, then solver inspection / framework / capabilities / licenses; minor expression props moved to a trailing "Other additions" group. - Performance: broad wins (direct comm, solution writeback) before the solver-specific Xpress entry. - Bug Fixes: both behavior-change entries surfaced to the top. - Breaking Changes: solution-array and read-only-property changes plus the Python 3.10 drop ahead of the coords edge cases. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I think we should release v0.8.0 as soon as possible. We have added a lot, and I thought that the oetc rework is blocking, but it isnt! It just lacks behind the SOlvers a bit now, but thats not a big issue i think.
I revised some release notes. But mostly reordered them.
EDIT: Blocked by #762
EDIT: Found another small alignment bug. PR coming up
Note
The following content was generated by AI.
What this does
Finalizes the accumulated Upcoming Version entries as Version 0.8.0 in
doc/release_notes.rstand leaves a fresh emptyUpcoming Versionplaceholder for post-0.8.0 work. Mostly a reordering so the highest-impact entries lead each section — entry wording is unchanged. Plus a few light edits: deduplicated the MultiIndex-level-projection text across Deprecations/Bug Fixes, fixed a missing bullet, folded two orphan bullets into Features, and flagged the two silent behavior changes (partial pandas bound now broadcast instead of dropped; Mosek solution selection) with a⚠ Behavior changemarker.Why cut 0.8.0 now and not wait for the open PRs
A release is a snapshot of
master, not a feature deadline. Everything already merged stands on its own as a coherent, substantial release; nothing unfinished should hold it back. Anything not merged simply rides 0.8.1 / 0.9.0.Solverframework + two-stepSolver.from_name(...).solve(), CSR-backed constraints (up to ~90% memory / 30–120× faster matrix gen), ~10× fasterio_api="direct", Xpress direct API, lazy license handling,SolverReport. 39 commits since v0.7.0 (2026-05-11, ~4 weeks ago).result.solution.primal/.dualnow numpy-by-label,Model.solver_model/solver_nameread-only,available_solvers= installed-not-licensed, Python 3.10 dropped). These need to reach users and start their feedback loop before v1 — delaying that only makes the eventual jump bigger.Solverpipeline (Refactor OETC as aSolversubclass #683); mocked-only tests, and it expands the publicsolve(remote=...)contract (addsOetcSettings/SshSettings+ a newModel.remoteproperty). Ship the new remote API once, deliberately, in a later release. OETC onmasteris unchanged from v0.7.0 apart from one additivereformulate_soskwarg.dualize()), Add pre-solve scaling support #524 (pre-solve scaling) — feature work, better batched and reviewed for 0.9.0.*by label,+-/by position) #708) rather than landing standalone; shipping it alone introduces a partial behavior v1 changes again.Coupling a release to unfinished PRs lets one unready change hold back many finished, breaking ones. Cutting now keeps cadence and de-risks the v1 runway.
Proposed follow-on schedule
master.dualize()(feat: add m.dualize() #626), pre-solve scaling (Add pre-solve scaling support #524), int32 default (perf: default integer arrays to int32 for ~25% memory reduction #566). Ship the v1 deprecation warnings here too (Unify deprecation warning channels before v1: EvolvingAPIWarning vs LinopySemanticsWarning #738)._termkernel (dense-_termmemory cluster) #756 umbrella / sparse_termkernel.*by label,+-/by position) #708/x - a <= 0andx <= abuild different constraints #707/Subset constants break associativity: a + factor + b ≠ a + b + factor #711/An absent variable is indistinguishable from a zero variable #712/NaN in user-supplied data is silently filled instead of surfaced #713) + v1 convention (feat: v1 semantic convention #717), after a deprecation runway in 0.8/0.9.