Skip to content

Commit 3ea8c85

Browse files
ChrisRackauckas-ClaudeChrisRackauckasclaude
authored
Enforce strict SciMLTesting 2.4 QA (#98)
* Enforce strict QA for PDEBase Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> * Fix public API test on the Julia LTS `Base.ispublic` and the `public` keyword are Julia 1.11+, so the check errored on 1.10 (both the LTS and Downgrade jobs run on `lts`). Guard it and assert the name is defined on all versions. Also replace the docstring check: `Base.Docs.doc(mod, name)` reads `name` as a type signature and returns the module's own docstring, so it never detected a missing one. Query the binding in the module's doc metadata instead, and cover it with a negative case. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0117aJvytDT3y2jMi5Ng6Q5m --------- Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent ccee56d commit 3ea8c85

19 files changed

Lines changed: 160 additions & 121 deletions

Project.toml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,47 @@
11
name = "PDEBase"
22
uuid = "a7812802-0625-4b9e-961c-d332478797e5"
3-
version = "0.1.30"
3+
version = "0.2.0"
44
authors = ["xtalax <alex.lemony@gmail.com>"]
55

66
[deps]
77
DomainSets = "5b8099bc-c8ec-5219-889f-1d9e522a28bf"
8-
ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78"
8+
IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953"
9+
ModelingToolkitBase = "7771a370-6774-4173-bd38-47e70ca0b839"
910
PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
1011
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
12+
SciMLPublic = "431bcebd-1456-4ced-9d72-93c2757fff0b"
1113
SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5"
1214
SymbolicUtils = "d1185830-fcd6-423d-90d6-eec64667417b"
1315
Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7"
16+
TermInterface = "8ea1fca8-c5ef-4a55-8b96-4e9afe9c9a3c"
1417

1518
[compat]
1619
AllocCheck = "0.2"
1720
BenchmarkTools = "1"
1821
DomainSets = "0.7, 0.8"
19-
ModelingToolkit = "11.26.7"
22+
IntervalSets = "0.7"
23+
ModelingToolkitBase = "1.57"
24+
ModelingToolkit = "11"
2025
PrecompileTools = "1.2.1"
2126
SciMLBase = "2.149.0, 3.1"
22-
SciMLTesting = "2.1"
27+
SciMLPublic = "1"
28+
SciMLTesting = "2.4"
29+
SafeTestsets = "0.0.1, 0.1, 1"
2330
SymbolicIndexingInterface = "0.3.43"
2431
SymbolicUtils = "4.31.0"
2532
Symbolics = "7.24.0"
33+
TermInterface = "2"
34+
Test = "1"
2635
julia = "1.10"
2736

2837
[extras]
2938
AllocCheck = "9b6a8646-10ed-4001-bbdc-1d2f46dfbb1a"
3039
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
40+
ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78"
3141
SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"
3242
SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283"
3343
SymbolicUtils = "d1185830-fcd6-423d-90d6-eec64667417b"
3444
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
3545

3646
[targets]
37-
test = ["AllocCheck", "BenchmarkTools", "SafeTestsets", "SciMLTesting", "SymbolicUtils", "Test"]
47+
test = ["AllocCheck", "BenchmarkTools", "ModelingToolkit", "SafeTestsets", "SciMLTesting", "SymbolicUtils", "Test"]

docs/Project.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
[deps]
22
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
3+
ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78"
34
PDEBase = "a7812802-0625-4b9e-961c-d332478797e5"
45

56
[compat]
67
Documenter = "1"
7-
PDEBase = "0.1.19"
8+
ModelingToolkit = "11"
9+
PDEBase = "0.2"

docs/make.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ makedocs(
1313
sitename = "PDEBase.jl",
1414
authors = "Alex Jones, Chris Rackauckas et al.",
1515
clean = true,
16-
doctest = false,
17-
warnonly = [:missing_docs],
16+
doctest = true,
17+
checkdocs = :exports,
1818
modules = [PDEBase],
1919
format = Documenter.HTML(
2020
analytics = "UA-90474609-3",

docs/pages.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ pages = [
22
"Home" => "index.md",
33
"Getting Started" => "getting_started.md",
44
"Interface" => [
5-
"PDESystem Interface" => "interface.md",
5+
"Developer Extension API" => "interface.md",
66
"Discretization Workflow" => "workflow.md",
77
],
88
"Types" => [

docs/src/api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ Tracks which variables have periodic boundary conditions.
148148

149149
## Interface Functions
150150

151-
For detailed documentation of interface functions, see [PDESystem Interface](@ref).
151+
For detailed documentation of interface functions, see [Developer Extension API](@ref developer-extension-api).
152152

153153
### Summary
154154

docs/src/boundaries.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,6 @@ This is used to determine when to wrap grid indices in finite difference stencil
266266

267267
## See Also
268268

269-
- [PDESystem Interface](@ref) for how boundaries integrate with discretization
269+
- [Developer Extension API](@ref developer-extension-api) for how boundaries integrate with discretization
270270
- [Discretization Workflow](@ref workflow) for the complete processing pipeline
271271
- [VariableMap](@ref variablemap) for variable handling

docs/src/getting_started.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ end
175175

176176
## Next Steps
177177

178-
- Read the [PDESystem Interface](@ref) for detailed interface documentation
178+
- Read the [Developer Extension API](@ref developer-extension-api) for detailed interface documentation
179179
- Study [VariableMap](@ref variablemap) to understand variable handling
180180
- Review [Boundary Conditions](@ref boundaries) for BC types
181181
- See [Discretization Workflow](@ref workflow) for the complete pipeline

docs/src/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ PDEBase defines how a `ModelingToolkit.PDESystem` is converted into a discretize
3434
- Boundary conditions specified at domain boundaries
3535
- Initial conditions for time-dependent problems
3636

37-
See [PDESystem Interface](@ref) for complete details.
37+
See [Developer Extension API](@ref developer-extension-api) for complete details.
3838

3939
### The Discretization Workflow
4040

docs/src/interface.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1-
# PDESystem Interface
1+
# [Developer Extension API](@id developer-extension-api)
22

3-
PDEBase.jl provides a set of interface functions that discretization packages must implement to convert a `ModelingToolkit.PDESystem` into a discretized system (typically an `ODESystem` or `OptimizationSystem`).
3+
PDEBase.jl provides the versioned interface that discretization packages implement to convert a `ModelingToolkit.PDESystem` into a discretized system (typically an `ODESystem` or `OptimizationSystem`).
4+
5+
!!! warning "Developer API, not ordinary user API"
6+
7+
These qualified hooks are for PDE discretizer authors. They are documented
8+
and versioned so extension packages can depend on them, but applications
9+
should use a discretizer such as MethodOfLines.jl rather than call or
10+
extend this protocol directly.
411

512
## Key Assumptions about PDESystem
613

docs/src/variablemap.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,5 +199,5 @@ Returns axis values at grid positions. Used internally during discretization.
199199

200200
## See Also
201201

202-
- [PDESystem Interface](@ref) for how VariableMap is used in discretization
202+
- [Developer Extension API](@ref developer-extension-api) for how VariableMap is used in discretization
203203
- [Boundary Conditions](@ref boundaries) for how boundaries reference variables

0 commit comments

Comments
 (0)