Skip to content

linstabpy v1.0.0rc7

Pre-release
Pre-release

Choose a tag to compare

@ricardofrantz ricardofrantz released this 08 Oct 20:46
· 209 commits to main since this release

A documentation release, cut on top of rc6 the same day. It rewrites the
comments and docstrings across the whole tree and removes two internal
working documents whose job was done. No solver code changed.

What changed

Comments and docstrings, tree-wide. 155 Python files were edited:
50 in the package (src/linstabpy/), 72 in the test tree, 34 in the
example scripts, minus release metadata. Long multi-clause comment
paragraphs became short sentences, one idea per sentence, so each
statement reads in one pass. The edit is a reflow, not growth: about
2 900 lines removed and 2 900 added across 160 files.

Typical before/after, from src/linstabpy/linalg/factorize.py:

before — "The default path is KSPPREONLY + PCLU + MUMPS because the
release tests and reference examples are calibrated against exact
direct solves. The iterative path is available for large memory-bound
cases, but it is an explicit solver-policy choice rather than an
automatic fallback."

after — "The default path is KSPPREONLY + PCLU + MUMPS. The release
tests and reference examples use exact direct solves. The iterative
path is available for large memory-bound cases. It is an explicit
solver-policy choice rather than an automatic fallback."

ruff format over the test tree. The formatter had drifted on
tests/; this tag brings every test file back to the shared style.

Two working documents removed. MARTINI_PARITY_SUMMARY.md (210
lines) and examples/martini/AUDIT_PLAN.md were the running notes of
the Martini examples 0–5 parity audit. That audit closed in rc6, and
everything durable it produced — the reference data, the parity checks,
the per-case plotters, the shipped figures — is in the tree from rc6.
The notes that drove the audit are process material, not release
material, so they are gone.

Verification

The claim "no solver code changed" was checked mechanically, not
assumed: every changed .py file was parsed at both tags, docstrings
were stripped, and the syntax trees were compared (comments never reach
the syntax tree, so this compares exactly the executable code).

  • 154 of 155 files: identical executable code at rc6 and rc7.
  • The one exception is tests/regenerate_mumps_parity_reference.py,
    where a user-facing message string changed: the guard that refuses to
    regenerate the MUMPS baseline under ambient LINSTABPY_* variables
    now says "parity reference" instead of "parity fixture". The test
    that greps for that message was aligned in rc8.

Commits in this tag

  • 46f1768 — remove the Martini audit plan and parity summary documents
  • 793955f — comment pass over src/ and tests/
  • cf7ae2c — ruff format over the test tree
  • dd3671b — comment pass over the example scripts
  • 0e0d036 — release commit: version to 1.0.0rc7, changelog entry