Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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"
Expand Down
4 changes: 2 additions & 2 deletions src/CatalystNetworkAnalysis.jl
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
module CatalystNetworkAnalysis

using PrecompileTools: @setup_workload, @compile_workload

using Catalyst
using Satisfiability # For siphon detection

Expand All @@ -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")
Expand Down
2 changes: 1 addition & 1 deletion src/utils.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down
4 changes: 1 addition & 3 deletions test/qa/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand All @@ -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"
68 changes: 44 additions & 24 deletions test/qa/qa.jl
Original file line number Diff line number Diff line change
@@ -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,),
)
Loading