diff --git a/Project.toml b/Project.toml index 33db05a..dba2e55 100644 --- a/Project.toml +++ b/Project.toml @@ -21,7 +21,6 @@ Nemo = "2edaba10-b0f1-5616-af89-8c11ac63239a" Oscar = "f1435218-dba5-11e9-1e4d-f1a5fab5fc13" Polyhedra = "67491407-f73d-577b-9b50-8179a7c68029" PolynomialRoots = "3a141323-8675-5d76-9d11-e1df1406c778" -PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a" ReactionNetworkImporters = "b4db0fb7-de2a-5028-82bf-5021f5cfa881" SBMLToolkit = "86080e66-c8ac-44c2-a1a0-9adaadfe4a4e" Satisfiability = "160ab843-0bc6-4ba4-9585-b7478b70f443" @@ -47,7 +46,6 @@ Nemo = "0.47, 0.54, 0.56" Oscar = "1.1.1, 1.7" Polyhedra = "0.7.8, 0.8" PolynomialRoots = "1.0.0" -PrecompileTools = "1.2.1" ReactionNetworkImporters = "0.15.1, 1.3" SBMLImporter = "4" SBMLToolkit = "0.1.29" diff --git a/src/CatalystNetworkAnalysis.jl b/src/CatalystNetworkAnalysis.jl index d874e76..33ec7d4 100644 --- a/src/CatalystNetworkAnalysis.jl +++ b/src/CatalystNetworkAnalysis.jl @@ -1,7 +1,5 @@ module CatalystNetworkAnalysis -using PrecompileTools: @setup_workload, @compile_workload - using Catalyst using Satisfiability # For siphon detection @@ -23,6 +21,8 @@ using MixedSubdivisions, DynamicPolynomials using Polyhedra import CDDLib +import SymbolicUtils + include("persistence.jl") export ispersistent, minimalsiphons, iscritical, isconservative, isconsistent include("concordance.jl") diff --git a/src/utils.jl b/src/utils.jl index 0848f08..92a9059 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -133,7 +133,7 @@ function ratematrix(rs::ReactionSystem, rates::Vector{T} = reactionrates(rs)) wh complexes, D = reactioncomplexes(rs) n = length(complexes) rxns = reactions(rs) - ratematrix = (T <: Symbolics.BasicSymbolic) ? zeros(Any, n, n) : zeros(T, n, n) + ratematrix = (T <: SymbolicUtils.BasicSymbolic) ? zeros(Any, n, n) : zeros(T, n, n) for r in 1:length(rxns) rxn = rxns[r] diff --git a/test/qa/Project.toml b/test/qa/Project.toml index 437192e..2a8a32a 100644 --- a/test/qa/Project.toml +++ b/test/qa/Project.toml @@ -2,7 +2,6 @@ Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" CatalystNetworkAnalysis = "5fe4a9df-d2e2-44a6-8bda-0abe10269b5a" JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" -SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" @@ -12,7 +11,6 @@ CatalystNetworkAnalysis = {path = "../.."} [compat] Aqua = "0.8" JET = "0.9, 0.10, 0.11" -SafeTestsets = "0.0.1, 0.1" -SciMLTesting = "1" +SciMLTesting = "1.6" Test = "1" julia = "1.10" diff --git a/test/qa/qa.jl b/test/qa/qa.jl index 6f7a342..93d2ca4 100644 --- a/test/qa/qa.jl +++ b/test/qa/qa.jl @@ -1,26 +1,46 @@ -using CatalystNetworkAnalysis, Aqua, JET +using SciMLTesting, CatalystNetworkAnalysis, JET using Test -@testset "Aqua" begin - # undefined_exports, stale_deps and the deps_compat extras check disabled: - # genuine findings tracked in https://github.com/SciML/CatalystNetworkAnalysis.jl/issues/70 - # (marked @test_broken below). All other Aqua sub-checks still run and pass. - Aqua.test_all( - CatalystNetworkAnalysis; - undefined_exports = false, - stale_deps = false, - deps_compat = (check_extras = false,), - ) - @test_broken false # Aqua undefined_exports: symbolic_steady_states — tracked in https://github.com/SciML/CatalystNetworkAnalysis.jl/issues/70 - @test_broken false # Aqua stale_deps: ReactionNetworkImporters, PolynomialRoots, ModelingToolkit, SBMLToolkit — tracked in https://github.com/SciML/CatalystNetworkAnalysis.jl/issues/70 - @test_broken false # Aqua deps_compat extras: Pkg missing [compat] — tracked in https://github.com/SciML/CatalystNetworkAnalysis.jl/issues/70 -end - -@testset "JET" begin - # JET reports genuine errors (Nemo.ZZMatrix no-matching-method, undefined - # bindings) tracked in https://github.com/SciML/CatalystNetworkAnalysis.jl/issues/70 — - # run in report mode and @test_broken the assertion so QA stays green and - # auto-flags once fixed. - rep = JET.report_package(CatalystNetworkAnalysis; target_defined_modules = true) - @test_broken isempty(JET.get_reports(rep)) # JET: 12 possible errors — tracked in https://github.com/SciML/CatalystNetworkAnalysis.jl/issues/70 -end +# deps_compat keeps deps/weakdeps/julia checks running but disables the extras +# check: no [compat] for the `Pkg` extra — tracked in +# https://github.com/SciML/CatalystNetworkAnalysis.jl/issues/70 +# +# aqua_broken sub-checks (tracked in issue #70): +# undefined_exports: symbolic_steady_states exported but flagged undefined +# stale_deps: ReactionNetworkImporters, PolynomialRoots, ModelingToolkit, SBMLToolkit +# +# jet_broken: ~14 possible errors (report mode + @test_broken) — issue #70 +# +# ExplicitImports: +# no_implicit_imports is ei_broken — the package `using`s several large +# dependencies (Catalyst, Oscar, JuMP, Graphs, DynamicPolynomials, +# Satisfiability, ...) and relies on ~75 of their exported names implicitly; +# making every one explicit is a large refactor tracked in issue #70. +# The qualified-access ignore-lists below are names that are not public in +# their *source* packages (other people's packages) but are accessed +# intentionally via Mod.name; ignored per ExplicitImports' public-API checks. +run_qa( + CatalystNetworkAnalysis; + explicit_imports = true, + # jet_broken uses report_package; match the original invocation + # (target_defined_modules only, no target_modules narrowing) so the genuine + # ~14 reports are still surfaced as @test_broken rather than filtered out. + jet_kwargs = (; target_defined_modules = true), + aqua_kwargs = (; deps_compat = (check_extras = false,)), + aqua_broken = (:undefined_exports, :stale_deps), + jet_broken = true, + ei_kwargs = (; + all_qualified_accesses_are_public = (; + ignore = ( + :Library, # CDDLib + :Optimizer, # HiGHS + :assemble_oderhs, # Catalyst + :cycles, # Catalyst + :get_networkproperties, # Catalyst + :n_positive_roots, # Hecke + :symmap_to_varmap, # Catalyst + ), + ), + ), + ei_broken = (:no_implicit_imports,), +)