diff --git a/test/qa/Project.toml b/test/qa/Project.toml index 03e281b..0a6b61b 100644 --- a/test/qa/Project.toml +++ b/test/qa/Project.toml @@ -11,5 +11,5 @@ EasyModelAnalysis = {path = "../.."} [compat] Aqua = "0.8" SafeTestsets = "1, 0.1" -SciMLTesting = "1" +SciMLTesting = "1.6" julia = "1.10" diff --git a/test/qa/qa.jl b/test/qa/qa.jl index b7c83e0..3da5e9e 100644 --- a/test/qa/qa.jl +++ b/test/qa/qa.jl @@ -1,14 +1,27 @@ -using EasyModelAnalysis, Aqua -@testset "Aqua" begin - Aqua.find_persistent_tasks_deps(EasyModelAnalysis) - Aqua.test_ambiguities(EasyModelAnalysis, recursive = false) - Aqua.test_deps_compat(EasyModelAnalysis) - Aqua.test_piracies( - EasyModelAnalysis, - treat_as_own = [] - ) - Aqua.test_project_extras(EasyModelAnalysis) - Aqua.test_stale_deps(EasyModelAnalysis) - Aqua.test_unbound_args(EasyModelAnalysis) - Aqua.test_undefined_exports(EasyModelAnalysis, broken = true) -end +using SciMLTesting, EasyModelAnalysis, Test + +run_qa( + EasyModelAnalysis; + explicit_imports = true, + aqua_kwargs = (; ambiguities = (; recursive = false)), + # undefined_exports: `Variable` and `rotate!` leak in (dead) via `@reexport` + # (SciML/EasyModelAnalysis.jl#300) + aqua_broken = (:undefined_exports,), + ei_kwargs = (; + all_qualified_accesses_via_owners = (; + # DynamicPPL.acclogp!! is reached through Turing's re-export; DynamicPPL + # is not a direct dependency, so accessing it via Turing is intentional. + ignore = (:DynamicPPL,), + ), + all_qualified_accesses_are_public = (; + ignore = ( + :AbstractMCMCEnsemble, # AbstractMCMC: no public alias for the ensemble type + :DynamicPPL, # Turing: submodule re-export, no public alias + :LN_SBPLX, # NLopt: algorithm constant, not marked public + ), + ), + ), + # no_implicit_imports: heavy reexport / bulk-using of the SciML stack + # (SciML/EasyModelAnalysis.jl#301) + ei_broken = (:no_implicit_imports,), +)