Skip to content

Release 0.6.3 - #92

Merged
StevenBtw merged 15 commits into
mainfrom
dev
Oct 6, 2026
Merged

StevenBtw merged 15 commits into
mainfrom
dev

Conversation

@StevenBtw

@StevenBtw StevenBtw commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

Summary by cubic

Merges dev into main as release 0.6.3. Adds new LP/MILP input forms (sparse rows, per-row senses, variable bounds, binary variables), an incremental MilpModel with warm re-solves, and makes strongly_connected_components, articulation_points and bridges iterative so deep graphs no longer raise RecursionError. Graph and solver results no longer depend on set/input order, and the Python and Rust backends are bit-identical.

Behavior changes

  • solve_lp and solve_milp accept sparse rows, senses, lb/ub and binary; the 0.6.2 call form stays unchanged.
  • MilpModel adds rows and re-solves warm from a kept simplex basis; solve_lexicographic optimizes objectives in priority order.
  • Louvain now aggregates communities to a coarser graph; PageRank convergence checks the largest score change against tol.
  • A new bounded-variable dense-tableau simplex kernel (Python and Rust) powers all LP/MILP solves, and PageRank gains a Rust pagerank backend.

Tooling and release

  • Version now lives only in rust/Cargo.toml; publishing builds abi3 wheels per platform with maturin and reads the release tag from Cargo.toml.
  • Rust is pinned via rust-toolchain.toml, PyO3 bumped to 0.29 with abi3-py312, and the minimum supported Rust is 1.88; lint and type-check CI no longer build the extension, and a new rust-lint job runs clippy on the pinned toolchain.
  • Golden-result and determinism tests pin solver outputs; an intended output change must also update the digests and CHANGELOG Result changes.

Written for commit fb68414. Summary will update on new commits.

Review in cubic Turn on auto-fix

@StevenBtw StevenBtw changed the title Dev Release 0.6.3 Oct 6, 2026
@codecov

codecov Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.58420% with 19 lines in your changes missing coverage. Please review.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
solvor/milp.py 96.59% 9 Missing ⚠️
solvor/lp_engine.py 99.23% 4 Missing ⚠️
solvor/articulation.py 96.87% 2 Missing ⚠️
solvor/pagerank.py 95.45% 2 Missing ⚠️
solvor/community.py 98.85% 1 Missing ⚠️
solvor/milp_heuristics.py 99.34% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 63 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread solvor/milp.py Outdated
Comment thread solvor/utils/lp_input.py Outdated
Comment thread solvor/milp_presolve.py Outdated
Comment thread docs/algorithms/linear-programming/solve-lp.md Outdated
Comment thread solvor/pagerank.py Outdated
Comment thread docs/getting-started/performance.md
Comment thread docs/algorithms/linear-programming/solve-milp.md
Comment thread rust/src/algorithms/pagerank.rs
Comment thread solvor/flow.py
Comment thread .github/workflows/ci.yml Outdated

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 24 files (changes from recent commits).

Reply with feedback, questions, or to request a fix.

Turn on auto-fix | Re-trigger cubic

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="docs/algorithms/linear-programming/solve-lp.md">

<violation number="1" location="docs/algorithms/linear-programming/solve-lp.md:98">
P3: This omits the finite-step condition: `_gain_column` skips columns whose ratio limit is infinite, so a reduced cost within `eps` on an unbounded direction does not enter through this check. Specify that the gain must occur over a finite feasible step.</violation>
</file>

<file name="docs/algorithms/linear-programming/solve-milp.md">

<violation number="1" location="docs/algorithms/linear-programming/solve-milp.md:61">
P2: With the default `seed=None`, LNS runs are not repeatable, despite the unconditional same-call-sequence guarantee below. State that callers must supply a seed for reproducibility and qualify that guarantee for LNS.</violation>
</file>

Comment thread docs/algorithms/linear-programming/solve-milp.md Outdated
Comment thread docs/algorithms/linear-programming/solve-lp.md Outdated
@StevenBtw
StevenBtw merged commit 16e2453 into main Oct 6, 2026
23 of 37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant