Skip to content

Commit db70a16

Browse files
committed
Merge branch 'master' into ap/sstermination
2 parents 52ba7e4 + 53b9ef2 commit db70a16

File tree

86 files changed

+4990
-5350
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+4990
-5350
lines changed

.JuliaFormatter.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
style = "sciml"

.github/workflows/CI.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,14 @@ jobs:
1515
- Core
1616
- Downstream
1717
- Downstream2
18+
version:
19+
- '1'
20+
- '1.6'
1821
steps:
1922
- uses: actions/checkout@v2
2023
- uses: julia-actions/setup-julia@v1
2124
with:
22-
version: 1
25+
version: ${{ matrix.version }}
2326
- uses: actions/cache@v1
2427
env:
2528
cache-name: cache-artifacts

.github/workflows/Downstream.yml

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,38 @@ on:
77

88
jobs:
99
test:
10-
name: ${{ matrix.package.repo }}/${{ matrix.package.group }}
10+
name: ${{ matrix.package.repo }}/${{ matrix.package.group }}/${{ matrix.julia-version }}
1111
runs-on: ${{ matrix.os }}
1212
env:
1313
GROUP: ${{ matrix.package.group }}
1414
strategy:
1515
fail-fast: false
1616
matrix:
17-
julia-version: [1]
17+
julia-version: [1,1.6]
1818
os: [ubuntu-latest]
1919
package:
20-
- {user: SciML, repo: DelayDiffEq.jl, group: All}
20+
- {user: SciML, repo: DelayDiffEq.jl, group: Interface}
21+
- {user: SciML, repo: DelayDiffEq.jl, group: Integrators}
22+
- {user: SciML, repo: DelayDiffEq.jl, group: Regression}
23+
- {user: SciML, repo: JumpProcesses.jl, group: All}
2124
- {user: SciML, repo: DiffEqFlux.jl, group: DiffEqFlux}
22-
- {user: SciML, repo: OrdinaryDiffEq.jl, group: Interface}
23-
- {user: SciML, repo: OrdinaryDiffEq.jl, group: Integrators}
24-
- {user: SciML, repo: OrdinaryDiffEq.jl, group: Regression}
25-
- {user: SciML, repo: StochasticDiffEq.jl, group: All}
25+
- {user: SciML, repo: OrdinaryDiffEq.jl, group: InterfaceI}
26+
- {user: SciML, repo: OrdinaryDiffEq.jl, group: InterfaceII}
27+
- {user: SciML, repo: OrdinaryDiffEq.jl, group: InterfaceIII}
28+
- {user: SciML, repo: OrdinaryDiffEq.jl, group: InterfaceIV}
29+
- {user: SciML, repo: OrdinaryDiffEq.jl, group: InterfaceV}
30+
- {user: SciML, repo: OrdinaryDiffEq.jl, group: IntegratorsI}
31+
- {user: SciML, repo: OrdinaryDiffEq.jl, group: IntegratorsII}
32+
- {user: SciML, repo: OrdinaryDiffEq.jl, group: RegressionI}
33+
- {user: SciML, repo: OrdinaryDiffEq.jl, group: RegressionII}
34+
- {user: SciML, repo: StochasticDiffEq.jl, group: Interface1}
35+
- {user: SciML, repo: StochasticDiffEq.jl, group: Interface2}
36+
- {user: SciML, repo: StochasticDiffEq.jl, group: Interface3}
37+
- {user: SciML, repo: StochasticDiffEq.jl, group: AlgConvergence}
2638
- {user: SciML, repo: Sundials.jl, group: All}
39+
- {user: SciML, repo: SteadyStateDiffEq.jl, group: All}
40+
- {user: SciML, repo: DifferentialEquations.jl, group: All}
41+
- {user: SciML, repo: ModelingToolkit.jl, group: All}
2742

