Rebase features into Rewrite#61
Draft
AlCap23 wants to merge 86 commits into
Draft
Conversation
Updating FIM from previous experiments
Added ModelingToolkit benchmark library
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.18.0 to 1.45.2. - [Release notes](https://github.com/crate-ci/typos/releases) - [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md) - [Commits](crate-ci/typos@v1.18.0...v1.45.2) --- updated-dependencies: - dependency-name: crate-ci/typos dependency-version: 1.45.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bump version from 0.0.2 to 0.0.3
…typos-1.45.2 Bump crate-ci/typos from 1.18.0 to 1.45.2
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>
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>
…ect-model ci: uniformize onto centralized CI (project-model SublibraryCI + cleanup)
Adds the missing SciML standard centralized caller workflows. Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The reusable SciML/.github downgrade workflows now always use allow_reresolve: false and no longer accept an allow-reresolve input (see SciML/.github#71). Remove the now-invalid input so this caller keeps working once @v1 is retagged. Co-authored-by: Chris Rackauckas <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- OrdinaryDiffEqBDF, OrdinaryDiffEqTsit5: "1" → "1, 2" - SciMLBase: "2" → "2, 3" across all sub-packages - Migrate DEProblem/DEAlgorithm → AbstractDEProblem/AbstractDEAlgorithm - Migrate SciMLBase.DEAlgorithm → SciMLBase.AbstractDEAlgorithm Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com>
* ci: uniformize monorepo structure to OrdinaryDiffEq canonical style Thread a repo-specific group-env-name (CORLEONE_TEST_GROUP) consistently through the sublibrary CI callers and runtests, GROUP-dispatch the root CI, and fix the root test harness so Pkg.test() on the root works. - SublibraryCI.yml: pass group-env-name CORLEONE_TEST_GROUP + check-bounds auto. - DowngradeSublibraries.yml: add group-env-name CORLEONE_TEST_GROUP / value Core. - Sublib runtests (CorleoneOED, OptimalControlBenchmarks): read CORLEONE_TEST_GROUP (fall back to GROUP, then All). - CI.yml: GROUP-dispatched matrix over the root's own Core/QA groups (no hardcoded sublibrary rows; sublibs covered by the project model). - test/runtests.jl: _detect_sublibrary_group dispatcher sets CORLEONE_TEST_GROUP on sublib hand-off, transitive [sources] develop on Julia <1.11, Core/QA root groups; drop dead `using JET`. - Project.toml: add Pkg to [extras]/[compat]/[targets].test (root runtests uses Pkg; matches the canonical root and keeps Aqua deps_compat green). The leaf->root [sources] graph (sublibs depend on Corleone) is preserved; no root->leaf edges are added since the root does not re-export the sublibs. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix: remove self-import of OptimalControlBenchmarks in its own module The module's source file did `using OptimalControlBenchmarks` inside the `module OptimalControlBenchmarks ... end` block, importing itself. Remove it. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * chore: canonicalize LICENSE files to LICENSE.md Rename root LICENSE -> LICENSE.md and lib/CorleoneOED/LICENSE -> LICENSE.md (content preserved via git mv), and add lib/OptimalControlBenchmarks/LICENSE.md so every component carries an MIT LICENSE.md, matching the OrdinaryDiffEq.jl monorepo layout. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs: canonical component READMEs for sublibraries Rewrite lib/CorleoneOED/README.md (was pointing at the stale external AlCap23/CorleoneOED.jl CI badge) and add lib/OptimalControlBenchmarks/README.md, both using the canonical Corleone.jl monorepo component README template (Zulip + Global Docs + ColPrac + SciML Code Style badges and the 'component of the Corleone.jl monorepo' wording), matching OrdinaryDiffEq.jl. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * ci: add .typos.toml/.codecov.yml and canonical TagBot with subpackage matrix - Add .typos.toml with [default.extend-words] (matches SpellCheck/typos workflow) - Add .codecov.yml with comment: false - Convert TagBot.yml to the canonical OrdinaryDiffEq.jl form: top-level permissions block, workflow_dispatch.inputs.lookback default '3', the root TagBot-Corleone job, and a TagBot-Subpackages matrix (fail-fast: false) that tags the registered sublibrary CorleoneOED via subdir lib/CorleoneOED. OptimalControlBenchmarks is not registered in General, so it is excluded. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Remove self-import of OptimalControlBenchmarks in run_benchmarks.jl run_benchmarks.jl is include()d into module OptimalControlBenchmarks, so the line `using OptimalControlBenchmarks` executed inside the module's own namespace and hard-failed to load (ArgumentError: Package OptimalControlBenchmarks not found). The symbols it would import are already in scope inside the module, so the line is simply removed. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * test: isolate root + CorleoneOED QA into canonical test/qa sub-env Move the Aqua code-quality checks for the root Corleone package and the CorleoneOED sublibrary out of the main test target into dedicated test/qa Pkg sub-environments, matching the canonical OrdinaryDiffEq structure (lib/<Name>/test/qa). Each package now has: - test/qa/Project.toml: Aqua + the package (+ in-repo Corleone sibling) + Test, with relative [sources] and [compat] for every dep plus julia = "1.10". - test/qa/qa.jl: the Aqua.test_all testset. - runtests.jl: an activate_qa_env() helper that activates test/qa, develops the package (and sibling) by path so the PR branch code is tested on Julia < 1.11 where [sources] is ignored, then instantiates. The QA branch calls it and then @safetestset includes qa/qa.jl. Aqua (and the vestigial, unused JET entry in the root) are removed from each main Project.toml's [compat]/[extras]/[targets].test so the QA tooling deps no longer participate in the main test resolve. No QA coverage changed: each package still runs exactly Aqua, with identical pass/fail behavior (verified the CorleoneOED qa env resolves and Aqua.test_all produces the same 6-pass/5-fail result as the pristine base, confirming the pre-existing Aqua failures are unchanged by this restructure). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * test: isolate OptimalControlBenchmarks QA into canonical test/qa sub-env Move the Aqua code-quality check for the OptimalControlBenchmarks sublibrary out of the main test target into a dedicated test/qa Pkg sub-environment, matching the canonical OrdinaryDiffEq structure (lib/<Name>/test/qa) and the root + CorleoneOED migration in the preceding commit. - test/qa/Project.toml: Aqua + OptimalControlBenchmarks + in-repo Corleone sibling + Test, with relative [sources] and [compat] for every dep plus julia = "1.10". - test/qa/qa.jl: the Aqua.test_all testset. - runtests.jl: activate_qa_env() activates test/qa, develops the package and the Corleone sibling by path (for Julia < 1.11 where [sources] is ignored), then instantiates; the QA branch calls it and @safetestset includes qa/qa.jl. Aqua is removed from the main Project.toml's [compat]/[extras]/[targets].test so the QA tooling deps no longer participate in the main test resolve. QA coverage is unchanged: the package still runs exactly Aqua. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * test(CorleoneOED): add test_groups.toml pinning Core/QA version matrix Make the centralized SublibraryCI (sublibrary-project-tests.yml@v1) discover this sublibrary's groups explicitly instead of falling back to the default shape. Core runs on [lts, 1, pre]; QA (Aqua) runs on [lts, 1]. Matches the canonical OrdinaryDiffEq.jl per-sublibrary test/test_groups.toml convention. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * test(OptimalControlBenchmarks): add test_groups.toml pinning Core/QA matrix Make the centralized SublibraryCI (sublibrary-project-tests.yml@v1) discover this sublibrary's groups explicitly instead of the default shape. Core runs on [lts, 1, pre]; QA (Aqua) runs on [lts, 1]. Matches the canonical OrdinaryDiffEq.jl per-sublibrary test/test_groups.toml convention. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * ci: align root CI version matrix with canonical group matrix Core runs on [lts, 1, pre]; QA (Aqua) runs on [lts, 1] (drops the redundant 1.11 row and the pre/1.11/lts QA excludes, adding lts to QA). Mirrors the test_groups.toml matrix used by the sublibraries. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * test: canonical group-folder layout for the root package Make the root test suite conform to the OrdinaryDiffEq canonical group-folder model: every test lives in exactly one test/<group>/ folder; no-extra-dep groups run in the light main test env as part of GROUP=All, while dep-adding groups carry their own isolated test/<group>/Project.toml that runtests.jl activates and that the CI matrix runs explicitly. - Move the loose root tests into test/core/ (Core group, light env). - Promote the example scripts (test/examples/) into a dep-adding "Examples" group with test/examples/Project.toml carrying the heavy optimal-control stack (ModelingToolkit, Ipopt/OptimizationMOI, SciMLSensitivity, ForwardDiff, OrdinaryDiffEqBDF) + Corleone via [sources]. - runtests.jl: GROUP=All/Core run the light Core group; Examples and QA each activate their own test/<group> env. - Make the main [extras]/[targets].test LIGHT: drop the heavy test-only deps (now provided by the Examples group env) and their stale [compat] entries. - test/test_groups.toml pins the canonical version matrix: Core/Examples on [lts,1,pre], QA on [lts,1]; CI.yml matrix kept consistent (adds Examples). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Declare Pkg in test deps and group CorleoneOED core tests CorleoneOED and OptimalControlBenchmarks test/runtests.jl both `using Pkg` to activate the isolated QA env, but Pkg was not declared in [extras] or [targets].test. Under Pkg.test the test environment doesn't get Pkg by default, so `using Pkg` failed at load time and blocked the entire sublib test suites before any test ran. Add Pkg to both [extras] and [targets].test. Also move CorleoneOED's Core test files (1d_oed.jl, lotka_oed.jl, lotka_oed_svd.jl) into test/core/ and update the runtests.jl includes, matching the uniform monorepo test layout. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * ci: canonical TagBot thin caller + downgrade skip/version cleanup - TagBot.yml: replace verbose JuliaRegistries/TagBot steps with the centralized SciML/.github tagbot.yml@v1 thin caller, plus a tagbot-subpackages matrix over registered lib sublibraries (only CorleoneOED; OptimalControlBenchmarks is not yet registered). - Downgrade.yml: drop hand-listed stdlib skip (Pkg,TOML) now that the central workflow auto-populates skip; bump julia-version 1.10 -> lts. - DowngradeSublibraries.yml: drop hand-listed skip (stdlibs + Corleone caller pkg) now auto-populated by the central workflow. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…oml) (#81) Replace the hand-maintained group x version matrix in the root CI test job with the thin grouped-tests.yml@v1 caller, which computes the matrix from test/test_groups.toml. The non-default check-bounds: auto and coverage-directories: src inputs are preserved; group-env-name stays the default GROUP (which root test/runtests.jl reads). Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
- Replace RNG with StableRNG - Replace equality check with isapprox
Update tests
Fix dimension error of F_init in edge case
Replace the hand-written GROUP dispatcher in test/runtests.jl with a single
SciMLTesting.run_tests call (explicit-args mode, the monorepo shape). The Core
body @safetestset-includes the existing test/core/ files; Examples and QA become
env-bearing group specs that activate test/examples and test/qa (the v1.2
activate_group_env replicates the old activate_examples_env/activate_qa_env). A
curated all = ["Core"] keeps GROUP="All" running only the light Core group, and
sublib_env = "CORLEONE_TEST_GROUP" + lib_dir keep sublibrary routing semantics.
The explicit sublibrary pre-step (detect_sublibrary_group + the Julia < 1.11
transitive [sources] develop walk + withenv("CORLEONE_TEST_GROUP") Pkg.test) is
preserved verbatim ahead of the run_tests call, so the sublibrary Pkg.test path
is byte-for-byte unchanged. The exact set of tests run under each GROUP value
(All, Core, Examples, QA, and sublibrary names) is unchanged.
Add SciMLTesting to the root test target (keep Pkg + SafeTestsets, since the
sublib pre-step still uses Pkg) and to the examples/qa sub-environments. Widen
SafeTestsets compat to "0.1, 1". test_groups.toml is unchanged.
Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Collaborator
Author
|
@copilot resolve the merge conflicts in this pull request |
|
@AlCap23 I can’t apply these changes because the pull request’s branch is the repository’s default branch, which I’m not allowed to push to directly. You can ask me to create a new pull request with the requested changes instead and I'll open a separate PR on a new branch. |
…nt (#101) PR #100 released parent Corleone v0.0.4 but did not update the sublibraries' Corleone [compat], which still pinned "0.0.3". For pre-1.0 versions the caret range "0.0.3" means [0.0.3, 0.0.4), so the path-sourced parent at 0.0.4 has an empty intersection with that compat. The downgrade-sublibraries lanes (lib/CorleoneOED, lib/OptimalControlBenchmarks) fail during the test-sandbox resolve with: ERROR: LoadError: empty intersection between Corleone@0.0.4 and project compatibility 0.0.3 On Julia 1.10 (lts) [sources] is ignored and the parent is develop'd by path at 0.0.4, so the conflict is unavoidable until compat admits 0.0.4. Also bumps the matching Corleone compat in the QA and examples test sub-projects (which path- source the parent) so the QA/Examples lanes don't inherit the same wall. Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… parent (#106) PRs #104/#105 released parent Corleone v0.0.5 but did not update the sublibraries' / test sub-projects' Corleone [compat], which still pinned "0.0.4". For pre-1.0 versions the caret range "0.0.4" means [0.0.4, 0.0.5), so the path-sourced parent at 0.0.5 ([sources] Corleone = {path = "../.."}) has an empty intersection with that compat. The downgrade-sublibraries lanes (lib/CorleoneOED, lib/OptimalControlBenchmarks) — and the regular Sublibrary CI / QA lanes — fail during the test-sandbox resolve with: ERROR: LoadError: empty intersection between Corleone@0.0.5 and project compatibility 0.0.4 The downgrade root (main) lane is unaffected because the root package does not depend on itself. This mirrors PR #101 (the same 0.0.3 -> 0.0.4 bump after the v0.0.4 parent release). Also bumps the now-stale CorleoneOED self-compat (0.0.4 -> 0.0.5) in lib/CorleoneOED/test/qa/Project.toml, since CorleoneOED was released as v0.0.5 (#105) and is path-sourced there. OptimalControlBenchmarks stays at 0.0.3 (matches its current version). Verified locally on Julia 1.10.11 (lts): Pkg.develop of the path-sourced parent throws the empty-intersection error on the unmodified tree and succeeds (Corleone v0.0.5 accepted) with this change. Ignore until reviewed by @ChrisRackauckas. Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com>
* Fix sublibrary QA (Aqua) and Downgrade CI red lanes
Sublibrary CI was red on both the QA (Aqua.test_all) and Downgrade
lanes for lib/CorleoneOED and lib/OptimalControlBenchmarks.
QA (genuine Aqua violations, fixed at the source, no ignore-lists):
CorleoneOED
- unbound_args: drop the unused `DISCRETE` type param from the two
`update_fim(::OEDLayer{<:Any, SAMPLED, FIXED, ...})` methods in
src/oed.jl, and the unused `SPLIT` param from the two
`update_fim(::MultiExperimentLayer{DISCRETE, FIXED, <:Any, ...})`
methods in src/multiexperiments.jl (first/third positional params are
`<:Any`, so the declared vars never bind).
- ambiguities: add the disambiguating
`get_sampling_sums(!)(::OEDLayer{<:Any, false, <:Any,
<:MultipleShootingLayer}, ..., st::NamedTuple{fields})` methods that
Aqua suggests (SAMPLED=false has no sampling, so `[]`/`nothing`).
- piracy: move the `shooting_constraints(!)(::AbstractVector{
<:Trajectory})` methods out of CorleoneOED into the owning package
Corleone (src/multiple_shooting.jl), next to the single-Trajectory
methods — both the function and `Trajectory` are Corleone's, so the
vector dispatch belongs there, not in a downstream package.
- stale_deps: StableRNGs is used only in test/core, not src -> move it
from [deps] to [extras]+[targets].test (it was silently pulled from
the parent dev tree before).
- deps_compat: add `Pkg = "1"` compat (Pkg is a test extra).
OptimalControlBenchmarks
- stale_deps: remove OptimizationLBFGSB, Ipopt, UnoSolver,
OrdinaryDiffEq, Runic from [deps] (none imported in src; the module
uses OrdinaryDiffEqTsit5 and takes the optimizer as an argument).
Ipopt stays in [extras] as a benchmark-only optimizer.
- deps_compat: add missing [compat] for BenchmarkTools, CairoMakie,
IntervalSets, ModelingToolkit, ModelingToolkitBase, and `Pkg = "1"`.
Downgrade (both sublibs path-source the parent, so they must not declare
a lower floor than the parent for a shared dep):
- SciMLBase "2, 3" -> "2.141.0, 3" (match parent Corleone floor)
- SymbolicIndexingInterface "0.3" -> "0.3.43" (match parent floor)
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
* Fix downgrade dead-ends in sublib compat floors
The sublibrary downgrade lanes still failed after the previous floor
bumps because several direct-dep compat floors were below what the
resolved graph actually needs at min-resolution.
CorleoneOED / OptimalControlBenchmarks:
- Reexport "1.2" -> "1.2.2": the parent Corleone (path-sourced) requires
Reexport >= 1.2.2, but the merged downgrade resolve strips Corleone and
picked Reexport 1.2.0 from the sublib floor. The Pkg.test sandbox then
re-resolves WITH the parent and rejects the pinned 1.2.0 as
Unsatisfiable ("restricted to 1.2.0 by an explicit requirement -- no
versions left"). Matching the parent's floor makes the downgrade pick
1.2.2 up front.
- DocStringExtensions "0.9" -> "0.9.3": same class of latent dead-end
(parent floor is 0.9.3; 0.9.0-0.9.2 exist in the registry).
OptimalControlBenchmarks only:
- ModelingToolkit "11" -> "11.2.0": MTK 11.0.0/11.1.0 call
Base.ispublic unguarded in @import_mtkbase; Base.ispublic only exists
on Julia >= 1.11, so precompile dies on the LTS (1.10) downgrade lane
with "UndefVarError: ispublic not defined". MTK 11.2.0 is the first
release that guards the call with @static if VERSION >= v"1.11".
- Symbolics "7" -> "7.2.0": at floor, ModelingToolkitBase 1.0.0 and
ModelingToolkitTearing 1.0.2 declare no Symbolics lower bound, so the
resolver picks Symbolics 7.1.1. MTKTearing calls
fixpoint_sub(iv, dict, Shift) positionally, but 7.1.1's fixpoint_sub
takes the operator only as a keyword; the positional OP arg was added
in Symbolics 7.2.0. Without the bump, MTK's precompile workload dies
with "MethodError: no method matching fixpoint_sub(..., ::Type{Shift})".
Validated at floor (Julia 1.10, GROUP=Core, the downgrade lane's group):
- CorleoneOED: 1D Example 36/36, Lotka Volterra 125/125, LV SVD 17/17,
tests passed.
- OptimalControlBenchmarks: 12 deps (incl. MTK/MTKBase/Tearing)
precompiled cleanly, tests passed.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
---------
Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com>
* QA: run_qa v1.6 form + ExplicitImports (root + sublibs) Convert the root and both lib/ sublibrary QA environments from the hand-rolled `@testset "Aqua" Aqua.test_all(Mod)` to the SciMLTesting v1.6 `run_qa(Mod; explicit_imports = true, ...)` dispatcher, enabling the six ExplicitImports checks alongside the unchanged Aqua run. Bump SciMLTesting compat to "1.6" per QA env; ExplicitImports is pulled transitively. The sublib [sources]/develop wiring is preserved exactly. Per-env ExplicitImports curation: - Corleone: no_implicit_imports broken (bare-`using` deps, tracked); ignore :ADTypes for via_owners and the deliberate Base/SciML internal names for qualified-accesses-are-public. - CorleoneOED: no_implicit_imports broken (tracked); ignore Base/SciML internals plus Corleone's own unexported helpers for qualified-accesses-are-public. - OptimalControlBenchmarks: allow_unanalyzable (dynamic include in problem_registry.jl) for the implicit/stale checks; ignore :inputs (MTK re-export) and :default_rng/:initialstates. All six EI checks pass. The CorleoneOED and OptimalControlBenchmarks QA lanes are already red on master from genuine pre-existing Aqua failures; this conversion runs the same Aqua.test_all with no new disables and does not mask them. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * QA: sweep redundant public-API EI ignores after SciMLTesting 1.7 SciMLTesting 1.7 runs the two public-API ExplicitImports checks (all_qualified_accesses_are_public / all_explicit_imports_are_public) only on Julia >= 1.11, and several base libs now declare more names public (SciMLBase 3.24, Symbolics 7.28+, SymbolicUtils 4.36, ModelingToolkit 11.29, ArrayInterface 7.26, CommonSolve 0.2.9). Many per-repo public-API ignore entries are now redundant. Emptied both public-API ignore-lists in all three qa.jl files and restored, verified on Julia 1.12 against the registered releases, only the names the public checks still flag as non-public: - root (Corleone): kept 9 (ADTypes/AbstractDEAlgorithm/AbstractDEProblem/ EnsembleAlgorithm/get_colorizers from SciMLBase, AbstractVecOrTuple/Splat from Base, Tunable/canonicalize from SciMLStructures); dropped 10. - lib/CorleoneOED: kept 18 (SciMLBase/SciMLStructures/SymbolicUtils/Symbolics/ ForwardDiff internals + Corleone's own unexported helpers); dropped 6. - lib/OptimalControlBenchmarks: dropped both ignores entirely (inputs, default_rng, initialstates are now all public); kept the via-owners ignore. Other ignores (no_implicit_imports broken-marker, *_via_owners, allow_unanalyzable) left untouched. Verified Julia 1.10 (public checks skipped) and 1.12 (public checks run): ExplicitImports group green-or-broken, 0 EI hard failures, on root + both sublibs. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Checklist
contributor guidelines, in particular the SciML Style Guide and
COLPRAC.
Additional context
Add any other context about the problem here.