SciML / SciML/DiffEqNoiseProcess.jl
QA: Aqua findings marked @test_broken pending fix
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 62
- Forks
- 32
- Avg merge
- 8h 38m
- Merged PRs (30d)
- 16
Description
The grouped-tests CI QA group (Aqua + JET) surfaces the following genuine Aqua findings on DiffEqNoiseProcess. They are currently marked @test_broken in test/qa/qa_tests.jl so the QA group is green and the grouped-tests-ci PR can merge; they should be fixed and the @test_broken markers removed (un-broken) once resolved.
Findings (Julia 1.11, Aqua 0.8.16):
-
Method ambiguities — 14 found. All are
interpolate!overloads across the noise interfaces (NoiseApproximation, SimpleNoiseProcess, NoiseGrid, VirtualBrownianTree, NoiseFunction, NoiseTransport, NoiseWrapper, BoxWedgeTail, NoiseProcess) where the 3-positional-arginterpolate!(out1, out2, W, t)methods are ambiguous with the 4-arginterpolate!(W, u, p, t)methods. Disabled viaAqua.test_all(...; ambiguities=false). -
Deps/compat (deps) —
LinearAlgebra,Markdown, andRandomare in[deps]of the packageProject.tomlbut have no[compat]entry. Disabled viadeps_compat=false. -
Piracy — 8 pirated methods on
SciMLBase.AbstractNoiseProcess/SciMLBase.AbstractNoiseProblem:__solve,copy!,has_reinit,isinplace,reinit!,reverse(defined in src/solve.jl, src/copy_noise_types.jl, src/types.jl, src/noise_interfaces/common.jl). Disabled viapiracies=false.
Ignore until reviewed by @ChrisRackauckas.
JET typo-mode findings (added 2026-06-29)
The run_qa v1.6 conversion (PR #290) replaced the old hand-rolled qa, which explicitly skipped JET.report_package (it only ran targeted JET.report_opt on a few functions), with run_qa's full-package JET.report_package(...; mode=:typo). On Julia >= 1.12 this surfaces 27 pre-existing "local variable may be undefined" reports (0 on Julia <= 1.11 — the analysis is version-specific).
All 27 are the same pattern: a value assigned inside one X !== nothing / offset !== nothing guard and used inside a second branch guarded by the identical, never-invalidated condition, so they are false positives at runtime but genuine latent code patterns. Sites:
src/noise_interfaces/noise_process_interface.jl—interpolate!(Z0/Zhassigned underif W.Z !== nothing, used under a laterif W.Z !== nothing).src/noise_interfaces/simple_noise_process_interface.jl— sameZ0/Zhpattern.src/noise_interfaces/virtual_brownian_tree_interface.jl—Z0tmp/Z1tmpassigned underif Z0 !== nothing, used under laterif Z0 !== nothing.src/noise_interfaces/box_wedge_tail_interface.jl—indx1/indx2assigned underif offset !== nothing, used under a laterif offset !== nothing(generate_boxes1/generate_boxes3); alsoZ0/Zhininterpolate!.
Currently gated via jet_broken = VERSION >= v"1.12" in test/qa/qa.jl so the QA group stays green on the CI julia 1 lane (1.12) while still passing JET as a real @test on the LTS lane (1.10). These should be fixed (e.g. hoist the variable initialization so assignment and use are unconditional, or restructure so both live in one branch) and the jet_broken gate removed once resolved — jet_broken auto-flags an Unexpected Pass when JET becomes clean.
Reproduces byte-identically on unmodified master. 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 with test/qa/qa_tests.jl and test/qa/qa.jl to understand the Aqua exclusions and the version-gated JET check. Review the listed noise interface files, src/solve.jl, src/copy_noise_types.jl, src/types.jl, and src/noise_interfaces/common.jl; done means resolving the findings, removing the markers and gate, and passing the grouped QA tests on the supported Julia versions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- ci-cd, testing-qa
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100