compat: declare SciMLTesting 2.10 and remove blanket reexports - #81
Conversation
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Keep the blanket BandedMatrices reexport removed while preserving the documented construction path through FastAlmostBandedMatrices itself. Reexport only BandedMatrix and brand, document that small construction-helper surface, and cover it with a focused Core test. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Assert that the documented BandedMatrix and brand helpers remain exported while representative blanket BandedMatrices names do not.\n\nCo-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
|
Inspected the held reexport removal against the README, rendered API, doctests, and focused tests. No documented downstream use requires restoring the blanket BandedMatrices reexport. The documented path uses Evidence on the already-pushed head |
|
Correction to the previous comment: the hosted failure is BoundaryValueDiffEq's BigFloat downstream test, with an ambiguous promote_rule(BigFloat, SparseConnectivityTracer.Dual{BigFloat,...}). It does not involve FastAlmostBandedMatrices or the changed reexports. The rework is locally verified (Core/QA/docs/Runic/typos pass). |
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
|
Reworked in commit |
Use BandedMatrices.brand explicitly in documented construction examples and keep the FastAlmostBandedMatrices API limited to its own documented names. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
|
Audit against current Follow-up commit Verification on the updated branch:
The documented construction remains usable as |
Commit f3ec92e ("compat: declare SciMLTesting 2.10 and remove blanket reexports", #81) deleted `@reexport using BandedMatrices` from FastAlmostBandedMatrices. That silently stripped the package's public surface: `using FastAlmostBandedMatrices` no longer brought `BandedMatrix` or `brand` into scope, so the package's own documented construction path stopped working without a separate `using BandedMatrices`. The same commit had to rewrite every docstring example from `brand(...)` to `BandedMatrices.brand(...)` and add `using BandedMatrices` to the README, the docs and nearly every testset -- which is itself the evidence that those names are normal documented use. Following the rule "reexport what is normal documented use, but not whole dependencies", this restores an explicit `export` list instead of the blanket reexport: BandedMatrix, brand, brandn # build the `bands` argument Band, BandRange, band, bandrange # populate it bandwidth, bandwidths, colrange, rowrange # query it BandError # thrown by out-of-band setindex! Everything else BandedMatrices exports stays out, in particular the FillArrays names it reexports in turn (`Fill`, `Ones`, `Zeros`, `Eye`), the `BandedMatrices` module binding itself, and `symrcm`. Evidence for the list: * `AlmostBandedMatrix(bands::BandedMatrix, fill)` is the documented constructor, and every docstring/README/docs example builds `bands` with `brand`; `brandn` is its direct sibling. * `test/core_tests.jl` uses `BandedMatrix`, `brand`, `band(0)` and `@test_throws BandError` against this package's own type, and `test/qa/alloc_tests.jl` uses `brand` -- all of which needed a `using BandedMatrices` added by the stripping commit (in alloc_tests.jl without BandedMatrices even being a dependency of test/qa/Project.toml, which this commit also resolves by dropping that import again). * `bandwidth`/`bandwidths` were the two names the stripping commit itself kept importing, and are how `bandpart(A)` is queried. The docstrings, README and docs examples are restored to their unqualified form, the docs and README now list the reexported surface explicitly, the QA allow-list (`REEXPORTED_API` in test/qa/qa.jl) is restored and kept in sync, and a Core test pins that every approved name is exported, in scope from a bare `using FastAlmostBandedMatrices`, and still identical to the upstream binding -- while the excluded names stay unexported. Restoring previously exported names is not breaking; no version bump here. Claude-Session: https://claude.ai/code/session_01Rmh6B9eoW3N8oCbuuVPVxJ Co-authored-by: Claude <noreply@anthropic.com>
Summary
@reexport using BandedMatricessurface.brand, which is used unqualified by the documentedAlmostBandedMatrixconstruction workflow.BandedMatrixand all other banded types/utilities available throughBandedMatricesdirectly.brandAPI and align the README, rendered API page, export regression test, and SciMLTesting allowlist.Please ignore this draft until reviewed by @ChrisRackauckas.
Verification
All commands were run locally after commit
6a5f54a.GROUP=Core julia --project=. -e "using Pkg; Pkg.test()":35 pass / 2 broken / 37 total.GROUP=QA julia --project=. -e "using Pkg; Pkg.test()": allocations11/11; QA18 pass / 2 broken / 20 total.julia --project=docs docs/make.jl: exit 0 with doctests, cross-references, document checks, rendering, and HTML generation enabled.git diff --check: exit 0.The two broken Core/QA markers are unchanged ambiguity markers; no tests were disabled or loosened.
The hosted BoundaryValueDiffEq downstream failure is unrelated and has no FastAlmostBandedMatrices frame: https://github.com/SciML/FastAlmostBandedMatrices.jl/actions/runs/31938374279/job/95143782151