From a0379229f2f0bc4b4f7565f641bcbde13a13fc35 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Mon, 15 Jun 2026 10:15:02 -0400 Subject: [PATCH 1/2] Fix QA test group: pass `qa` body via dedicated run_tests kwarg SciMLTesting 1.2's `run_tests` dispatches the reserved `"QA"` group through a dedicated `qa=` keyword, not via the `groups` Dict. The `GROUP == "QA"` branch fires before the `groups` table is consulted and errors with `ArgumentError: GROUP="QA" was requested but no qa body was provided` whenever `qa === nothing`. test/runtests.jl declared QA inside `groups`, so both QA CI jobs (julia 1, julia lts) failed at test startup. Move the QA spec from `groups = Dict("QA" => ...)` to the `qa = (; env, body)` keyword, matching the SciMLTesting v1.2 explicit-args API. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- test/runtests.jl | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/test/runtests.jl b/test/runtests.jl index 2ea71f1a..e5793161 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -77,15 +77,13 @@ const GROUP = get(ENV, "GROUP", "All") include("./Core/commonsolve.jl") end end, - groups = Dict( - "QA" => (; - env = joinpath(@__DIR__, "qa"), - body = function () - @safetestset "JET Static Analysis" begin - include("qa/jet_tests.jl") - end - end, - ), + qa = (; + env = joinpath(@__DIR__, "qa"), + body = function () + @safetestset "JET Static Analysis" begin + include("qa/jet_tests.jl") + end + end, ), all = ["Core"], ) From 54c477e4974a140145c53f97af975bc86d519513 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Tue, 16 Jun 2026 08:35:12 -0400 Subject: [PATCH 2/2] docs: migrate datadrivensparse example_04 off removed `@mtkmodel` macro The autoregulation `@example` block in docs/src/libs/datadrivensparse/example_04.md failed the docs build with `UndefVarError: @mtkmodel not defined`. ModelingToolkit v10/v11 removed the `@mtkmodel` macro entirely (it is no longer defined or exported; the example had already been partially ported, using the v10 `@mtkcompile`). Replace the `@mtkmodel`/`@mtkcompile` model definition with the MTK v11 direct `System` construction (`@parameters`/`@variables`/`System(eqs, t)` + `mtkcompile`), which yields the same `sys.x` array variables the rest of the example consumes. Also drop the now-unused `NoSpecialize` import and the `ODEProblem{true, NoSpecialize}` type parameters (plain `ODEProblem(sys, [], tspan)` is the v11 form). Verified locally on Julia 1.12 (ModelingToolkit v11.26.8): a focused Documenter build of the example_04 page runs every `@example` block with no `:example_block` errors (makedocs completes with VERIFY_MAKEDOCS_OK). Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/src/libs/datadrivensparse/example_04.jl | 29 +++++++------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/docs/src/libs/datadrivensparse/example_04.jl b/docs/src/libs/datadrivensparse/example_04.jl index 2e66f251..cbd0d770 100644 --- a/docs/src/libs/datadrivensparse/example_04.jl +++ b/docs/src/libs/datadrivensparse/example_04.jl @@ -7,32 +7,23 @@ using DataDrivenDiffEq using ModelingToolkit using ModelingToolkit: t_nounits as t, D_nounits as D using OrdinaryDiffEq -using SciMLBase: NoSpecialize using LinearAlgebra using DataDrivenSparse #md using Plots #md gr() using Test #src -@mtkmodel Autoregulation begin - @parameters begin - α = 1.0 - β = 1.3 - γ = 2.0 - δ = 0.5 - end - @variables begin - (x(t))[1:2] = [20.0; 12.0] - end - @equations begin - D(x[1]) ~ α / (1 + x[2]) - β * x[1] - D(x[2]) ~ γ / (1 + x[1]) - δ * x[2] - end -end - -@mtkcompile sys = Autoregulation() +@parameters α = 1.0 β = 1.3 γ = 2.0 δ = 0.5 +@variables (x(t))[1:2] = [20.0, 12.0] +eqs = [ + D(x[1]) ~ α / (1 + x[2]) - β * x[1], + D(x[2]) ~ γ / (1 + x[1]) - δ * x[2], +] +@named autoregulation = System(eqs, t) +sys = mtkcompile(autoregulation) + tspan = (0.0, 5.0) -de_problem = ODEProblem{true, NoSpecialize}(sys, [], tspan) +de_problem = ODEProblem(sys, [], tspan) de_solution = solve(de_problem, Tsit5(), saveat = 0.005); #md plot(de_solution)