Reproducer
On clean main at f5884b6:
julia +release --project=. --startup-file=no -e 'using Pkg; Pkg.instantiate(); using SciMLTesting; run_qa(SciMLTesting; JET = nothing)'
ExplicitImports reports NonPublicQualifiedAccessException for:
Base.Docs.Binding
Pkg.dependencies
Core.eval
Base.loaded_modules
Base.Docs.meta
Base.Meta.parseall
Base.structdiff
Aqua.test_all
The full clean-main result was 16 passes, one dependency-compat failure, and three errors. The compat failure and the two source-analyzability errors are independently addressed by #64 and #65. With the analyzability fix applied, the two source checks pass and this public-access error remains directly visible.
Root-cause audit
Three accesses have straightforward local/public replacements:
Core.eval(Main, expr) can use Julia's public @eval syntax.
Base.structdiff can be replaced by a small local NamedTuple filter.
Base.Meta.parseall can be replaced by public Meta.parse over a wrapped block.
The remaining accesses need owner API work or a deliberately documented exception:
Aqua.test_all is documented as Aqua's primary entry point, but Aqua declares and exports no API names.
Pkg.dependencies is rendered on Pkg's API page, but it is absent from Pkg's Julia 1.12 public declaration.
- Base exposes no public loaded-module enumeration equivalent to
Base.loaded_modules/Base.loaded_modules_array; SciMLTesting uses it to detect loaded SciMLBase/CommonSolve extension functions for Aqua's piracy ownership configuration.
Base.Docs.Binding and Base.Docs.meta expose the owner module and source path metadata needed to mirror Documenter's @autodocs Modules/Pages selection. The exported Docs.doc and Docs.hasdoc APIs do not expose an equivalent documented query.
I found no existing Aqua, Pkg, or Julia issue/PR for these specific public-API promotions. This should not be fixed by disguising calls with reflection or by globally disabling/ignoring the ExplicitImports check. The local replacements can be separated from any owner-package promotion work.
Environment
Julia Version 1.12.6
Commit 15346901f00 (2026-04-09 19:20 UTC)
OS: Linux (x86_64-linux-gnu)
CPU: AMD EPYC 7502
LLVM: libLLVM-18.1.7 (ORCJIT, znver2)
🤖 Reported by Codex CLI 0.151.0 (model: gpt-5.6-sol; session: local session ID 01a0598f-11b9-72d1-91d9-b2fbb186557d)
Reproducer
On clean
mainatf5884b6:julia +release --project=. --startup-file=no -e 'using Pkg; Pkg.instantiate(); using SciMLTesting; run_qa(SciMLTesting; JET = nothing)'ExplicitImports reports
NonPublicQualifiedAccessExceptionfor:The full clean-main result was 16 passes, one dependency-compat failure, and three errors. The compat failure and the two source-analyzability errors are independently addressed by #64 and #65. With the analyzability fix applied, the two source checks pass and this public-access error remains directly visible.
Root-cause audit
Three accesses have straightforward local/public replacements:
Core.eval(Main, expr)can use Julia's public@evalsyntax.Base.structdiffcan be replaced by a small local NamedTuple filter.Base.Meta.parseallcan be replaced by publicMeta.parseover a wrapped block.The remaining accesses need owner API work or a deliberately documented exception:
Aqua.test_allis documented as Aqua's primary entry point, but Aqua declares and exports no API names.Pkg.dependenciesis rendered on Pkg's API page, but it is absent from Pkg's Julia 1.12publicdeclaration.Base.loaded_modules/Base.loaded_modules_array; SciMLTesting uses it to detect loaded SciMLBase/CommonSolve extension functions for Aqua's piracy ownership configuration.Base.Docs.BindingandBase.Docs.metaexpose the owner module and source path metadata needed to mirror Documenter's@autodocsModules/Pagesselection. The exportedDocs.docandDocs.hasdocAPIs do not expose an equivalent documented query.I found no existing Aqua, Pkg, or Julia issue/PR for these specific public-API promotions. This should not be fixed by disguising calls with reflection or by globally disabling/ignoring the ExplicitImports check. The local replacements can be separated from any owner-package promotion work.
Environment
🤖 Reported by Codex CLI 0.151.0 (model: gpt-5.6-sol; session: local session ID 01a0598f-11b9-72d1-91d9-b2fbb186557d)