Skip to content

chore(release): release v0.4.4#188

Merged
acgetchell merged 2 commits into
mainfrom
release/v0.4.4
Jul 13, 2026
Merged

chore(release): release v0.4.4#188
acgetchell merged 2 commits into
mainfrom
release/v0.4.4

Conversation

@acgetchell

@acgetchell acgetchell commented Jul 13, 2026

Copy link
Copy Markdown
Owner
  • Bump crate, utility package, citation, and documentation metadata
  • Publish the v0.4.4 changelog and release performance comparison
  • Refresh reproducible LU-solve benchmarks and archived performance reports
  • Include exact-conversion and LDLT performance improvements
  • Harden version-sync checks and generated Markdown formatting

Summary by CodeRabbit

  • New Release

    • Released version 0.4.4 with updated package metadata and release resources.
  • Bug Fixes

    • Improved exact-arithmetic conversion failure classification and Bareiss scale alignment for exact solving.
    • Improved symmetric LDLᵀ factorization error handling for invalid/near-zero pivots.
  • Performance

    • Updated LU-solve benchmarks to recompute per iteration (reducing batching effects at small sizes).
    • Refreshed performance reports and expanded comparisons across additional linear-algebra implementations.
  • Documentation

    • Updated benchmarking, performance, releasing, and citation/changelog links for v0.4.4.

- Bump crate, utility package, citation, and documentation metadata
- Publish the v0.4.4 changelog and release performance comparison
- Refresh reproducible LU-solve benchmarks and archived performance reports
- Include exact-conversion and LDLT performance improvements
- Harden version-sync checks and generated Markdown formatting
@acgetchell acgetchell self-assigned this Jul 13, 2026
@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: e17e7163-bb35-48bd-aed2-32511843e57a

📥 Commits

Reviewing files that changed from the base of the PR and between 7019b82 and 2e1eb2e.

📒 Files selected for processing (6)
  • CHANGELOG.md
  • scripts/check_docs_version_sync.py
  • scripts/postprocess_changelog.py
  • scripts/tests/test_check_docs_version_sync.py
  • scripts/tests/test_postprocess_changelog.py
  • src/exact.rs
🚧 Files skipped from review as they are similar to previous changes (5)
  • scripts/postprocess_changelog.py
  • scripts/check_docs_version_sync.py
  • scripts/tests/test_check_docs_version_sync.py
  • CHANGELOG.md
  • src/exact.rs

📝 Walkthrough

Walkthrough

The v0.4.4 release updates package metadata, documentation, benchmark measurement and reporting workflows, validation scripts, archived performance artifacts, and numerical exact-arithmetic and LDLT behavior.

Changes

Release and correctness updates

