From 24785efcb58b9fcf5a6a5beabf7efc2e2c8d503f Mon Sep 17 00:00:00 2001 From: schillic Date: Sat, 6 Jun 2026 23:46:06 +0200 Subject: [PATCH 1/3] require TaylorSeries v0.21.10 --- Project.toml | 2 ++ docs/Project.toml | 2 +- src/init.jl | 1 + src/setops.jl | 6 +++--- test/quality_assurance.jl | 15 ++++++++------- 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/Project.toml b/Project.toml index ff577c79b..0229b02bb 100644 --- a/Project.toml +++ b/Project.toml @@ -13,6 +13,7 @@ ReachabilityBase = "379f33d0-9447-4353-bd03-d664070e549f" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" Requires = "ae029012-a4dd-5104-9daa-d747884805df" TaylorModels = "314ce334-5f6e-57ae-acf6-00b6e903104a" +TaylorSeries = "6aa5eb33-94cf-58f4-a9d0-e4b2c4fc25ea" [compat] CommonSolve = "0.2" @@ -27,6 +28,7 @@ ReachabilityBase = "0.3" Reexport = "0.2, 1" Requires = "0.5, 1" TaylorModels = "0.7 - 0.9" +TaylorSeries = "0.21.10" julia = "1.6" [extensions] diff --git a/docs/Project.toml b/docs/Project.toml index de1251e50..4cf1b7f89 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -18,4 +18,4 @@ OrdinaryDiffEq = "6" Plots = "1" ReachabilityBase = "0.3" TaylorIntegration = "=0.18.5" -TaylorSeries = "=0.21.9" +TaylorSeries = "0.21.10" diff --git a/src/init.jl b/src/init.jl index dc2927b38..078781b1b 100644 --- a/src/init.jl +++ b/src/init.jl @@ -24,6 +24,7 @@ using ReachabilityAnalysis: AbstractContinuousPost, AbstractLazyReachSet, # NOT using ReachabilityBase.Require: require using ReachabilityBase.Comparison: isapproxzero using TaylorModels: TaylorModel1, TaylorModelN, fp_rpa +import TaylorSeries as TS using Parameters: @with_kw diff --git a/src/setops.jl b/src/setops.jl index c6b149f55..a9de05ea0 100644 --- a/src/setops.jl +++ b/src/setops.jl @@ -59,8 +59,8 @@ function _reconstruct(method::TaylorModelReconstructor, P₀::LazySet, U₀::Laz vTM = Vector{TaylorModel1{TaylorN{N},N}}(undef, n + m) # construct state variables - orderT = get_order(first(S)) - orderQ = get_order(X_Δt[1]) + orderT = TS.get_order(first(S)) + orderQ = TS.get_order(X_Δt[1]) zeroI = interval(zero(N), zero(N)) Δtn = zeroI @@ -90,7 +90,7 @@ function _reconstruct(method::TaylorModelReconstructor, P₀::LazySet, U₀::Laz # vTM[n+i] = Utm₀[i] # end - x = set_variables("x"; numvars=n + m, order=orderQ) + x = TS.variables!("x"; numvars=n + m, order=orderQ) xc = view(x, (n + 1):(n + m)) G = Z₀.generators c = Z₀.center diff --git a/test/quality_assurance.jl b/test/quality_assurance.jl index 345bcfc1e..e1815a370 100644 --- a/test/quality_assurance.jl +++ b/test/quality_assurance.jl @@ -21,13 +21,14 @@ import Aqua, ExplicitImports :BlackBoxContinuousSystem, :Flowpipe, :IVP, :Interval, :IntervalArithmetic, :IntervalBox, :LazySet, :LazySets, :MathematicalSystems, :MixedFlowpipe, :ReachabilityBase, - :Taylor1, :TaylorModelReachSet, :TaylorN, :ZeroSet, :Zonotope, - :box_approximation, :cartesian_product, :center, :diam, :domain, - :evaluate, :get_order, :high, :initial_state, :interval, - :linear_map, :low, :mid, :ngens, :overapproximate, :polynomial, - :project, :radius_hyperrectangle, :rand, :remainder, :rsetrep, - :sample, :scale, :set, :set_variables, :size, :sup, :system, - :tend, :translate, :tstart, :(×), :shift, :vars) + :Taylor1, :TaylorModelReachSet, :TaylorN, :TaylorSeries, + :ZeroSet, :Zonotope, :box_approximation, :cartesian_product, + :center, :diam, :domain, :evaluate, :get_order, :high, + :initial_state, :interval, :linear_map, :low, :mid, :ngens, + :overapproximate, :polynomial, :project, :radius_hyperrectangle, + :rand, :remainder, :rsetrep, :sample, :scale, :set, :variables!, + :size, :sup, :system, :tend, :translate, :tstart, :(×), :shift, + :vars) @test isnothing(ExplicitImports.check_no_implicit_imports(ClosedLoopReachability; ignore=ignores)) ignores = (:controller,) From 582c71ab5bc87c1cd7fe1c518ec274c6a80e4b4d Mon Sep 17 00:00:00 2001 From: schillic Date: Sun, 7 Jun 2026 07:58:20 +0200 Subject: [PATCH 2/3] require Julia v1.10 --- .github/workflows/test-pull-request.yml | 2 +- Project.toml | 2 +- test/quality_assurance.jl | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test-pull-request.yml b/.github/workflows/test-pull-request.yml index 4861d6016..f3339d39e 100644 --- a/.github/workflows/test-pull-request.yml +++ b/.github/workflows/test-pull-request.yml @@ -25,7 +25,7 @@ jobs: arch: - x64 include: - - version: '1.6' # test on oldest supported version + - version: '1.10' # test on oldest supported version arch: x64 os: ubuntu-latest env: diff --git a/Project.toml b/Project.toml index 0229b02bb..feb0d46ec 100644 --- a/Project.toml +++ b/Project.toml @@ -29,7 +29,7 @@ Reexport = "0.2, 1" Requires = "0.5, 1" TaylorModels = "0.7 - 0.9" TaylorSeries = "0.21.10" -julia = "1.6" +julia = "1.10" [extensions] OrdinaryDiffEqExt = "OrdinaryDiffEq" diff --git a/test/quality_assurance.jl b/test/quality_assurance.jl index e1815a370..054623eec 100644 --- a/test/quality_assurance.jl +++ b/test/quality_assurance.jl @@ -9,9 +9,12 @@ import Aqua, ExplicitImports @test isnothing(ExplicitImports.check_all_explicit_imports_are_public(ClosedLoopReachability; ignore=ignores)) @test isnothing(ExplicitImports.check_all_explicit_imports_via_owners(ClosedLoopReachability)) - ignores = (:inplace_field!, :outofplace_field) + ignores = [:inplace_field!, :outofplace_field] + if v"1.10" <= VERSION < v"1.11" + push!(ignores, :get_extension) + end @test isnothing(ExplicitImports.check_all_qualified_accesses_are_public(ClosedLoopReachability; - ignore=ignores)) + ignore=Tuple(ignores))) @test isnothing(ExplicitImports.check_all_qualified_accesses_via_owners(ClosedLoopReachability)) # due to reexporting ControllerFormats.FileFormats, NeuralNetworkReachability.ForwardAlgorithms, # and ReachabilityAnalysis From 67c95c8e9eafbb5df04d41c36394034ab5357adb Mon Sep 17 00:00:00 2001 From: schillic Date: Sun, 7 Jun 2026 08:55:49 +0200 Subject: [PATCH 3/3] use new ExplicitImports interface --- test/quality_assurance.jl | 62 ++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 33 deletions(-) diff --git a/test/quality_assurance.jl b/test/quality_assurance.jl index 054623eec..ea3ae27e6 100644 --- a/test/quality_assurance.jl +++ b/test/quality_assurance.jl @@ -2,42 +2,38 @@ using ClosedLoopReachability, Test import Aqua, ExplicitImports @testset "ExplicitImports tests" begin - ignores = (:AbstractContinuousPost, :AbstractLazyReachSet, - :AbstractTaylorModelReachSet, :ForwardAlgorithm, :ReachSolution, - :TimeInterval, :_check_dim, :_default_cpost, :_get_tspan, - :numtype, :post, :solve, :symBox, :zeroBox) - @test isnothing(ExplicitImports.check_all_explicit_imports_are_public(ClosedLoopReachability; - ignore=ignores)) - @test isnothing(ExplicitImports.check_all_explicit_imports_via_owners(ClosedLoopReachability)) - ignores = [:inplace_field!, :outofplace_field] - if v"1.10" <= VERSION < v"1.11" - push!(ignores, :get_extension) + ignores_all_explicit_imports_are_public = (:AbstractContinuousPost, :AbstractLazyReachSet, + :AbstractTaylorModelReachSet, :ForwardAlgorithm, + :ReachSolution, :TimeInterval, :_check_dim, + :_default_cpost, :_get_tspan, :numtype, :post, + :solve, :symBox, :zeroBox) + ignores_all_qualified_accesses_are_public = [:inplace_field!, :outofplace_field] + if v"1.10" <= VERSION < v"1.11" # v1.10 was more strict with this + push!(ignores_all_qualified_accesses_are_public, :get_extension) end - @test isnothing(ExplicitImports.check_all_qualified_accesses_are_public(ClosedLoopReachability; - ignore=Tuple(ignores))) - @test isnothing(ExplicitImports.check_all_qualified_accesses_via_owners(ClosedLoopReachability)) + ignores_all_qualified_accesses_are_public = Tuple(ignores_all_qualified_accesses_are_public) # due to reexporting ControllerFormats.FileFormats, NeuralNetworkReachability.ForwardAlgorithms, # and ReachabilityAnalysis - ignores = (:FileFormats, :ForwardAlgorithms, :ReachabilityAnalysis, - :forward, :(..), :AbstractContinuousPost, - :AbstractHyperrectangle, :Arrays, :BallInf, - :BlackBoxContinuousSystem, :Flowpipe, :IVP, :Interval, - :IntervalArithmetic, :IntervalBox, :LazySet, :LazySets, - :MathematicalSystems, :MixedFlowpipe, :ReachabilityBase, - :Taylor1, :TaylorModelReachSet, :TaylorN, :TaylorSeries, - :ZeroSet, :Zonotope, :box_approximation, :cartesian_product, - :center, :diam, :domain, :evaluate, :get_order, :high, - :initial_state, :interval, :linear_map, :low, :mid, :ngens, - :overapproximate, :polynomial, :project, :radius_hyperrectangle, - :rand, :remainder, :rsetrep, :sample, :scale, :set, :variables!, - :size, :sup, :system, :tend, :translate, :tstart, :(×), :shift, - :vars) - @test isnothing(ExplicitImports.check_no_implicit_imports(ClosedLoopReachability; - ignore=ignores)) - ignores = (:controller,) - @test isnothing(ExplicitImports.check_no_self_qualified_accesses(ClosedLoopReachability; - ignore=ignores)) - @test isnothing(ExplicitImports.check_no_stale_explicit_imports(ClosedLoopReachability)) + ignores_no_implicit_imports = (:FileFormats, :ForwardAlgorithms, :ReachabilityAnalysis, + :forward, :(..), :AbstractContinuousPost, + :AbstractHyperrectangle, :Arrays, :BallInf, + :BlackBoxContinuousSystem, :Flowpipe, :IVP, :Interval, + :IntervalArithmetic, :IntervalBox, :LazySet, :LazySets, + :MathematicalSystems, :MixedFlowpipe, :ReachabilityBase, + :Taylor1, :TaylorModelReachSet, :TaylorN, :TaylorSeries, + :ZeroSet, :Zonotope, :box_approximation, :cartesian_product, + :center, :diam, :domain, :evaluate, :order, :high, + :initial_state, :interval, :linear_map, :low, :mid, :ngens, + :overapproximate, :polynomial, :project, :radius_hyperrectangle, + :rand, :remainder, :rsetrep, :sample, :scale, :set, :variables!, + :size, :sup, :system, :tend, :translate, :tstart, :(×), :shift, + :vars) + ignores_no_self_qualified_accesses = (:controller,) + ExplicitImports.test_explicit_imports(ClosedLoopReachability; + all_explicit_imports_are_public=(ignore=ignores_all_explicit_imports_are_public,), + all_qualified_accesses_are_public=(ignore=ignores_all_qualified_accesses_are_public,), + no_implicit_imports=(ignore=ignores_no_implicit_imports,), + no_self_qualified_accesses=(ignore=ignores_no_self_qualified_accesses,)) end @testset "Aqua tests" begin