SciML / SciML/EasyModelAnalysis.jl
QA: Aqua undefined_exports — `Variable` and `rotate!` leak through `@reexport`
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 87
- Forks
- 14
- Avg merge
- 21h 12m
- Merged PRs (30d)
- 19
Description
Tracking the @test_broken placeholder for the Aqua undefined_exports sub-check, preserved when converting test/qa/qa.jl to the SciMLTesting run_qa v1.6 form (aqua_broken = (:undefined_exports,)).
Aqua.test_undefined_exports(EasyModelAnalysis) reports two undefined exported names:
EasyModelAnalysis.Variable— leaks in via@reexport using ModelingToolkit.Variablewas historically exported by Symbolics/ModelingToolkit but the binding is no longer defined in the current reexport chain (isdefined(EasyModelAnalysis, :Variable) == false,getpropertythrowsUndefVarError).EasyModelAnalysis.rotate!— name collision: bothPlotsandLinearAlgebraexportrotate!, so the reexported name resolves to nothing usable inEasyModelAnalysis(isdefined(..., :rotate!) == false; load emitsWARNING: both Plots and LinearAlgebra export "rotate!"; uses of it ... must be qualified).
Both come transitively through @reexport, not from EasyModelAnalysis's own export list, so they cannot be removed by editing this package's exports without dropping the reexport. The check stays @test_broken until the upstream reexport chain stops re-exporting these dead names (or the package narrows its reexports).
This issue replaces the prior un-tracked broken = true on the hand-rolled Aqua.test_undefined_exports(EasyModelAnalysis, broken = true).
ignore until reviewed by @ChrisRackauckas
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in test/qa/qa.jl and inspect the SciMLTesting run_qa v1.6 setup, including aqua_broken = (:undefined_exports,). Run Aqua.test_undefined_exports(EasyModelAnalysis) to reproduce the Variable and rotate! reports. Done means the undefined_exports check no longer needs its broken placeholder after the upstream reexport chain or package reexports are corrected.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100