From acf5dfe5eccebb6a7bafa648d8006117ee1b163c Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Tue, 9 Jun 2026 21:07:03 -0400 Subject: [PATCH] Fix Aqua QA failures: unbound type parameters and missing Pkg compat 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 (#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 --- Project.toml | 1 + src/interpolation_utils.jl | 12 +++--------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/Project.toml b/Project.toml index 9090b47..5492987 100644 --- a/Project.toml +++ b/Project.toml @@ -22,6 +22,7 @@ DataInterpolations = "8" EllipsisNotation = "1.8.0" ForwardDiff = "0" KernelAbstractions = "0.9.34" +Pkg = "1" PrecompileTools = "1.0" Random = "1" RecipesBase = "1.3.4" diff --git a/src/interpolation_utils.jl b/src/interpolation_utils.jl index b0c2db9..b1ebf2e 100644 --- a/src/interpolation_utils.jl +++ b/src/interpolation_utils.jl @@ -51,11 +51,7 @@ function validate_size_u( return @assert expected_size == size(u)[1:N_in] "Expected the size of the first N_in dimensions of u to be $expected_size based on the BSplineInterpolation properties." end -function validate_cache( - ::EmptyCache, ::NTuple{N_in, ID}, ::AbstractArray - ) where {N_in, ID} - return nothing -end +validate_cache(::EmptyCache, ::Tuple, ::AbstractArray) = nothing function validate_cache( nurbs_weights::NURBSWeights, @@ -66,10 +62,8 @@ function validate_cache( return @assert size(nurbs_weights.weights) == size_expected "The size of the weights array must match the length of the first N_in dimensions of u ($size_expected)." end -function validate_cache( - ::gType, ::NTuple{N_in, ID}, ::AbstractArray - ) where {gType, N_in, ID} - return @error("Interpolation dimension type $ID is not compatible with global cache type $gType.") +function validate_cache(cache, interp_dims::Tuple, ::AbstractArray) + return @error("Interpolation dimension type $(eltype(interp_dims)) is not compatible with global cache type $(typeof(cache)).") end function get_ts(