From 82de39eda27a6c33a57d04b0f668cca1fbb7c44b Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Thu, 25 Jun 2026 06:48:45 -0400 Subject: [PATCH] QA: run_qa v1.6 form + ExplicitImports Convert test/qa/qa.jl from the hand-rolled Aqua/JET form to SciMLTesting 1.6 run_qa with ExplicitImports enabled. Both findings tracked in #36 are now resolved rather than @test_broken: - Aqua deps_compat: add [compat] entries for LinearAlgebra and SparseArrays (the only missing deps; no Pkg extra exists in this repo). deps_compat now passes as a real check. - JET: report_package/test_package is clean under the run_qa v1.6 default jet_kwargs (mode = :typo, target_modules = (pkg,)); the prior #36 reports were an artifact of target_defined_modules = true. JET now runs as a real passing check (the old qa.jl never actually ran JET). ExplicitImports (6 checks): made the base module's imports explicit (using LinearAlgebra: ...; using SparseArrays: ...; using ArrayInterface: ArrayInterface), clearing no_implicit_imports. The only remaining finding is ArrayInterface.fast_scalar_indexing, which is non-public in ArrayInterface, ignored via ei_kwargs.all_qualified_accesses_are_public. test/qa/Project.toml: SciMLTesting compat -> "1.6"; drop SafeTestsets (unused by qa.jl); ExplicitImports stays transitive via SciMLTesting. Aqua and JET kept as direct deps (Aqua for the ambiguities child-process subcheck). Verified locally against released SciMLTesting 1.6.0: QA group 18/18 pass, 0 fail/error/broken; Core group fully green after the import refactor. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- Project.toml | 2 ++ src/SparseMatrixIdentification.jl | 7 ++++--- test/qa/Project.toml | 4 +--- test/qa/qa.jl | 23 ++++++++++------------- 4 files changed, 17 insertions(+), 19 deletions(-) diff --git a/Project.toml b/Project.toml index 9d22fd5..ba77b95 100644 --- a/Project.toml +++ b/Project.toml @@ -32,9 +32,11 @@ BlockBandedMatrices = "0.13.4" FastAlmostBandedMatrices = "0.1.5" GPUArrays = "8.4, 9, 10, 11" JLArrays = "0.1, 0.2, 0.3" +LinearAlgebra = "1" SafeTestsets = "0.0.1, 0.1, 1" SciMLTesting = "1" SemiseparableMatrices = "0.4.0" +SparseArrays = "1" SpecialMatrices = "3.1.0" Test = "1" ToeplitzMatrices = "0.8.5" diff --git a/src/SparseMatrixIdentification.jl b/src/SparseMatrixIdentification.jl index c688699..881143e 100644 --- a/src/SparseMatrixIdentification.jl +++ b/src/SparseMatrixIdentification.jl @@ -1,7 +1,8 @@ module SparseMatrixIdentification -using LinearAlgebra -using SparseArrays -using ArrayInterface +using LinearAlgebra: Hermitian, LowerTriangular, Symmetric, UpperTriangular, + ishermitian, issymmetric, istril, istriu, svdvals +using SparseArrays: AbstractSparseMatrix, SparseMatrixCSC, nonzeros +using ArrayInterface: ArrayInterface # Helper function to check if an array supports fast scalar indexing function _require_fast_scalar_indexing(A, funcname) diff --git a/test/qa/Project.toml b/test/qa/Project.toml index 867f94a..b28b74f 100644 --- a/test/qa/Project.toml +++ b/test/qa/Project.toml @@ -1,7 +1,6 @@ [deps] Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" -SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" SparseMatrixIdentification = "2607229e-3272-44a7-bc4a-cd97a328dfbf" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" @@ -12,7 +11,6 @@ SparseMatrixIdentification = {path = "../.."} [compat] Aqua = "0.8" JET = "0.9,0.10,0.11" -SafeTestsets = "0.0.1, 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 e6f6605..3121153 100644 --- a/test/qa/qa.jl +++ b/test/qa/qa.jl @@ -1,15 +1,12 @@ -using SparseMatrixIdentification -using Aqua +using SciMLTesting, SparseMatrixIdentification, Test using JET -using Test -@testset "Aqua" begin - # deps_compat is a genuine finding (missing compat for LinearAlgebra/SparseArrays - # deps and the Pkg extra); keep every other sub-check enabled. - Aqua.test_all(SparseMatrixIdentification; deps_compat = false) - @test_broken false # Aqua deps_compat: missing compat for LinearAlgebra, SparseArrays, Pkg — see https://github.com/SciML/SparseMatrixIdentification.jl/issues/36 -end - -@testset "JET" begin - @test_broken false # JET: try_* extension helpers report no-matching-method in sparsestructure(::AbstractSparseMatrix) — see https://github.com/SciML/SparseMatrixIdentification.jl/issues/36 -end +run_qa( + SparseMatrixIdentification; + explicit_imports = true, + ei_kwargs = (; + # `fast_scalar_indexing` is not public (unexported, not declared public) in + # ArrayInterface; it is the only non-public name this package accesses. + all_qualified_accesses_are_public = (; ignore = (:fast_scalar_indexing,)), + ), +)