Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,11 @@ jobs:
strategy:
fail-fast: false
matrix:
# Root-only test groups. The lib/* sublibraries (DataDrivenDMD, DataDrivenSR,
# DataDrivenSparse, DataDrivenLux) are covered by SublibraryCI.yml via the
# project model and must not be double-tested through the root matrix.
group:
- Core
- DataDrivenDMD
- DataDrivenSR
- DataDrivenSparse
- DataDrivenLux
- nopre
version:
- '1'
Expand All @@ -37,5 +36,5 @@ jobs:
with:
julia-version: "${{ matrix.version }}"
group: "${{ matrix.group }}"
coverage-directories: "src,lib/DataDrivenDMD/src,lib/DataDrivenSparse/src,lib/DataDrivenSR/src,lib/DataDrivenLux/src"
coverage-directories: "src"
secrets: "inherit"
6 changes: 4 additions & 2 deletions .github/workflows/Downgrade.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@ on:
- master
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
jobs:
test:
name: "Downgrade"
uses: "SciML/.github/.github/workflows/downgrade.yml@v1"
with:
julia-version: "1.10"
skip: "Pkg,TOML"
group: "Core"
secrets: "inherit"
4 changes: 3 additions & 1 deletion .github/workflows/DowngradeSublibraries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,6 @@ jobs:
secrets: "inherit"
with:
julia-version: "lts"
skip: "Pkg,TOML,Statistics,LinearAlgebra,SparseArrays,InteractiveUtils,Random,Test,DataDrivenDiffEq"
group-env-name: "DATADRIVENDIFFEQ_TEST_GROUP"
group-env-value: "Core"
# Every lib/* sublibrary is downgrade-tested (projects auto-discovered, no exclusions).
62 changes: 62 additions & 0 deletions .github/workflows/Downstream.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: IntegrationTest
on:
push:
branches: [master]
tags: [v*]
pull_request:
concurrency:
# Skip intermediate builds: always.
# Cancel intermediate builds: only if it is a pull request build.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
jobs:
test:
name: ${{ matrix.package.repo }}/${{ matrix.package.group }}/${{ matrix.julia-version }}
runs-on: ${{ matrix.os }}
env:
GROUP: ${{ matrix.package.group }}
strategy:
fail-fast: false
matrix:
julia-version: ['1.10']
os: [ubuntu-latest]
package:
- {user: SciML, repo: SymbolicNumericIntegration.jl, group: All}
- {user: ODINN-SciML, repo: ODINN.jl, group: Core1}

steps:
- uses: actions/checkout@v6
- uses: julia-actions/setup-julia@v3
with:
version: ${{ matrix.julia-version }}
arch: x64
- name: Clone Downstream
uses: actions/checkout@v6
with:
repository: ${{ matrix.package.user }}/${{ matrix.package.repo }}
path: downstream
- name: Load this and run the downstream tests
shell: julia --color=yes --project=downstream {0}
run: |
using Pkg
try
# Develop the root umbrella DataDrivenDiffEq plus every lib/* sublibrary
# so the downstream tests run against this checkout rather than releases.
Pkg.develop(PackageSpec(path="."));
Pkg.develop(map(path ->Pkg.PackageSpec.(;path="lib/$(path)"), readdir("./lib")));
Pkg.test(coverage=true) # resolver may fail with test time deps
catch err
err isa Pkg.Resolve.ResolverError || rethrow()
# If we can't resolve that means this is incompatible by SemVer and this is fine
# It means we marked this as a breaking change, so we don't need to worry about
# mistakenly introducing a breaking change, as we have intentionally made one
@info "Not compatible with this release. No problem." exception=err
exit(0) # Exit immediately, as a success
end
- uses: julia-actions/julia-processcoverage@v1
- uses: codecov/codecov-action@v6
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: lcov.info
fail_ci_if_error: false
disable_safe_directory: true
3 changes: 3 additions & 0 deletions .github/workflows/SublibraryCI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,7 @@ concurrency:
jobs:
sublibraries:
uses: "SciML/.github/.github/workflows/sublibrary-project-tests.yml@v1"
with:
group-env-name: DATADRIVENDIFFEQ_TEST_GROUP
check-bounds: auto
secrets: "inherit"
29 changes: 18 additions & 11 deletions .github/workflows/TagBot.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,22 @@
name: TagBot
name: "TagBot"
on:
issue_comment:
types:
- created
types: [created]
workflow_dispatch:
jobs:
TagBot:
if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot'
runs-on: ubuntu-latest
steps:
- uses: JuliaRegistries/TagBot@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
ssh: ${{ secrets.DOCUMENTER_KEY }}
tagbot:
uses: "SciML/.github/.github/workflows/tagbot.yml@v1"
secrets: "inherit"
tagbot-subpackages:
strategy:
fail-fast: false
matrix:
subdir:
- "lib/DataDrivenDMD"
- "lib/DataDrivenLux"
- "lib/DataDrivenSparse"
- "lib/DataDrivenSR"
uses: "SciML/.github/.github/workflows/tagbot.yml@v1"
with:
subdir: "${{ matrix.subdir }}"
secrets: "inherit"
File renamed without changes.
5 changes: 5 additions & 0 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,22 +31,27 @@ CommonSolve = "0.2"
DataInterpolations = "4, 5, 6, 7, 8"
DiffEqBase = "6.211, 7"
DocStringExtensions = "0.7, 0.8, 0.9"
LinearAlgebra = "1"
MLUtils = "0.3, 0.4"
ModelingToolkit = "11.21.0"
OrdinaryDiffEqTsit5 = "1, 2"
Parameters = "0.12.1"
Pkg = "1"
PrecompileTools = "1"
ProgressMeter = "1.6"
QuadGK = "2.4"
Random = "1"
RecipesBase = "1"
Reexport = "1.0"
SafeTestsets = "0.1"
SciMLBase = "2.155, 3"
SciMLStructures = "1"
Setfield = "1"
Statistics = "1"
StatsBase = "0.32.0, 0.33, 0.34"
SymbolicUtils = "4"
Symbolics = "7"
Test = "1"
julia = "1.10"

[extras]
Expand Down
File renamed without changes.
10 changes: 9 additions & 1 deletion lib/DataDrivenDMD/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,18 @@ version = "0.1.3"
DataDrivenDiffEq = "2445eb08-9709-466a-b3fc-47e12bd697a2"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"

[sources]
DataDrivenDiffEq = {path = "../.."}

[compat]
DataDrivenDiffEq = "1.14"
DataDrivenDiffEq = "1.15"
LinearAlgebra = "1.10"
OrdinaryDiffEq = "6, 7"
OrdinaryDiffEqFunctionMap = "1, 2"
SafeTestsets = "0.1"
StableRNGs = "1"
StatsBase = "0.34"
Test = "1.10"
julia = "1.10"

[extras]
Expand Down
12 changes: 12 additions & 0 deletions lib/DataDrivenDMD/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# DataDrivenDMD.jl

