Skip to content

Export InvPreconditioner - #1272

Merged
ChrisRackauckas merged 2 commits into
SciML:mainfrom
ChrisRackauckas-Claude:public-inv-preconditioner
Aug 30, 2026
Merged

Export InvPreconditioner#1272
ChrisRackauckas merged 2 commits into
SciML:mainfrom
ChrisRackauckas-Claude:public-inv-preconditioner

Conversation

@ChrisRackauckas-Claude

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Aug 29, 2026

Copy link
Copy Markdown
Member

What changed and why

InvPreconditioner already has a docstring and rendered manual entries, but it is not exported and therefore is not public API. Export it so downstream packages can use the inverse-preconditioner wrapper without reaching into LinearSolve internals. This unblocks the requested cleanup in SciML/OrdinaryDiffEq.jl#4391 (comment).

This public API addition should be included in a LinearSolve 5.15.0 or later minor release. The version is not changed here because LinearSolve performs version bumps in dedicated release PRs.

Ignore this PR until it has been reviewed by @ChrisRackauckas.

Failing before / passing after

On exact parent 50563b88, the focused public-API assertion failed:

$ julia +1.11 --project -e 'using LinearSolve, Test; @test Base.isexported(LinearSolve, :InvPreconditioner)'
Test Failed at none:1
  Expression: Base.isexported(LinearSolve, :InvPreconditioner)

ERROR: There was an error during testing

With this change, the same command exits 0. It also exits 0 on Julia 1.10.11.
The two-line committed assertion was removed by @ChrisRackauckas during review at #1272 (comment); the commands above are the retained fail-before/pass-after evidence.

Verification

Julia 1.11.9:

$ GROUP=Core julia +1.11 --project -e 'using Pkg; Pkg.test()'
Test Summary:              | Pass  Total  Time
SpecializingFactorizations |   18     18  3.7s
Testing LinearSolve tests passed

$ GROUP=QA julia +1.11 --project -e 'using Pkg; Pkg.test()'
Test Summary:     | Pass  Total     Time
Quality Assurance |   50     50  6m24.1s
Testing LinearSolve tests passed
$ JULIA_DEPOT_PATH=<clean-isolated-depot> julia +1.11 --project=docs docs/make.jl
[ Info: CheckDocument: running document checks.
[ Info: RenderDocument: rendering document.
# exit 0

$ julia +1.12 -m Runic --check src/LinearSolve.jl test/Core/basictests.jl
# exit 0

$ typos src/LinearSolve.jl test/Core/basictests.jl
# exit 0

$ git diff --check
# exit 0

The isolated depot was necessary because this host's global CondaPkg Pixi cache contains zero-byte Python files left by the 2026-08-22 disk-full incident. Clean upstream/main and this branch both build the docs successfully with the isolated depot; this is local cache corruption, not a repository failure.

Not verified

GPU-specific groups and optional solver backend groups were not run locally. No dependency is added or changed.

🤖 Generated with Codex CLI 0.151.0 (model: gpt-5.6-sol; session: local session ID 01a04fab-48db-7e03-9f47-20c69464527f)

Expose the existing documented inverse-preconditioner wrapper as public API and cover its exported status.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Codex <noreply@openai.com>
Agent-Harness: Codex CLI 0.151.0
Agent-Model: gpt-5.6-sol
Agent-Session: local session ID 01a04fab-48db-7e03-9f47-20c69464527f
Comment thread test/Core/basictests.jl Outdated
@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review August 30, 2026 00:02
@ChrisRackauckas
ChrisRackauckas merged commit db7c885 into SciML:main Aug 30, 2026
8 of 10 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.

2 participants