SciML / SciML/DiffEqNoiseProcess.jl

QA: Aqua findings marked @test_broken pending fix

Open
#283 0 comments 0 reactions 0 assignees View on GitHub

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):

  1. 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-arg interpolate!(out1, out2, W, t) methods are ambiguous with the 4-arg interpolate!(W, u, p, t) methods. Disabled via Aqua.test_all(...; ambiguities=false).

  2. Deps/compat (deps)LinearAlgebra, Markdown, and Random are in [deps] of the package Project.toml but have no [compat] entry. Disabled via deps_compat=false.

  3. 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 via piracies=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.jlinterpolate! (Z0/Zh assigned under if W.Z !== nothing, used under a later if W.Z !== nothing).
  • src/noise_interfaces/simple_noise_process_interface.jl — same Z0/Zh pattern.
  • src/noise_interfaces/virtual_brownian_tree_interface.jlZ0tmp/Z1tmp assigned under if Z0 !== nothing, used under later if Z0 !== nothing.
  • src/noise_interfaces/box_wedge_tail_interface.jlindx1/indx2 assigned under if offset !== nothing, used under a later if offset !== nothing (generate_boxes1/generate_boxes3); also Z0/Zh in interpolate!.

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.