Skip to content

QA: track Aqua/JET/ExplicitImports findings held as @test_broken in run_qa v1.6 conversion #60

Description

@ChrisRackauckas-Claude

QA group conversion to the SciMLTesting run_qa v1.6 form (#PR) enables ExplicitImports and preserves the pre-existing Aqua/JET findings as tracked @test_broken placeholders rather than hard failures. This issue tracks fixing them so the broken markers can be dropped.

The QA lane was already red on main before the conversion (7 passed, 5 failed in the hand-rolled Aqua.test_all + JET.test_package body). The conversion turns these into tracked Broken results (13 Pass, 5 Broken, 0 Fail locally vs released SciMLTesting 1.6.0). One finding (deps_compat) was fixed directly.

Fixed in the conversion PR

  • Aqua deps_compat: SparseArrays had no [compat] entry in the root Project.toml. Added SparseArrays = "1".

Aqua sub-checks held @test_broken (aqua_broken)

  • :ambiguitiespairedindices methods overlap at DefaultIndexHandler{0}, Tuple{}, CartesianIndex{0}:
    • src/indexhandlers.jl:89 ({N, T<:Number}) vs :116 ({N, M, T<:AbstractVector})
    • src/indexhandlers.jl:89 ({N, T<:Number}) vs :97 ({N, T<:AbstractVector})
  • :unbound_argspairedindices methods have unbound type parameters:
    • src/indexhandlers.jl:97 and :116 (M/T not constrained by the signature for the empty/{0} case).
  • :undefined_exports@reexport using Catalyst re-exports 5 names that are not defined in the loaded dependency set: CartesianGridReJ, infimum, iscall, params, supremum. These come from Catalyst's own re-export surface (BifurcationKit/IntervalSets symbols not present), not from FiniteStateProjection's own export list (FSPSystem, DefaultIndexHandler, SteadyState).

JET held @test_broken (jet_broken = true)

JET.report_package(FiniteStateProjection; target_defined_modules = true) reports 3 issues:

  • NaiveIndexHandler(args...; kwargs...) — the @deprecate NaiveIndexHandler DefaultIndexHandler true forwarding method trips a kwcall no-matching-method report (src/indexhandlers.jl:77).
  • FiniteStateProjection.NullParameters is not defined at src/build_rhs.jl:144 (the 3-arg ODEProblem(sys, u0, tint) default pmap = NullParameters() path).
  • FiniteStateProjection.NullParameters is not defined at src/build_rhs_ss.jl:79 (the SteadyStateProblem(sys, u0) default path).

NullParameters is used but not imported into the module — this is a genuine latent bug on the default-parameter problem-construction paths (the existing test suite always passes an explicit pmap, so it is never exercised). Fix: import (or qualify) NullParameters from SciMLBase/DiffEqBase.

ExplicitImports no_implicit_imports held @test_broken (ei_broken)

Heavy @reexport using Catalyst plus the symbolic stack make ~23 names implicit; making them all explicit is a risky mass refactor. Names:
Catalyst, @variables, ModelingToolkit, Reaction, ReactionSystem, equations, jumpratelaw, netstoichmat, numspecies, species, substitute, toexpr, DiffEqBase, ODEFunction, ODEProblem, SteadyStateProblem, MacroTools, Reexport, @reexport, RuntimeGeneratedFunctions, @RuntimeGeneratedFunction, SparseArrays, sparse.

The other 5 ExplicitImports checks pass (with documented per-check ignore lists for non-owner / non-public qualified accesses from Base/Catalyst/MacroTools/ModelingToolkit/RuntimeGeneratedFunctions).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions