Skip to content

ci: uniformize onto centralized CI (project-model SublibraryCI + cleanup) - #499

Merged
ChrisRackauckas merged 6 commits into
SciML:masterfrom
ChrisRackauckas-Claude:sublibrary-ci-project-model
Jun 5, 2026
Merged

ci: uniformize onto centralized CI (project-model SublibraryCI + cleanup)#499
ChrisRackauckas merged 6 commits into
SciML:masterfrom
ChrisRackauckas-Claude:sublibrary-ci-project-model

Conversation

@ChrisRackauckas-Claude

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Jun 5, 2026

Copy link
Copy Markdown
Member

Uniformizes this repo onto the centralized CI setup released in SciML/.github @v1:

  • Migrate SublibraryCI to the project-model sublibrary-project-tests.yml@v1
  • Add DocPreviewCleanup.ymldocs-preview-cleanup.yml@v1

Deliberately excluded: TagBot centralization (the reusable tagbot.yml only wraps JuliaRegistries/TagBot@v1, which already floats — near-zero value, and rewriting the sublib matrix risks silently dropping a package from registration); dependabot-automerge / runic-suggestions (opt-in behavior changes).

Ignore until reviewed by @ChrisRackauckas.

🤖 Generated with Claude Code

ChrisRackauckas and others added 5 commits June 4, 2026 21:09
The previous SublibraryCI called sublibrary-tests.yml@v1 (GROUP-dispatch),
which needs a root runtests.jl that activates lib/<GROUP> — this repo has no
such dispatcher, so it tested nothing useful. Switch to the project model:
list lib/* and run each as a tests.yml@v1 caller with project: lib/X. The
reusable workflow git-develops the sublibrary's in-repo [sources] deps
transitively, so no per-repo dispatcher is needed.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Drop coverage: false (cargo-culted from OrdinaryDiffEq, which disables it
only to avoid Codecov flooding at 56-sublibrary scale). For this repo the
sublib tests are the only thing covering the sublib's src, so collect it --
with coverage-directories pointed at the sublibrary (lib/X/src,ext) rather
than the repo-root default (src,ext).

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Don't assume python3 is on the runner. jq is preinstalled on GitHub-hosted
ubuntu runners (where the list-sublibraries job runs) and builds the JSON
array directly.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
jq isn't guaranteed on self-hosted runners any more than python3 is. lib/*
directory names have no JSON-special characters, so build the array with
plain shell quoting and depend on neither.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The list-lib/*-and-matrix logic moved into the reusable
sublibrary-project-tests.yml in SciML/.github, so this caller collapses to
just the branch triggers, concurrency, and a single `uses:`. No duplicated
detection logic per repo.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (Julia v1.11)

Time benchmarks
master af76856... master / af76856...
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK2() 1.94 ± 0.75 s 1.27 ± 0.31 s 1.53 ± 0.7
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK3() 13.6 ± 15 ms 13.2 ± 18 ms 1.03 ± 1.8
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK4() 2.94 ± 0.59 ms 2.66 ± 0.16 ms 1.11 ± 0.23
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK5() 3.56 ± 0.77 ms 3.78 ± 24 ms 0.943 ± 6
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK6() 1.81 ± 0.49 ms 2.04 ± 1.3 ms 0.889 ± 0.61
Simple Pendulum/IIP/MultipleShooting(10, Tsit5; grid_coarsening = false) 2.08 ± 1.5 ms 2.29 ± 12 ms 0.911 ± 4.9
Simple Pendulum/IIP/MultipleShooting(10, Tsit5; grid_coarsening = true) 6.67 ± 24 ms 4.85 ± 24 ms 1.38 ± 8.4
Simple Pendulum/IIP/MultipleShooting(100, Tsit5; grid_coarsening = false) 0.0976 ± 0.12 s 0.0496 ± 0.018 s 1.97 ± 2.5
Simple Pendulum/IIP/MultipleShooting(100, Tsit5; grid_coarsening = true) 0.123 ± 0.089 s 0.218 ± 0.13 s 0.568 ± 0.52
Simple Pendulum/IIP/Shooting(Tsit5()) 0.188 ± 0.053 ms 0.187 ± 0.07 ms 1 ± 0.47
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK2() 1.36 ± 0.7 s 2.06 ± 0.37 s 0.66 ± 0.36
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK3() 0.0458 ± 0.039 s 0.032 ± 0.021 s 1.43 ± 1.5
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK4() 3.98 ± 1.9 ms 3.85 ± 1.5 ms 1.03 ± 0.63
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK5() 4.5 ± 2.4 ms 4.18 ± 0.94 ms 1.08 ± 0.62
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK6() 2.14 ± 0.57 ms 2.09 ± 0.39 ms 1.02 ± 0.33
Simple Pendulum/OOP/MultipleShooting(10, Tsit5; grid_coarsening = false) 7 ± 12 ms 4.41 ± 6.1 ms 1.59 ± 3.5
Simple Pendulum/OOP/MultipleShooting(10, Tsit5; grid_coarsening = true) 30.2 ± 14 ms 0.0329 ± 0.024 s 0.918 ± 0.78
Simple Pendulum/OOP/MultipleShooting(100, Tsit5; grid_coarsening = false) 1.16 ± 0.13 s 0.245 ± 0.18 s 4.76 ± 3.5
Simple Pendulum/OOP/MultipleShooting(100, Tsit5; grid_coarsening = true) 0.948 ± 0.16 s 0.375 ± 0.19 s 2.53 ± 1.3
Simple Pendulum/OOP/Shooting(Tsit5()) 0.758 ± 0.56 ms 0.688 ± 0.17 ms 1.1 ± 0.86
time_to_load 19.6 ± 3.1 s 18.8 ± 3.1 s 1.04 ± 0.24
Memory benchmarks
master af76856... master / af76856...
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK2() 0.389 M allocs: 0.0442 GB 0.389 M allocs: 0.0442 GB 1
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK3() 0.0436 M allocs: 4.85 MB 0.0436 M allocs: 4.85 MB 1
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK4() 15.7 k allocs: 1.63 MB 15.7 k allocs: 1.63 MB 1
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK5() 22.1 k allocs: 2.02 MB 22.1 k allocs: 2.02 MB 1
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK6() 12.8 k allocs: 1.04 MB 12.8 k allocs: 1.04 MB 1
Simple Pendulum/IIP/MultipleShooting(10, Tsit5; grid_coarsening = false) 25.4 k allocs: 1.82 MB 25.4 k allocs: 1.82 MB 1
Simple Pendulum/IIP/MultipleShooting(10, Tsit5; grid_coarsening = true) 0.0488 M allocs: 3.36 MB 0.0488 M allocs: 3.36 MB 1
Simple Pendulum/IIP/MultipleShooting(100, Tsit5; grid_coarsening = false) 0.552 M allocs: 0.0534 GB 0.552 M allocs: 0.0534 GB 1
Simple Pendulum/IIP/MultipleShooting(100, Tsit5; grid_coarsening = true) 0.832 M allocs: 0.0777 GB 0.832 M allocs: 0.0777 GB 1
Simple Pendulum/IIP/Shooting(Tsit5()) 4.62 k allocs: 0.223 MB 4.62 k allocs: 0.223 MB 1
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK2() 0.89 M allocs: 0.984 GB 0.89 M allocs: 0.984 GB 1
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK3() 0.0932 M allocs: 24.7 MB 0.0932 M allocs: 24.7 MB 1
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK4() 0.0324 M allocs: 3.94 MB 0.0324 M allocs: 3.94 MB 1
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK5() 0.045 M allocs: 4.97 MB 0.045 M allocs: 4.97 MB 1
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK6() 25.3 k allocs: 2.16 MB 25.3 k allocs: 2.16 MB 1
Simple Pendulum/OOP/MultipleShooting(10, Tsit5; grid_coarsening = false) 0.142 M allocs: 10.2 MB 0.142 M allocs: 10.2 MB 1
Simple Pendulum/OOP/MultipleShooting(10, Tsit5; grid_coarsening = true) 0.265 M allocs: 18.7 MB 0.265 M allocs: 18.7 MB 1
Simple Pendulum/OOP/MultipleShooting(100, Tsit5; grid_coarsening = false) 2.52 M allocs: 0.279 GB 2.52 M allocs: 0.279 GB 1
Simple Pendulum/OOP/MultipleShooting(100, Tsit5; grid_coarsening = true) 3.82 M allocs: 0.404 GB 3.82 M allocs: 0.404 GB 1
Simple Pendulum/OOP/Shooting(Tsit5()) 0.0373 M allocs: 1.69 MB 0.0373 M allocs: 1.69 MB 1
time_to_load 0.157 k allocs: 11.5 kB 0.157 k allocs: 11.5 kB 1

Part of bringing this repo onto the full centralized CI setup (SciML/.github
@v1): remove retired CompatHelper (Dependabot drives [compat]) and/or add the
centralized Documenter preview cleanup.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas-Claude ChrisRackauckas-Claude changed the title ci: SublibraryCI via project-model tests.yml@v1 (test each lib/* directly) ci: uniformize onto centralized CI (project-model SublibraryCI + cleanup) Jun 5, 2026
@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review June 5, 2026 13:52
@ChrisRackauckas
ChrisRackauckas merged commit f86a8c8 into SciML:master Jun 5, 2026
5 of 15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants