Fix Aqua QA failures: unbound type parameters in validate_cache and missing Pkg compat#70
Merged
ChrisRackauckas merged 2 commits intoJun 10, 2026
Conversation
The QA test group fails with Aqua (both 0.8.14 and 0.8.16):
1. Unbound type parameters in the two `validate_cache` methods at
src/interpolation_utils.jl:54 and :69: in
`::NTuple{N_in, ID} where {N_in, ID}` the parameter `ID` is unbound
when `N_in == 0` (empty tuple). Replace with plain `::Tuple` and
recover the types in the fallback's error message via
`eltype(interp_dims)`/`typeof(cache)`, which print the same
information without method-level type parameters.
2. `Pkg` is listed in [extras] (used by test/runtests.jl to activate
the qa/gpu subenvironments) but had no [compat] entry, failing
Aqua's deps_compat extras check. Add `Pkg = "1"`.
These failures are latent, not new: they were masked because the
previous CI setup ran the QA matrix jobs with an empty GROUP env var,
so the "QA" jobs silently ran the Core group. The canonical
grouped-tests workflow (SciML#68) now sets GROUP=QA correctly on
Linux/macOS, exposing them. (On Windows the GROUP step still does not
take effect because `echo ... >> "$GITHUB_ENV"` runs under pwsh in
SciML/.github tests.yml, which is why Windows QA jobs "pass".)
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
This was referenced Jun 10, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Important
This PR should be ignored until reviewed by @ChrisRackauckas.
Fixes the failing QA test group on
main(scheduled run 27210697854, QA julia lts/1 on ubuntu + macos).Failures
Reproduced locally on Julia 1.10.11 (lts) with Aqua v0.8.16 via
GROUP=QA(test/qa):Unbound type parameters (
Aqua.test_unbound_args):In
::NTuple{N_in, ID} where {N_in, ID}the parameterIDis unbound whenN_in == 0(an empty tuple matches without bindingID).deps_compat extras (
Aqua.test_deps_compat):Pkgis in[extras](used bytest/runtests.jlto activate the qa/gpu subenvironments) but has no[compat]entry.Root cause / why this "started" failing now
These failures are latent, not new. I verified that Aqua v0.8.14 (Aug 2025) flags the exact same unbound methods, and the missing
Pkgcompat dates to April 2025. They never surfaced because the QA matrix jobs previously ran with an emptyGROUPenv var and therefore silently executed the Core group instead of the QA group — e.g. the "green" scheduled run 26825993512 (2026-06-02) showsGROUP:(empty) in its QA job logs and no Aqua test summary at all.The canonical grouped-tests workflow adopted in #68 sets
GROUP=QAcorrectly on Linux/macOS, which exposed the failures on the next scheduled run.Why Windows still "passes": it doesn't actually run QA. In
SciML/.githubtests.ymlthe steprun: echo "${{ inputs.group-env-name }}=${{ inputs.group }}" >> "$GITHUB_ENV"has noshell: bash, so on Windows it runs under pwsh where"$GITHUB_ENV"(bash syntax) doesn't expand —GROUPis never set and the Windows "QA" jobs run the Core tests (their logs show Interpolations/Derivatives/DataInterpolations/Interface summaries, no Aqua). That workflow bug is reported separately in SciML/.github; it is not addressed here.Changes
src/interpolation_utils.jl: drop the unbound-parameter signatures.validate_cache(::EmptyCache, ::Tuple, ::AbstractArray) = nothing, and the fallback takes(cache, interp_dims::Tuple, ::AbstractArray)and builds the same error message viaeltype(interp_dims)/typeof(cache). No dispatch behavior change (theNURBSWeightsmethod remains more specific; Aqua's ambiguity check passes).Project.toml: addPkg = "1"to[compat].The Symbolics extension is untouched (under separate investigation).
Local verification (Julia 1.10.11 lts, linux)
QA group, Aqua v0.8.16 (also verified green with v0.8.14 pinned):
Core group (
GROUP=Core Pkg.test()):Runic check on the changed file passes (exit 0).
🤖 Generated with Claude Code