Layer / File(s) Summary
Release metadata and documentation
AGENTS.md, CHANGELOG.md, CITATION.cff, Cargo.toml, pyproject.toml, README.md, docs/archive/performance/*
Release metadata, links, changelog content, benchmark snapshots, and archived performance documentation are updated for v0.4.4.
Benchmark measurement and publication
benches/vs_linalg.rs, docs/BENCHMARKING.md, scripts/criterion_dim_plot.py, scripts/bench_compare.py, scripts/tests/*, docs/assets/bench/*
LU-solve benchmarks use direct iter timing, publication commands select one metric, and provenance formatting and tests are updated.
Performance report regeneration
docs/PERFORMANCE.md
The report adds v0.4.4 provenance, confidence intervals, and expanded nalgebra/faer comparisons across dimensions.
Release validation automation
justfile, docs/RELEASING.md, scripts/check_docs_version_sync.py, scripts/postprocess_changelog.py, scripts/tests/*
Documentation version checks, benchmark current-tag validation, changelog formatting, and Dependabot footer stripping are added or revised.
Exact arithmetic and LDLT classification
src/exact.rs, src/ldlt.rs, tests/vs_linalg_inputs.rs
Exact conversion reasons and Bareiss scale alignment are refined, LDLT pivot failures are centralized, and compatibility-dependent determinant conversion is adjusted.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

Suggested labels: breaking change, documentation, enhancement

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and accurately summarizes this release-focused changeset for v0.4.4.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/v0.4.4

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Jul 13, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.86%. Comparing base (e736c5f) to head (2e1eb2e).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #188      +/-   ##
==========================================
- Coverage   97.87%   97.86%   -0.02%     
==========================================
  Files           8        8              
  Lines        4947     4969      +22     
==========================================
+ Hits         4842     4863      +21     
- Misses        105      106       +1     
Flag Coverage Δ
unittests 97.86% <100.00%> (-0.02%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

@coderabbitai coderabbitai 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.

Actionable comments posted: 5

🧹 Nitpick comments (1)
scripts/tests/test_postprocess_changelog.py (1)

90-111: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Cover the postprocess_text() integration path.

These tests exercise _strip_dependabot_metadata() directly but do not verify the new call from postprocess_text(). Add an assertion through postprocess_text() so wiring and ordering regressions are detected.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/tests/test_postprocess_changelog.py` around lines 90 - 111, Add an
integration test in TestDependabotMetadata that invokes postprocess_text() with
Dependabot metadata and asserts the footer is removed while the expected
changelog content remains. Keep the existing direct _strip_dependabot_metadata()
coverage and ensure the assertion verifies the new call is wired into
postprocess_text() in the correct order.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@benches/vs_linalg.rs`:
- Around line 222-244: The three LU solve benchmarks use inconsistent input
ownership, so their timings include different copy costs. Update
la_stack_lu_solve, nalgebra_lu_solve, and faer_lu_solve to use the same
input-copying or borrowing protocol for both matrices and right-hand sides,
while preserving equivalent representative inputs. Regenerate the README and
release artifacts, and record comparable results using the same command,
features, inputs, and environment.

In `@CHANGELOG.md`:
- Around line 8-109: Regenerate the v0.4.4 section through the repository’s
prescribed changelog workflow instead of editing CHANGELOG.md directly. Preserve
the release entries while using the workflow’s generated formatting, provenance,
and reproducibility behavior.

In `@scripts/check_docs_version_sync.py`:
- Around line 261-265: Update _README_TAG_LINK_RE so version and revision
matches cannot terminate at a word boundary inside a longer tag; require the
token to end at “/” or an explicit non-tag-character boundary that excludes dots
and other semver/tag characters. Add a regression test covering dotted or
otherwise non-semver tags such as v1.2.3.4, ensuring they are not accepted as
v1.2.3.

In `@scripts/postprocess_changelog.py`:
- Around line 767-809: The _strip_dependabot_metadata function currently removes
matching YAML markers inside fenced code examples. Track fenced-code state while
scanning lines and only strip Dependabot metadata when the separator and
updated-dependencies block are outside fences; preserve all fenced content
unchanged. Add a regression test through postprocess_text covering a fenced YAML
example containing ---, updated-dependencies:, and ...

In `@src/exact.rs`:
- Around line 1298-1310: Update the public exact-solve documentation near the
existing independent-scaling description to state the conditional invariant:
matrix and RHS use a shared minimum scale when their independent scale exponents
differ by at most MAX_SHARED_SCALE_GAP_BITS (64), otherwise they retain
independent scales. Keep the documentation aligned with the logic in
ScaleExponent::for_decomposed and the matrix_scale/rhs_scale selection.

---

Nitpick comments:
In `@scripts/tests/test_postprocess_changelog.py`:
- Around line 90-111: Add an integration test in TestDependabotMetadata that
invokes postprocess_text() with Dependabot metadata and asserts the footer is
removed while the expected changelog content remains. Keep the existing direct
_strip_dependabot_metadata() coverage and ensure the assertion verifies the new
call is wired into postprocess_text() in the correct order.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 18ba6368-686b-487e-9b91-4734f9651f97

📥 Commits

Reviewing files that changed from the base of the PR and between e736c5f and 7019b82.

⛔ Files ignored due to path filters (4)
  • Cargo.lock is excluded by !**/*.lock
  • docs/assets/bench/vs_linalg_lu_solve_median.csv is excluded by !**/*.csv
  • docs/assets/bench/vs_linalg_lu_solve_median.svg is excluded by !**/*.svg
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (25)
  • AGENTS.md
  • CHANGELOG.md
  • CITATION.cff
  • Cargo.toml
  • README.md
  • benches/vs_linalg.rs
  • docs/BENCHMARKING.md
  • docs/PERFORMANCE.md
  • docs/RELEASING.md
  • docs/archive/performance/README.md
  • docs/archive/performance/v0.4.3-vs-v0.4.2.md
  • docs/assets/bench/vs_linalg_lu_solve_median.provenance.json
  • justfile
  • pyproject.toml
  • scripts/bench_compare.py
  • scripts/check_docs_version_sync.py
  • scripts/criterion_dim_plot.py
  • scripts/postprocess_changelog.py
  • scripts/tests/test_bench_compare.py
  • scripts/tests/test_check_docs_version_sync.py
  • scripts/tests/test_criterion_dim_plot.py
  • scripts/tests/test_postprocess_changelog.py
  • src/exact.rs
  • src/ldlt.rs
  • tests/vs_linalg_inputs.rs

Comment thread benches/vs_linalg.rs
Comment thread CHANGELOG.md Outdated
Comment thread scripts/check_docs_version_sync.py
Comment thread scripts/postprocess_changelog.py
Comment thread src/exact.rs
- Reject tag prefixes embedded in longer non-semver revisions
- Preserve fenced examples when stripping Dependabot metadata
- Document the conditional exact-solve scaling invariant
- Regenerate the v0.4.4 changelog through the release workflow
@acgetchell acgetchell enabled auto-merge July 13, 2026 04:58
@acgetchell acgetchell merged commit 03a6dc7 into main Jul 13, 2026
20 checks passed
@acgetchell acgetchell deleted the release/v0.4.4 branch July 13, 2026 04:59
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