diff --git a/Project.toml b/Project.toml index c048c5442..585bff160 100644 --- a/Project.toml +++ b/Project.toml @@ -14,12 +14,11 @@ Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" [compat] ADTypes = "1" -Aqua = "0.8" ChainRulesCore = "1" ControlSystemsBase = "1.4" DataFrames = "1.7" DataInterpolations = "8" -DiffEqBase = "6.189.1, 7" +DiffEqBase = "6.190, 7" ForwardDiff = "0.10, 1" IfElse = "0.1" LinearAlgebra = "1.10" @@ -44,7 +43,6 @@ julia = "1.10" [extras] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" ControlSystemsBase = "aaaaaaaa-a6ca-5380-bf3e-84a91bcd477e" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" DataInterpolations = "82cc6244-b520-54b8-b5a6-8a565e85f1d0" @@ -66,4 +64,4 @@ SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] -test = ["ADTypes", "Aqua", "LinearAlgebra", "OrdinaryDiffEqBDF", "OrdinaryDiffEqDefault", "OrdinaryDiffEq", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqRosenbrock", "OrdinaryDiffEqSDIRK", "SafeTestsets", "SciMLTesting", "Test", "ControlSystemsBase", "DataFrames", "DataInterpolations", "SciMLBase", "SciMLStructures", "SymbolicIndexingInterface", "ForwardDiff", "SciCompDSL", "ModelingToolkit"] +test = ["ADTypes", "LinearAlgebra", "OrdinaryDiffEqBDF", "OrdinaryDiffEqDefault", "OrdinaryDiffEq", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqRosenbrock", "OrdinaryDiffEqSDIRK", "SafeTestsets", "SciMLTesting", "Test", "ControlSystemsBase", "DataFrames", "DataInterpolations", "SciMLBase", "SciMLStructures", "SymbolicIndexingInterface", "ForwardDiff", "SciCompDSL", "ModelingToolkit"] diff --git a/src/Blocks/Blocks.jl b/src/Blocks/Blocks.jl index 6361c9fae..cbe6fe6cd 100644 --- a/src/Blocks/Blocks.jl +++ b/src/Blocks/Blocks.jl @@ -2,10 +2,12 @@ The module `Blocks` contains common input-output components, referred to as blocks. """ module Blocks -using ModelingToolkitBase, Symbolics +using ModelingToolkitBase: ModelingToolkitBase, @component, @connector, @named, + @parameters, @unpack, System, compose, connect, extend, + getdefault, t_nounits as t, D_nounits as D +using Symbolics: Symbolics, @register_symbolic, @variables, Differential, Equation import IfElse: ifelse import ..@symcheck -using ModelingToolkitBase: getdefault, t_nounits as t, D_nounits as D export RealInput, RealInputArray, RealOutput, RealOutputArray, SISO include("utils.jl") diff --git a/src/Blocks/sources.jl b/src/Blocks/sources.jl index 3aa381e4a..9e282d861 100644 --- a/src/Blocks/sources.jl +++ b/src/Blocks/sources.jl @@ -1,6 +1,6 @@ -using DiffEqBase +using DiffEqBase: DiffEqBase import ChainRulesCore -using PreallocationTools +using PreallocationTools: DiffCache, GeneralLazyBufferCache, get_tmp # Define and register smooth functions # These are "smooth" aka differentiable and avoid Gibbs effect diff --git a/src/Electrical/Electrical.jl b/src/Electrical/Electrical.jl index 5f0b4d332..a4d62a3db 100644 --- a/src/Electrical/Electrical.jl +++ b/src/Electrical/Electrical.jl @@ -4,11 +4,14 @@ This library contains electrical components to build up analog circuits. """ module Electrical -using ModelingToolkitBase, Symbolics, IfElse -using ModelingToolkitBase: t_nounits as t, D_nounits as D +using IfElse: IfElse +using ModelingToolkitBase: ModelingToolkitBase, @component, @connector, @constants, + @named, @parameters, @unpack, Flow, System, connect, extend, + t_nounits as t, D_nounits as D +using Symbolics: Symbolics, @register_symbolic, @variables, Equation using ..Thermal: HeatPort using ..Mechanical.Rotational: Flange, Support -using ..Blocks: RealInput, RealOutput +using ..Blocks: RealInput export Pin, OnePort include("utils.jl") diff --git a/src/Hydraulic/Hydraulic.jl b/src/Hydraulic/Hydraulic.jl index c1c072bd4..9a107afbe 100644 --- a/src/Hydraulic/Hydraulic.jl +++ b/src/Hydraulic/Hydraulic.jl @@ -3,7 +3,7 @@ Library of hydraulic models. """ module Hydraulic -using ModelingToolkitBase +using ModelingToolkitBase: ModelingToolkitBase include("IsothermalCompressible/IsothermalCompressible.jl") diff --git a/src/Hydraulic/IsothermalCompressible/IsothermalCompressible.jl b/src/Hydraulic/IsothermalCompressible/IsothermalCompressible.jl index 5865fac1a..c10a7a91a 100644 --- a/src/Hydraulic/IsothermalCompressible/IsothermalCompressible.jl +++ b/src/Hydraulic/IsothermalCompressible/IsothermalCompressible.jl @@ -3,10 +3,12 @@ Library to model iso-thermal compressible liquid fluid flow """ module IsothermalCompressible -using ModelingToolkitBase, Symbolics -using ModelingToolkitBase: t_nounits as t, D_nounits as D +using ModelingToolkitBase: ModelingToolkitBase, @component, @connector, @named, + @parameters, Flow, ParentScope, System, connect, domain_connect, + t_nounits as t, D_nounits as D +using Symbolics: Symbolics, @register_derivative, @register_symbolic, @variables, Equation -using ...Blocks: RealInput, RealOutput +using ...Blocks: RealInput using ...Mechanical.Translational: MechanicalPort, Mass using IfElse: ifelse diff --git a/src/Magnetic/FluxTubes/FluxTubes.jl b/src/Magnetic/FluxTubes/FluxTubes.jl index f5db15420..69a722bf9 100644 --- a/src/Magnetic/FluxTubes/FluxTubes.jl +++ b/src/Magnetic/FluxTubes/FluxTubes.jl @@ -1,6 +1,7 @@ module FluxTubes -using ModelingToolkitBase -using ModelingToolkitBase: t_nounits as t, D_nounits as D +using ModelingToolkitBase: ModelingToolkitBase, @component, @connector, @named, + @parameters, @unpack, @variables, Equation, Flow, System, connect, extend, + t_nounits as t, D_nounits as D using ...Electrical: Pin export PositiveMagneticPort, NegativeMagneticPort, TwoPort diff --git a/src/Magnetic/Magnetic.jl b/src/Magnetic/Magnetic.jl index 65a850c12..b58a754e6 100644 --- a/src/Magnetic/Magnetic.jl +++ b/src/Magnetic/Magnetic.jl @@ -1,6 +1,6 @@ module Magnetic -using ModelingToolkitBase +using ModelingToolkitBase: ModelingToolkitBase # FluxTubes include("FluxTubes/FluxTubes.jl") diff --git a/src/Mechanical/Mechanical.jl b/src/Mechanical/Mechanical.jl index 64393d119..0427be809 100644 --- a/src/Mechanical/Mechanical.jl +++ b/src/Mechanical/Mechanical.jl @@ -3,7 +3,7 @@ Library of mechanical models. """ module Mechanical -using ModelingToolkitBase +using ModelingToolkitBase: ModelingToolkitBase include("Rotational/Rotational.jl") include("Translational/Translational.jl") diff --git a/src/Mechanical/MultiBody2D/MultiBody2D.jl b/src/Mechanical/MultiBody2D/MultiBody2D.jl index bb8495783..25f3ad0e7 100644 --- a/src/Mechanical/MultiBody2D/MultiBody2D.jl +++ b/src/Mechanical/MultiBody2D/MultiBody2D.jl @@ -1,7 +1,9 @@ module MultiBody2D -using ModelingToolkitBase, Symbolics, IfElse -using ModelingToolkitBase: t_nounits as t, D_nounits as D +using IfElse: IfElse +using ModelingToolkitBase: ModelingToolkitBase, @component, @named, @parameters, + System, t_nounits as t, D_nounits as D +using Symbolics: Symbolics, @variables, Equation using ..TranslationalPosition export Link diff --git a/src/Mechanical/Rotational/Rotational.jl b/src/Mechanical/Rotational/Rotational.jl index a26885dd2..24ac1b4cd 100644 --- a/src/Mechanical/Rotational/Rotational.jl +++ b/src/Mechanical/Rotational/Rotational.jl @@ -3,8 +3,10 @@ Library to model 1-dimensional, rotational mechanical systems """ module Rotational -using ModelingToolkitBase, Symbolics, IfElse -using ModelingToolkitBase: t_nounits as t, D_nounits as D +using IfElse: IfElse +using ModelingToolkitBase: ModelingToolkitBase, @component, @connector, @named, + @parameters, @unpack, Flow, System, compose, extend, t_nounits as t, D_nounits as D +using Symbolics: Symbolics, @variables, Equation using ...Blocks: RealInput, RealOutput import ...@symcheck diff --git a/src/Mechanical/Translational/Translational.jl b/src/Mechanical/Translational/Translational.jl index 42a5b5f4a..5032680b9 100644 --- a/src/Mechanical/Translational/Translational.jl +++ b/src/Mechanical/Translational/Translational.jl @@ -3,11 +3,11 @@ Library to model 1-dimensional, translational mechanical systems """ module Translational -using ModelingToolkitBase, Symbolics -using ModelingToolkitBase: getdefault, t_nounits as t, D_nounits as D +using ModelingToolkitBase: ModelingToolkitBase, @component, @connector, @named, + @parameters, Flow, System, compose, t_nounits as t, D_nounits as D +using Symbolics: Symbolics, @variables, Equation using ModelingToolkitStandardLibrary.Blocks: RealInput, RealOutput -using IfElse: ifelse export MechanicalPort include("utils.jl") diff --git a/src/Mechanical/TranslationalModelica/TranslationalModelica.jl b/src/Mechanical/TranslationalModelica/TranslationalModelica.jl index f13d7a1c1..3eb96a1cf 100644 --- a/src/Mechanical/TranslationalModelica/TranslationalModelica.jl +++ b/src/Mechanical/TranslationalModelica/TranslationalModelica.jl @@ -3,9 +3,11 @@ Library to model 1-dimensional, translational mechanical components. """ module TranslationalModelica -using ModelingToolkitBase, Symbolics, IfElse -using ModelingToolkitBase: t_nounits as t, D_nounits as D -using ...Blocks: RealInput, RealOutput +using IfElse: IfElse +using ModelingToolkitBase: ModelingToolkitBase, @component, @connector, @named, + @parameters, @unpack, Flow, System, compose, extend, t_nounits as t, D_nounits as D +using Symbolics: Symbolics, @variables, Equation +using ...Blocks: RealInput export Flange include("utils.jl") diff --git a/src/Mechanical/TranslationalPosition/TranslationalPosition.jl b/src/Mechanical/TranslationalPosition/TranslationalPosition.jl index d27c082f0..c531fd6d0 100644 --- a/src/Mechanical/TranslationalPosition/TranslationalPosition.jl +++ b/src/Mechanical/TranslationalPosition/TranslationalPosition.jl @@ -3,8 +3,10 @@ Library to model 1-dimensional, translational mechanical components. """ module TranslationalPosition -using ModelingToolkitBase, Symbolics, IfElse -using ModelingToolkitBase: t_nounits as t, D_nounits as D +using IfElse: IfElse +using ModelingToolkitBase: ModelingToolkitBase, @component, @connector, @named, + @parameters, @unpack, Flow, System, compose, extend, t_nounits as t, D_nounits as D +using Symbolics: Symbolics, @variables, Equation using ...Blocks: RealInput, RealOutput export Flange diff --git a/src/Thermal/Thermal.jl b/src/Thermal/Thermal.jl index 5df7b306f..d64149053 100644 --- a/src/Thermal/Thermal.jl +++ b/src/Thermal/Thermal.jl @@ -2,8 +2,10 @@ Library of thermal system components to model heat transfer. """ module Thermal -using ModelingToolkitBase, Symbolics, IfElse -using ModelingToolkitBase: t_nounits as t, D_nounits as D +using IfElse: IfElse +using ModelingToolkitBase: ModelingToolkitBase, @component, @connector, @named, + @parameters, @unpack, Flow, System, extend, t_nounits as t, D_nounits as D +using Symbolics: Symbolics, @variables, Equation using ...Blocks: RealInput, RealOutput export HeatPort, Element1D diff --git a/test/qa/Project.toml b/test/qa/Project.toml new file mode 100644 index 000000000..fea90d4c9 --- /dev/null +++ b/test/qa/Project.toml @@ -0,0 +1,16 @@ +[deps] +Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" +ModelingToolkitStandardLibrary = "16a59e39-deab-5bd0-87e4-056b12336739" +SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" +SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" +Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[sources] +ModelingToolkitStandardLibrary = {path = "../.."} + +[compat] +Aqua = "0.8" +SafeTestsets = "0.1" +SciMLTesting = "1.6" +Test = "1" +julia = "1.10" diff --git a/test/qa/aqua.jl b/test/qa/aqua.jl deleted file mode 100644 index 5d580adc1..000000000 --- a/test/qa/aqua.jl +++ /dev/null @@ -1,11 +0,0 @@ -using ModelingToolkitStandardLibrary, Aqua -@testset "Aqua" begin - Aqua.find_persistent_tasks_deps(ModelingToolkitStandardLibrary) - Aqua.test_ambiguities(ModelingToolkitStandardLibrary, recursive = false) - Aqua.test_deps_compat(ModelingToolkitStandardLibrary) - Aqua.test_piracies(ModelingToolkitStandardLibrary) - Aqua.test_project_extras(ModelingToolkitStandardLibrary) - Aqua.test_stale_deps(ModelingToolkitStandardLibrary) - Aqua.test_unbound_args(ModelingToolkitStandardLibrary) - Aqua.test_undefined_exports(ModelingToolkitStandardLibrary) -end diff --git a/test/qa/qa.jl b/test/qa/qa.jl new file mode 100644 index 000000000..60acfa77c --- /dev/null +++ b/test/qa/qa.jl @@ -0,0 +1,14 @@ +using SciMLTesting, ModelingToolkitStandardLibrary, Test + +run_qa( + ModelingToolkitStandardLibrary; + explicit_imports = true, + aqua_kwargs = (; ambiguities = (; recursive = false)), + ei_kwargs = (; + # `ifelse` is IfElse's sole export but it is not declared public in IfElse. + all_explicit_imports_are_public = (; ignore = (:ifelse,)), + # Names accessed qualified but not declared public in their source package: + # ifelse -> IfElse, SConst -> Symbolics, isvariable -> ModelingToolkitBase + all_qualified_accesses_are_public = (; ignore = (:ifelse, :SConst, :isvariable)), + ), +)