2843
steps:
2944
- uses: actions/checkout@v2
@@ -45,7 +60,7 @@ jobs:
4560
# force it to use this PR's version of the package
4661
Pkg.develop(PackageSpec(path=".")) # resolver may fail with main deps
4762
Pkg.update()
48-
Pkg.test() # resolver may fail with test time deps
63+
Pkg.test(coverage=true) # resolver may fail with test time deps
4964
catch err
5065
err isa Pkg.Resolve.ResolverError || rethrow()
5166
# If we can't resolve that means this is incompatible by SemVer and this is fine
@@ -54,3 +69,7 @@ jobs:
5469
@info "Not compatible with this release. No problem." exception=err
5570
exit(0) # Exit immediately, as a success
5671
end
72+
- uses: julia-actions/julia-processcoverage@v1
73+
- uses: codecov/codecov-action@v1
74+
with:
75+
file: lcov.info

.github/workflows/FormatCheck.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: format-check
2+
3+
on:
4+
push:
5+
branches:
6+
- 'master'
7+
- 'release-'
8+
tags: '*'
9+
pull_request:
10+
11+
jobs:
12+
build:
13+
runs-on: ${{ matrix.os }}
14+
strategy:
15+
matrix:
16+
julia-version: [1]
17+
julia-arch: [x86]
18+
os: [ubuntu-latest]
19+
steps:
20+
- uses: julia-actions/setup-julia@latest
21+
with:
22+
version: ${{ matrix.julia-version }}
23+
24+
- uses: actions/checkout@v1
25+
- name: Install JuliaFormatter and format
26+
# This will use the latest version by default but you can set the version like so:
27+
#
28+
# julia -e 'using Pkg; Pkg.add(PackageSpec(name="JuliaFormatter", version="0.13.0"))'
29+
run: |
30+
julia -e 'using Pkg; Pkg.add(PackageSpec(name="JuliaFormatter"))'
31+
julia -e 'using JuliaFormatter; format(".", verbose=true)'
32+
- name: Format check
33+
run: |
34+
julia -e '
35+
out = Cmd(`git diff --name-only`) |> read |> String
36+
if out == ""
37+
exit(0)
38+
else
39+
@error "Some files have not been formatted !!!"
40+
write(stdout, out)
41+
exit(1)
42+
end'

.github/workflows/Invalidations.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Invalidations
2+
3+
on:
4+
pull_request:
5+
6+
concurrency:
7+
# Skip intermediate builds: always.
8+
# Cancel intermediate builds: always.
9+
group: ${{ github.workflow }}-${{ github.ref }}
10+
cancel-in-progress: true
11+
12+
jobs:
13+
evaluate:
14+
# Only run on PRs to the default branch.
15+
# In the PR trigger above branches can be specified only explicitly whereas this check should work for master, main, or any other default branch
16+
if: github.base_ref == github.event.repository.default_branch
17+
runs-on: ubuntu-latest
18+
steps:
19+
- uses: julia-actions/setup-julia@v1
20+
with:
21+
version: '1'
22+
- uses: actions/checkout@v3
23+
- uses: julia-actions/julia-buildpkg@v1
24+
- uses: julia-actions/julia-invalidations@v1
25+
id: invs_pr
26+
27+
- uses: actions/checkout@v3
28+
with:
29+
ref: ${{ github.event.repository.default_branch }}
30+
- uses: julia-actions/julia-buildpkg@v1
31+
- uses: julia-actions/julia-invalidations@v1
32+
id: invs_default
33+
34+
- name: Report invalidation counts
35+
run: |
36+
echo "Invalidations on default branch: ${{ steps.invs_default.outputs.total }} (${{ steps.invs_default.outputs.deps }} via deps)" >> $GITHUB_STEP_SUMMARY
37+
echo "This branch: ${{ steps.invs_pr.outputs.total }} (${{ steps.invs_pr.outputs.deps }} via deps)" >> $GITHUB_STEP_SUMMARY
38+
- name: Check if the PR does increase number of invalidations
39+
if: steps.invs_pr.outputs.total > steps.invs_default.outputs.total
40+
run: exit 1

Project.toml

Lines changed: 54 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,105 @@
11
name = "DiffEqBase"
22
uuid = "2b5f629d-d688-5b77-993f-72d75c75574e"
33
authors = ["Chris Rackauckas <[email protected]>"]
4-
version = "6.73.3"
4+
version = "6.118.1"
55

66
[deps]
7-
ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"
7+
ArrayInterfaceCore = "30b0a656-2188-435a-8636-2ec0e6a096e2"
88
ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
9-
DEDataArrays = "754358af-613d-5f8d-9788-280bf1605d4c"
109
DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
1110
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
1211
DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
1312
EnumX = "4e289a0a-7415-4d19-859d-a7e5c4648b56"
1413
FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898"
1514
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
1615
FunctionWrappers = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e"
17-
IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153"
18-
LabelledArrays = "2ee39098-c373-598a-b85f-a56591580800"
16+
FunctionWrappersWrappers = "77dc65aa-8811-40c2-897b-53d922fa7daf"
1917
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
2018
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
19+
Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
2120
MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221"
22-
NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec"
2321
Parameters = "d96e819e-fc66-5662-9728-84c9c7592b0a"
2422
PreallocationTools = "d236fae5-4411-538c-8e31-a6e3d9e00b46"
2523
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
2624
RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd"
27-
RecursiveFactorization = "f2c3362d-daeb-58d1-803e-2bc74f2840b4"
2825
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
2926
Requires = "ae029012-a4dd-5104-9daa-d747884805df"
3027
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
3128
Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46"
3229
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
33-
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
30+
Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3"
31+
StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c"
3432
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
35-
SuiteSparse = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9"
33+
Tricks = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775"
3634
ZygoteRules = "700de1a5-db45-46bc-99cf-38207098b444"
3735

36+
[weakdeps]
37+
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
38+
GeneralizedGenerated = "6b9d7cbe-bcb9-11e9-073f-15a7a543e2eb"
39+
MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195"
40+
Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7"
41+
MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca"
42+
ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267"
43+
Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c"
44+
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
45+
Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f"
46+
47+
[extensions]
48+
DiffEqBaseDistributionsExt = "Distributions"
49+
DiffEqBaseGeneralizedGeneratedExt = "GeneralizedGenerated"
50+
DiffEqBaseMPIExt = "MPI"
51+
DiffEqBaseMeasurementsExt = "Measurements"
52+
DiffEqBaseMonteCarloMeasurementsExt = "MonteCarloMeasurements"
53+
DiffEqBaseReverseDiffExt = "ReverseDiff"
54+
DiffEqBaseTrackerExt = "Tracker"
55+
DiffEqBaseUnitfulExt = "Unitful"
56+
DiffEqBaseZygoteExt = "Zygote"
57+
3858
[compat]
39-
ArrayInterface = "2.6, 3.0"
40-
ChainRulesCore = "0.10, 1"
41-
DEDataArrays = "0.2"
59+
ArrayInterfaceCore = "0.1.26"
60+
ChainRulesCore = "1"
4261
DataStructures = "0.18"
4362
Distributions = "0.25"
44-
DocStringExtensions = "0.8"
63+
DocStringExtensions = "0.9"
4564
EnumX = "1"
46-
FastBroadcast = "0.1.4"
65+
FastBroadcast = "0.2"
4766
ForwardDiff = "0.10"
4867
FunctionWrappers = "1.0"
49-
IterativeSolvers = "0.9"
50-
LabelledArrays = "1.1"
68+
FunctionWrappersWrappers = "0.1"
5169
MuladdMacro = "0.2.1"
52-
NonlinearSolve = "0.3.0"
5370
Parameters = "0.12.0"
54-
PreallocationTools = "0.1.0"
71+
PreallocationTools = "0.4"
5572
RecursiveArrayTools = "2"
56-
RecursiveFactorization = "0.2"
57-
Reexport = "0.2, 1.0"
58-
Requires = "0.5, 1.0"
59-
SciMLBase = "1.13"
60-
Setfield = "0.7, 0.8"
61-
StaticArrays = "0.11, 0.12, 1.0"
73+
Reexport = "1.0"
74+
Requires = "1.0"
75+
SciMLBase = "1.84"
76+
Setfield = "0.8, 1"
77+
Static = "0.7, 0.8"
78+
StaticArraysCore = "1.4"
79+
Tricks = "0.1.6"
6280
ZygoteRules = "0.2"
6381
julia = "1.6"
6482