[![Join the chat at https://julialang.zulipchat.com #sciml-bridged](https://img.shields.io/static/v1?label=Zulip&message=chat&color=9558b2&labelColor=389826)](https://julialang.zulipchat.com/#narrow/stream/279055-sciml-bridged)
[![Global Docs](https://img.shields.io/badge/docs-SciML-blue.svg)](https://docs.sciml.ai/DataDrivenDiffEq/stable/)

[![ColPrac: Contributor's Guide on Collaborative Practices for Community Packages](https://img.shields.io/badge/ColPrac-Contributor%27s%20Guide-blueviolet)](https://github.com/SciML/ColPrac)
[![SciML Code Style](https://img.shields.io/static/v1?label=code%20style&message=SciML&color=9558b2&labelColor=389826)](https://github.com/SciML/SciMLStyle)

DataDrivenDMD.jl is a component of the [DataDrivenDiffEq.jl](https://github.com/SciML/DataDrivenDiffEq.jl) monorepo. Dynamic Mode Decomposition (DMD) and Koopman-based methods for discovering linear operator approximations of dynamical systems from data.
While completely independent and usable on its own, users wanting the full data-driven modeling suite should use [DataDrivenDiffEq.jl](https://github.com/SciML/DataDrivenDiffEq.jl).

For a full description of the methods and their options, see the [DataDrivenDiffEq documentation](https://docs.sciml.ai/DataDrivenDiffEq/stable/).
12 changes: 6 additions & 6 deletions lib/DataDrivenDMD/test/runtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,21 @@ using Test

@info "Finished loading packages"

const GROUP = get(ENV, "GROUP", "All")
const GROUP = get(ENV, "DATADRIVENDIFFEQ_TEST_GROUP", get(ENV, "GROUP", "All"))

@time begin
if GROUP == "All" || GROUP == "DataDrivenDMD"
if GROUP == "All" || GROUP == "Core" || GROUP == "DataDrivenDMD"
@safetestset "Linear autonomous" begin
include("./linear_autonomous.jl")
include("./Core/linear_autonomous.jl")
end
@safetestset "Linear forced" begin
include("./linear_forced.jl")
include("./Core/linear_forced.jl")
end
@safetestset "Nonlinear autonomous" begin
include("./nonlinear_autonomous.jl")
include("./Core/nonlinear_autonomous.jl")
end
@safetestset "Nonlinear forced" begin
include("./nonlinear_forced.jl")
include("./Core/nonlinear_forced.jl")
end
end
end
4 changes: 4 additions & 0 deletions lib/DataDrivenDMD/test/test_groups.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Each sublibrary only defines functional ("Core") tests; there are no QA
# (Aqua/JET/AllocCheck) suites here, so the default QA group is not declared.
[Core]
versions = ["lts", "1", "pre"]
File renamed without changes.
14 changes: 12 additions & 2 deletions lib/DataDrivenLux/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,27 +30,37 @@ StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
TransformVariables = "84d833dd-6860-57f9-a1a7-6da5db126cff"
WeightInitializers = "d49dbf32-c5c2-4618-8acc-27bb2598ef2d"

[sources]
DataDrivenDiffEq = {path = "../.."}

[compat]
AbstractDifferentiation = "0.6"
ChainRulesCore = "1.15"
CommonSolve = "0.2.4"
ComponentArrays = "0.15"
ConcreteStructs = "0.2.3"
DataDrivenDiffEq = "1.14"
OrdinaryDiffEq = "6, 7"
DataDrivenDiffEq = "1.15"
Distributed = "1.10"
Distributions = "0.25"
DistributionsAD = "0.6"
DocStringExtensions = "0.9.3"
ForwardDiff = "0.10, 1"
IntervalArithmetic = "0.22, 0.23, 1"
InverseFunctions = "0.1"
LinearAlgebra = "1.10"
Logging = "1.10"
Lux = "1"
LuxCore = "1"
Optim = "1.7, 2"
Optimisers = "0.3, 0.4"
OrdinaryDiffEq = "6, 7"
ProgressMeter = "1.7"
Random = "1.10"
SafeTestsets = "0.1"
Setfield = "1"
StableRNGs = "1"
StatsBase = "0.34.3"
Test = "1.10"
TransformVariables = "0.8"
WeightInitializers = "1"
julia = "1.10"
Expand Down
12 changes: 12 additions & 0 deletions lib/DataDrivenLux/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# DataDrivenLux.jl

[![Join the chat at https://julialang.zulipchat.com #sciml-bridged](https://img.shields.io/static/v1?label=Zulip&message=chat&color=9558b2&labelColor=389826)](https://julialang.zulipchat.com/#narrow/stream/279055-sciml-bridged)
[![Global Docs](https://img.shields.io/badge/docs-SciML-blue.svg)](https://docs.sciml.ai/DataDrivenDiffEq/stable/)

[![ColPrac: Contributor's Guide on Collaborative Practices for Community Packages](https://img.shields.io/badge/ColPrac-Contributor%27s%20Guide-blueviolet)](https://github.com/SciML/ColPrac)
[![SciML Code Style](https://img.shields.io/static/v1?label=code%20style&message=SciML&color=9558b2&labelColor=389826)](https://github.com/SciML/SciMLStyle)

DataDrivenLux.jl is a component of the [DataDrivenDiffEq.jl](https://github.com/SciML/DataDrivenDiffEq.jl) monorepo. Deep-learning-based structure search, built on Lux.jl, for discovering governing equations via differentiable directed-acyclic-graph candidate models.
While completely independent and usable on its own, users wanting the full data-driven modeling suite should use [DataDrivenDiffEq.jl](https://github.com/SciML/DataDrivenDiffEq.jl).

For a full description of the methods and their options, see the [DataDrivenDiffEq documentation](https://docs.sciml.ai/DataDrivenDiffEq/stable/).
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
20 changes: 10 additions & 10 deletions lib/DataDrivenLux/test/runtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,25 @@ using Test

@info "Finished loading packages"

const GROUP = get(ENV, "GROUP", "All")
const GROUP = get(ENV, "DATADRIVENDIFFEQ_TEST_GROUP", get(ENV, "GROUP", "All"))

@testset "DataDrivenLux" begin
if GROUP == "All" || GROUP == "DataDrivenLux"
if GROUP == "All" || GROUP == "Core" || GROUP == "DataDrivenLux"
@testset "Lux" begin
@safetestset "Nodes" include("nodes.jl")
@safetestset "Layers" include("layers.jl")
@safetestset "Graphs" include("graphs.jl")
@safetestset "Nodes" include("Core/nodes.jl")
@safetestset "Layers" include("Core/layers.jl")
@safetestset "Graphs" include("Core/graphs.jl")
end

@testset "Caches" begin
@safetestset "Candidate" include("candidate.jl")
@safetestset "Cache" include("cache.jl")
@safetestset "Candidate" include("Core/candidate.jl")
@safetestset "Cache" include("Core/cache.jl")
end

@testset "Algorithms" begin
@safetestset "RandomSearch" include("randomsearch_solve.jl")
@safetestset "Reinforce" include("reinforce_solve.jl")
@safetestset "CrossEntropy" include("crossentropy_solve.jl")
@safetestset "RandomSearch" include("Core/randomsearch_solve.jl")
@safetestset "Reinforce" include("Core/reinforce_solve.jl")
@safetestset "CrossEntropy" include("Core/crossentropy_solve.jl")
end
end
end
4 changes: 4 additions & 0 deletions lib/DataDrivenLux/test/test_groups.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Each sublibrary only defines functional ("Core") tests; there are no QA
# (Aqua/JET/AllocCheck) suites here, so the default QA group is not declared.
[Core]
versions = ["lts", "1", "pre"]
File renamed without changes.
8 changes: 7 additions & 1 deletion lib/DataDrivenSR/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,16 @@ DataDrivenDiffEq = "2445eb08-9709-466a-b3fc-47e12bd697a2"
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
SymbolicRegression = "8254be44-1295-4e6a-a16d-46603ac705cb"

[sources]
DataDrivenDiffEq = {path = "../.."}

[compat]
DataDrivenDiffEq = "1.15"
Reexport = "1.2"
DataDrivenDiffEq = "1.14"
StableRNGs = "1"
StatsBase = "0.34"
SymbolicRegression = "1"
Test = "1.10"
julia = "1.10"

[extras]
Expand Down
12 changes: 12 additions & 0 deletions lib/DataDrivenSR/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# DataDrivenSR.jl

[![Join the chat at https://julialang.zulipchat.com #sciml-bridged](https://img.shields.io/static/v1?label=Zulip&message=chat&color=9558b2&labelColor=389826)](https://julialang.zulipchat.com/#narrow/stream/279055-sciml-bridged)
[![Global Docs](https://img.shields.io/badge/docs-SciML-blue.svg)](https://docs.sciml.ai/DataDrivenDiffEq/stable/)

[![ColPrac: Contributor's Guide on Collaborative Practices for Community Packages](https://img.shields.io/badge/ColPrac-Contributor%27s%20Guide-blueviolet)](https://github.com/SciML/ColPrac)
[![SciML Code Style](https://img.shields.io/static/v1?label=code%20style&message=SciML&color=9558b2&labelColor=389826)](https://github.com/SciML/SciMLStyle)

DataDrivenSR.jl is a component of the [DataDrivenDiffEq.jl](https://github.com/SciML/DataDrivenDiffEq.jl) monorepo. Symbolic regression methods, built on SymbolicRegression.jl, for discovering closed-form governing equations from data.
While completely independent and usable on its own, users wanting the full data-driven modeling suite should use [DataDrivenDiffEq.jl](https://github.com/SciML/DataDrivenDiffEq.jl).

For a full description of the methods and their options, see the [DataDrivenDiffEq documentation](https://docs.sciml.ai/DataDrivenDiffEq/stable/).
Loading
Loading