From 09b548242074bf133f8c0a220873cb01979144ca Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Thu, 25 Jun 2026 07:38:41 -0400 Subject: [PATCH] QA: run_qa v1.6 form + ExplicitImports Convert the hand-rolled JET-only test/qa/qa.jl to the SciMLTesting 1.6 run_qa form with ExplicitImports enabled (explicit_imports = true), so the QA group runs the full standard body: Aqua.test_all (8 sub-checks), JET.test_package, and the 6 ExplicitImports checks. ExplicitImports findings resolved: - no_implicit_imports: made LinearAlgebra usage explicit (using LinearAlgebra: Diagonal, det, mul!) instead of bare using. - all_explicit_imports_are_public: ignore fast_scalar_indexing (not yet public in ArrayInterface) via ei_kwargs. Aqua compat findings fixed in the root Project.toml: - add LinearAlgebra compat (stdlib, "1"). - add JET compat for the test extra ("0.9, 0.10, 0.11"). Deps: - test/qa/Project.toml keeps Aqua a direct dep (its ambiguities sub-check spawns a child process that must import Aqua) and bumps the SciMLTesting floor to 1.6; ExplicitImports stays transitive via SciMLTesting. - root SciMLTesting compat bumped to 1.6. Verified locally against released SciMLTesting 1.6.0 (no dev-from-branch) on the run_tests QA folder path: QA/qa.jl 18/18 pass on Julia 1.10 (lts), 1.11, and 1.12, 0 fail/error/broken. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- Project.toml | 4 +++- src/DataCollocations.jl | 2 +- test/qa/Project.toml | 4 +++- test/qa/qa.jl | 32 +++++++++----------------------- 4 files changed, 16 insertions(+), 26 deletions(-) diff --git a/Project.toml b/Project.toml index 3c26ff2..7d8fe34 100644 --- a/Project.toml +++ b/Project.toml @@ -17,11 +17,13 @@ DataCollocationsDataInterpolationsExt = "DataInterpolations" ArrayInterface = "7" DataInterpolations = "6.4, 7, 8" Documenter = "1" +JET = "0.9, 0.10, 0.11" JLArrays = "0.3" +LinearAlgebra = "1" OrdinaryDiffEq = "6, 7" Plots = "1" SafeTestsets = "0.1, 1" -SciMLTesting = "1" +SciMLTesting = "1.6" Test = "1" julia = "1.10" diff --git a/src/DataCollocations.jl b/src/DataCollocations.jl index ae1c6d4..5347283 100644 --- a/src/DataCollocations.jl +++ b/src/DataCollocations.jl @@ -1,6 +1,6 @@ module DataCollocations -using LinearAlgebra +using LinearAlgebra: Diagonal, det, mul! using ArrayInterface: fast_scalar_indexing export collocate_data diff --git a/test/qa/Project.toml b/test/qa/Project.toml index 80f7724..b6db935 100644 --- a/test/qa/Project.toml +++ b/test/qa/Project.toml @@ -1,4 +1,5 @@ [deps] +Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" DataCollocations = "9454e98c-75cb-4dbc-9573-481819719962" JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" @@ -9,8 +10,9 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" DataCollocations = {path = "../.."} [compat] +Aqua = "0.8" JET = "0.9, 0.10, 0.11" SafeTestsets = "0.1, 1" -SciMLTesting = "1" +SciMLTesting = "1.6" Test = "1" julia = "1.10" diff --git a/test/qa/qa.jl b/test/qa/qa.jl index 47db831..f91478f 100644 --- a/test/qa/qa.jl +++ b/test/qa/qa.jl @@ -1,25 +1,11 @@ -using DataCollocations -using Test +using SciMLTesting, DataCollocations, Test using JET -@testset "JET Static Analysis" begin - # Test kernel functions for type stability - @testset "calckernel optimization" begin - kernels = [ - EpanechnikovKernel(), UniformKernel(), TriangularKernel(), - QuarticKernel(), TriweightKernel(), TricubeKernel(), - GaussianKernel(), CosineKernel(), LogisticKernel(), - SigmoidKernel(), SilvermanKernel(), - ] - @testset "$kernel" for kernel in kernels - JET.@test_opt target_modules = (DataCollocations,) DataCollocations.calckernel(kernel, 0.5) - end - end - - # Test main collocate_data function - @testset "collocate_data optimization" begin - data = rand(2, 20) - tpoints = collect(range(0.0, 1.0, length = 20)) - JET.@test_opt target_modules = (DataCollocations,) collocate_data(data, tpoints, TriangularKernel(), 0.1) - end -end +run_qa( + DataCollocations; + explicit_imports = true, + ei_kwargs = (; + # `fast_scalar_indexing` is not (yet) public in ArrayInterface. + all_explicit_imports_are_public = (; ignore = (:fast_scalar_indexing,)), + ), +)