Skip to content

Allow Symbolics facade reexports in MTKBase QA - #5047

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/mtkbase-symbolics-reexport-allowlist
Aug 30, 2026
Merged

Allow Symbolics facade reexports in MTKBase QA#5047
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/mtkbase-symbolics-reexport-allowlist

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

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

What changed and why

Symbolics 7.38 replaced its blanket SymbolicUtils reexport with explicit exports. That ownership correction made ModelingToolkitBase's strict reexport audit newly identify Unknown, scalarize, shape, and unwrap, even though all four are already part of the intentional ModelingToolkitBase/Symbolics facade API.

This adds those existing SymbolicUtils-owned facade names to REEXPORTED_API; it does not widen the user-facing API. This is the ModelingToolkitBase counterpart to #5039.

Verification

Failing before the change on clean upstream/master at f9131984d97460057c62830b60790380ee5fc2f1 with Julia 1.12.7 and Symbolics 7.39.0:

$ GROUP=QA julia +1.12 --startup-file=no --project=. -e 'using Pkg; Pkg.test()'
No unapproved public reexports: Test Failed
  Evaluated: isempty([:Unknown, :scalarize, :shape, :unwrap])
Test Summary: | Pass  Fail  Total
Aqua Tests    |   19     2     21

The other failure was the pre-existing package-wide JET result (263 possible errors), tracked at #4958. The exact JET lane was already red with the same 263 reports in its first CI run after introduction by 92c27bb:
https://github.com/SciML/ModelingToolkit.jl/actions/runs/31478008118/job/93737918032

Focused reexport audit after the change:

UNAPPROVED_REEXPORTS=Symbol[]

Full post-change QA:

$ GROUP=QA julia +1.12 --startup-file=no --project=. -e 'using Pkg; Pkg.test()'
═════ 263 possible errors found ═════
Test Summary:                      | Pass  Fail  Total
Aqua Tests                         |   20     1     21
  No unapproved public reexports   |    1            1

Formatting and spelling:

$ julia +1.12 --project=@runic -e 'using Runic; exit(Runic.main(ARGS))' -- --check lib/ModelingToolkitBase/test/qa/aqua.jl
$ typos lib/ModelingToolkitBase/test/qa/aqua.jl
$ git diff --check

All three completed with exit code 0 and no output.

Not verified

Links

🤖 Generated with Codex (harness version: unknown; model: gpt-5; session: local session ID 01a04feb-43da-7ce1-99e4-a68438c69833).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: OpenAI Codex <noreply@openai.com>
Agent-Harness: Codex unknown
Agent-Model: gpt-5
Agent-Session: local session ID 01a04feb-43da-7ce1-99e4-a68438c69833
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Implementation scratchpad:

  1. Reproduced clean-master QA: 19 pass / 2 fail, with the four SymbolicUtils reexports plus the pre-existing 263-report JET failure.
  2. Traced the reexport boundary to Symbolics 7.38.0 and the JET boundary to MTKBase strict-QA introduction in commit 92c27bb; its first CI run already had the same 263 reports: https://github.com/SciML/ModelingToolkit.jl/actions/runs/31478008118/job/93737918032.
  3. Added only the four existing facade names to the MTKBase allowlist.
  4. Post-change full QA: 20 pass / 1 fail; the reexport check passes, and only the tracked JET failure remains. Runic, typos, and diff checks pass.
  5. Awaiting CI; PR remains draft and should be ignored until reviewed by @ChrisRackauckas.

JET investigation update: #4958 (comment)

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

CI triage update:

The Runic workflow failed on three files unchanged by this PR:

  • lib/ModelingToolkitBase/ext/MTKBifurcationKitExt.jl
  • lib/ModelingToolkitBase/src/systems/parameter_buffer.jl
  • lib/ModelingToolkitBase/test/accessor_functions.jl

The changed file, lib/ModelingToolkitBase/test/qa/aqua.jl, passed the CI Runic check. This branch differs from upstream/master only in that QA file. The failed workflow is https://github.com/SciML/ModelingToolkit.jl/actions/runs/33300210480/job/99226805030.

Per repository policy, a separate clean-master formatting investigation is in progress; this PR will not mix unrelated formatting changes into the reexport metadata fix.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Runic follow-up: this is the known Runic 1.10 formatter drift already isolated in draft #5046. Clean upstream/master at f9131984d9 fails Runic 1.10.0 on exactly the same three unchanged files; Runic 1.7/1.8/1.9 pass. The changed lib/ModelingToolkitBase/test/qa/aqua.jl passes both local Runic and the CI Runic check. PR 5047 therefore depends on the separate mechanical PR 5046 for a green repository-wide formatter job.

@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review August 30, 2026 08:55
@ChrisRackauckas
ChrisRackauckas merged commit 1f2f488 into SciML:master Aug 30, 2026
93 of 108 checks passed
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

CI triage is complete.

No failure unique to this patch was found.

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