Skip to content

Allow intentional CommonSolve solve reexport in QA - #127

Merged
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:agent/allow-intentional-solve-reexport
Jul 22, 2026
Merged

Allow intentional CommonSolve solve reexport in QA#127
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:agent/allow-intentional-solve-reexport

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Ignore this PR until reviewed by @ChrisRackauckas.

Summary

  • Assert that FiniteVolumeMethod's intentional public re-export set is exactly [:solve].
  • Allow that one CommonSolve-owned binding in SciMLTesting's default public re-export audit.
  • Keep the re-export audit enabled so any additional dependency-owned public binding still fails QA.

Root cause

SciMLTesting 2.4.0 enabled the public re-export audit by default. FiniteVolumeMethod intentionally imports and exports CommonSolve's solve generic and defines package-specific methods on it, so clean main began failing the new check even though #126 changed only the downgrade workflow.

The dependency boundary was verified locally on clean merge commit e9fdb36edcdc7a8a528d47b19aaece5f5da2427e:

  • SciMLTesting 2.3.0: QA 18/18 passed.
  • SciMLTesting 2.4.0: QA 18 passed, 1 failed; the only finding was reexported == [:solve].

Validation

  • Julia 1.12.6, GROUP=QA, SciMLTesting 2.4.0, exact hosted test arguments: QA 20/20 passed.
  • Julia 1.10.11 LTS, GROUP=QA, SciMLTesting 2.4.0, exact hosted test arguments: QA 18/18 passed.
  • Runic.jl 1.7.0 --check .: exit 0.
  • git diff --check: exit 0.

The first local LTS invocation stopped before running tests because an ignored Julia 1.12 manifest from the preceding local run was still present. I removed only that generated manifest and reran from a clean resolution state; the LTS QA result above is from the clean rerun.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Investigation scratchpad for the clean-main QA failure observed in #126:

  • Hosted source: run 29861895811, job 88740532058, head 660ae97783fb208168a82442916042e3b23bbf38. The PR changed only .github/workflows/Downgrade.yml; QA failed 18/19 because SciMLTesting reported reexported == [:solve].
  • Clean reproduction: detached current main merge commit e9fdb36edcdc7a8a528d47b19aaece5f5da2427e, Julia 1.12.6, SciMLTesting 2.4.0, GROUP=QA, coverage/check-bounds/depwarn matching Actions. Result: 18 pass, 1 fail, 19 total; exit 1.
  • Boundary: SciMLTesting commit 2881f4c15fb715f0934009a800d42765751587b1 enabled the default public re-export audit. Registered 2.3.0 tree 6ebdbe314d25a3dfa1958e93356e61d7f3c0033d passes this clean FVM revision (18/18); registered 2.4.0 tree 7f694d4107f2babd9bd918f56e69564eb7ff44b7 fails only on :solve.
  • Intent: FVM imports and exports CommonSolve's solve generic and defines FVM-specific methods on it. The existing QA comment and rendered-doc exception already document that ownership boundary.
  • Fix: assert the exact intentional re-export set is [:solve], then pass only that name through reexports_allow; the audit remains enabled for every other binding.

Final local verification on c0dde60ffe34a02946622cbfe5383304cdcbcc02:

  • Julia 1.12.6 / SciMLTesting 2.4.0: QA 20/20, exit 0.
  • Julia 1.10.11 / SciMLTesting 2.4.0: QA 18/18, exit 0.
  • Runic 1.7.0 full repository check: exit 0.
  • git diff --check: exit 0.

Workspace-local raw evidence and SHA-256:

  • Hosted job log: audit/logs/finitevolumemethod-pr126-run29861895811-job88740532058.logd90a21d6e34363c5abb6ce65711e0fb60bcfb09403c3056ed0a1c1d0b3e4880e
  • Clean 2.4 failure: audit/logs/finitevolumemethod-main-e9fdb36-qa-julia1.12.6.log81d673400bef5f3bb639ba4a57a389e5ecd39436fc842d02a41df04cabb20891
  • Clean 2.3 control: audit/logs/finitevolumemethod-main-e9fdb36-qa-scimltesting2.3-julia1.12.6.log4167256092f2d5a0a737fad8ab42fd67bd0fb4e3267cce62a41d90dcb8c5c7de
  • Release boundary: audit/logs/finitevolumemethod-scimltesting-general-release-boundary.logcf6986a5bd06224b38bec0eff057ab266a37b6ab5a17595adfbbb3ead71432cb
  • Final Julia 1.12.6 QA: audit/logs/finitevolumemethod-allow-solve-reexport-qa-julia1.12.6-final.log4109dc6cb9dee6c3938a48f74d210fbf8c79c1728565ab6a7be2bfa73718fe21
  • Final Julia 1.10.11 QA: audit/logs/finitevolumemethod-allow-solve-reexport-qa-julia1.10.11-final.log12ff1772d519f57c12d1962e53b4bebe093817638836a51ad59191eef8f507f2
  • Final Runic: audit/logs/finitevolumemethod-allow-solve-reexport-runic-final.log81d9441282d557d26687b37847c322e544391af1cee98045136b912d641313cc

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Post-timer CI classification at immutable head c0dde60ffe34a02946622cbfe5383304cdcbcc02:

  • Target QA job 88777224627 passed: QA | 20 / 20 | 31.9s; the complete job passed in 16m25s.
  • Downgrade, documentation, Runic, spellcheck, Runic suggestions, detect, and Julia-current Core passed.
  • Julia LTS Core job 88777224570 and Julia prerelease Core job 88777224625 did not report test failures. Both ran on self-hosted-4vcpu-8gb runners, left the test step in_progress, and ended only with the self-hosted-runner-lost-communication annotation.
  • This PR changes only test/qa/qa.jl; those Core runner losses are independent of the focused QA fix and require a separate clean-base infrastructure follow-up. No Core test was skipped, silenced, or changed here.

Archived evidence:

  • QA hosted log SHA-256: eb9baa6f53b1b1860b8164d6a65c93d495ea0798ff45cedb1ba4e8c7d393fb5a
  • QA job metadata SHA-256: d03249df62f89838efc40221f648d995464b7175c7fbbc34197a240532a495ac
  • LTS runner-loss metadata SHA-256: 2e08c7752a7b5d78ee7c1a4055a1bd082d4afb751af1870a5cd556e5bb30eb6e
  • Prerelease runner-loss metadata SHA-256: a17752815c51ae088c1fb16ad0d2ce61d7e3da733057f948c45b051b6ab3d064

@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review July 22, 2026 02:24
@ChrisRackauckas
ChrisRackauckas merged commit 0ac4d92 into SciML:main Jul 22, 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