6583
[extras]
6684
Distributed = "8ba89e20-285c-5b6f-9357-94700520ee1b"
85+
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
6786
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
87+
GeneralizedGenerated = "6b9d7cbe-bcb9-11e9-073f-15a7a543e2eb"
6888
InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
89+
LabelledArrays = "2ee39098-c373-598a-b85f-a56591580800"
90+
Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7"
91+
MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca"
6992
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
93+
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
7094
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
95+
ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267"
7196
SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"
97+
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
7298
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
7399
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
100+
Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c"
101+
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
102+
Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f"
74103

75104
[targets]
76-
test = ["Distributed", "ForwardDiff", "InteractiveUtils", "Pkg", "Random", "SafeTestsets", "Statistics", "Test"]
105+
test = ["Distributed", "GeneralizedGenerated", "Measurements", "MonteCarloMeasurements", "Unitful", "LabelledArrays", "ForwardDiff", "InteractiveUtils", "Plots", "Pkg", "Random", "StaticArrays", "SafeTestsets", "Statistics", "Test", "Distributions"]

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
[![Build status](https://badge.buildkite.com/99cbd352c336779c3117e4da61255a1ed8e7e7c084c3c2516c.svg)](https://buildkite.com/julialang/diffeqbase-dot-jl)
66

77
DiffEqBase.jl is a component package in the DiffEq ecosystem. It holds the
8-
common types and utility functions which are shared by other component packages
9-
in order to reduce the size of dependencies. This is so that the packages for the common interface do not require one another, allowing users to use the functionality of individual packages if they so please. Users interested in using this
8+
common types and utility functions which are shared by other solver packages
9+
to promote code reuse in the differential equation solver code.
10+
Users interested in using this
1011
functionality in full should check out [DifferentialEquations.jl](https://github.com/JuliaDiffEq/DifferentialEquations.jl)
1112

1213
The documentation for the interfaces here can be found in [DiffEqDocs.jl](https://diffeq.sciml.ai/dev/) and [DiffEqDevDocs.jl](https://devdocs.sciml.ai/dev).

ext/DiffEqBaseDistributionsExt.jl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
module DiffEqBaseDistributionsExt
2+
3+
using Distributions, DiffEqBase
4+
5+
DiffEqBase.handle_distribution_u0(_u0::Distributions.Sampleable) = rand(_u0)
6+
DiffEqBase.isdistribution(_u0::Distributions.Sampleable) = true
7+
8+
end
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
module DiffEqBaseGeneralizedGeneratedExt
2+
3+
using DiffEqBase
4+
isdefined(Base, :get_extension) ? (using GeneralizedGenerated) :
5+
(using ..GeneralizedGenerated)
6+
7+
function SciMLBase.numargs(::GeneralizedGenerated.RuntimeFn{Args}) where {Args}
8+
GeneralizedGenerated.from_type(Args) |> length
9+
end
10+
11+
end

ext/DiffEqBaseMPIExt.jl

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
module DiffEqBaseMPIExt
2+
3+
import DiffEqBase
4+
isdefined(Base, :get_extension) ? (import MPI) : (import ..MPI)
5+
6+
if isdefined(MPI, :AbstractMultiRequest)
7+
function DiffEqBase.anyeltypedual(::Type{T},
8+
counter = 0) where {T <: MPI.AbstractMultiRequest}
9+
Any
10+
end
11+
end
12+
13+
end

0 commit comments

Comments
 (0)