Skip to content

Fix QA test group routing (GROUP="QA" had no qa body)#161

Merged
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:fix-qa-group-routing
Jun 20, 2026
Merged

Fix QA test group routing (GROUP="QA" had no qa body)#161
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:fix-qa-group-routing

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

The tests / QA jobs on main (both Julia 1 and lts) fail at startup with:

ERROR: LoadError: ArgumentError: run_tests: GROUP="QA" was requested but no `qa` body was provided

Root cause

test/runtests.jl declared the QA group as a "QA" key inside the groups Dict passed to SciMLTesting.run_tests. But "QA" is a reserved group name in SciMLTesting (alongside All/Core). When GROUP="QA" is requested, run_tests dispatches to its dedicated qa keyword argument — it never consults groups["QA"]. With qa left unset, the reserved-name branch throws the ArgumentError above before the groups table is reached, so the Aqua/JET bodies never run.

Core was green because core was passed correctly; only QA was misrouted.

Fix

Move the QA spec out of groups and into the dedicated qa keyword, matching the canonical single-package form in the SciMLTesting docstring:

qa = (; env = joinpath(@__DIR__, "qa"), body = joinpath(@__DIR__, "qa", "qa.jl")),

No change to test/qa/qa.jl (Aqua + JET) or test/test_groups.toml.

Local verification

Against released SciMLTesting v1 on Julia 1.12 (the 1 CI channel):

  • Old groups = Dict("QA" => ...) form → reproduces the exact CI ArgumentError.
  • New qa = (; env, body) form → GROUP="QA" routes to and runs the QA body.
  • Sanity: GROUP="Core" still runs only core, QA does not run (no regression to the passing Core group).

Please ignore until reviewed by @ChrisRackauckas

GROUP="QA" CI was failing with:

    ArgumentError: run_tests: GROUP="QA" was requested but no `qa` body
    was provided

`test/runtests.jl` declared the QA group as a `"QA"` key inside the
`groups` Dict. But `"QA"` is a reserved group name in SciMLTesting:
when GROUP="QA" is requested, `run_tests` dispatches to its dedicated
`qa` keyword argument, not to a `groups["QA"]` entry. With `qa` left
unset, the reserved-name branch threw before the `groups` table was
ever consulted, so the Aqua/JET bodies never ran and the QA job errored
on both the `1` and `lts` channels. Core was unaffected because `core`
was passed correctly.

Move the QA spec out of `groups` and into the `qa` keyword, matching the
canonical single-package form documented in SciMLTesting.

Verified against released SciMLTesting v1 on Julia 1.12: the old
`groups = Dict("QA" => ...)` form reproduces the exact CI ArgumentError,
while the `qa = (; env, body)` form routes GROUP="QA" to the QA body, and
GROUP="Core" still runs only core.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 20, 2026 11:10
@ChrisRackauckas ChrisRackauckas merged commit fe181c0 into SciML:main Jun 20, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants