Commit bdaa669
Uniformize monorepo structure to OrdinaryDiffEq.jl canonical style (SciML#1220)
* Uniformize monorepo structure to OrdinaryDiffEq.jl canonical style
Align Optimization.jl with the canonical OrdinaryDiffEq.jl monorepo layout:
- Delete lib/OptimizationBase/test/Project.toml; fold its [deps] into the
package's [extras] + [targets].test and move its [sources]
(OptimizationLBFGSB, OptimizationManopt) into the main [sources] (now
../OptimizationLBFGSB / ../OptimizationManopt). Add the corresponding
[compat] entries. No test/Project.toml remains anywhere (the kept
test/downstream/Project.toml is a per-group sub-environment, matching the
canonical pattern for special test groups).
- Thread OPTIMIZATION_TEST_GROUP consistently: every lib/<X>/test/runtests.jl
is now a SafeTestsets group dispatcher that reads
get(ENV, "OPTIMIZATION_TEST_GROUP", "ALL") and @safetestset-includes the
package's functional suite (moved to core_tests.jl) under the Core/ALL
group. SafeTestsets added to each sublib's [extras]/[compat]/[targets].test.
- Rewrite root test/runtests.jl as the canonical _detect_sublibrary_group
dispatcher (handles bare sublib names and <sublib>_<group> suffixes,
transitively develops a sublib's [sources] on Julia < 1.11, sets
OPTIMIZATION_TEST_GROUP, and Pkg.tests the sublib; otherwise runs the
root's own Core/GPU @safetestset groups). Fixes the previously-undefined
activate_downstream_env in the GPU branch.
- SublibraryCI.yml: pass group-env-name=OPTIMIZATION_TEST_GROUP and
check-bounds=auto to sublibrary-project-tests.yml@v1.
- DowngradeSublibraries.yml: pass group-env-name/group-env-value=Core and
extend the skip list with the locally-developed in-repo sibling packages.
No allow-reresolve input (removed in v1).
- Add a Core-only test/test_groups.toml to every sublib so the matrix
discovery declares the real group (Core on [lts,1.11,1,pre]) and does not
spawn a phantom default QA-on-[1] job (no sublib has a QA suite).
Root [sources] intentionally lists only OptimizationBase (the sole in-repo
[deps] dependency) plus the four solver sublibraries used by the root test
target; the root package re-exports only OptimizationBase, so adding the
remaining sublibraries would inject false dependencies and break the true
[sources] path graph.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Use canonical Title-case "All" for sublib test-group names
Match OrdinaryDiffEq.jl canonical casing: the sublibrary test/runtests.jl
files defaulted to and compared against the all-caps "ALL" group name.
Capitalize to Title-case "All" so the group-name strings line up with the
centralized matrix convention ("Core"/"QA"/test_groups.toml keys passed
verbatim, capitalized). Casing-only change; dispatch logic, env var names,
and fallback chains are unchanged.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* ci: canonicalize TagBot/Documentation workflows, bump downgrade Julia to 1.11
- TagBot.yml: add top-level permissions block, workflow_dispatch lookback
input, root TagBot-Optimization job, and a TagBot-Subpackages matrix
(fail-fast: false) over the 26 registered lib/<Name> sublibraries, each
calling JuliaRegistries/TagBot@v1 with subdir: lib/<Name>. Matches
OrdinaryDiffEq.jl's canonical TagBot structure. OptimizationQuadDIRECT is
omitted since it is not registered in the General registry.
- Documentation.yml: convert from the old inline build/deploy form to the
central SciML/.github documentation.yml@v1 caller. Sublibraries resolve
via the existing docs/Project.toml [sources] entries.
- Downgrade.yml / DowngradeSublibraries.yml: set julia-version to 1.11.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs: add component READMEs to all sublibraries missing one
Add lib/<Name>/README.md to the 26 sublibraries that lacked one, using the
canonical OrdinaryDiffEq.jl sublibrary README template: the standard SciML
badge block (Zulip, Global Docs, ColPrac, SciML Code Style) plus the
"component package of Optimization.jl in the SciML ecosystem" wording with a
one-line description of each package's role. SimpleOptimization already had a
README and is left unchanged.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* chore: add canonical .codecov.yml and rename LICENSE to LICENSE.md
Match OrdinaryDiffEq.jl's canonical monorepo layout:
- Add .codecov.yml with `comment: false` to disable Codecov PR comments.
- Rename the root LICENSE to LICENSE.md (content preserved via git mv).
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* test: isolate root QA into canonical test/qa sub-environment
Move the root package's Quality Assurance tests (Aqua + JET) into an
isolated test/qa/ Project so the QA tooling dependencies no longer enter
the main test target's resolve, matching the canonical OrdinaryDiffEq
lib/<Name>/test/qa/ structure.
- Add test/qa/Project.toml: deps Aqua, JET, Optimization, Test;
[sources] Optimization = {path = "../.."}; [compat] for each + julia 1.10.
- Move test/qa.jl -> test/qa/qa.jl (Aqua + JET tests preserved verbatim;
add `using Test` so the file is self-contained in the isolated env).
- runtests.jl: add activate_qa_env() (Pkg.activate(test/qa) + instantiate,
plus develop-by-path on Julia < 1.11 where [sources] is ignored). The QA
safetestset now runs last in the Core group after activating the qa env,
so the main-environment tests above are unaffected. CI dispatches only
GROUP=Core, so QA continues to run exactly as before.
- Remove Aqua and JET from the main Project.toml [extras], [targets].test,
and [compat]; they now live solely in the qa environment.
Verified on Julia 1.11 in an isolated depot: the qa env instantiates and
resolves (Aqua 0.8.16, JET 0.9.20, Optimization 5.6.1 via ../.., Test
1.11.0); the Aqua testset runs green (10/10 pass). No sublibrary runs QA
today (the three that list Aqua in [extras] never call it), so per the
preserve-existing-behavior rule none were given a qa env.
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* test: align sublibrary test_groups.toml version matrix to canonical base set
Set every lib/*/test/test_groups.toml [Core] group to the canonical
base/standard version matrix ["lts", "1", "pre"], dropping the redundant
"1.11" entry so the standard test matrix matches the uniform monorepo
contract (base = lts/1/pre).
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* test: split root QA into its own dep-adding group (excluded from Core)
Make the root package follow the canonical group-folder contract:
- runtests.jl: QA (Aqua + JET, isolated test/qa environment) was running
inside the Core/All block, which both pulled the isolated qa env into the
base run and ran QA on the Core version matrix. Move it into its own
`GROUP == "QA"` branch so the base/Core run stays in the main test env and
QA runs only when its group is selected.
- Add root test/test_groups.toml declaring Core (lts/1/pre), QA (lts/1),
and GPU (1, self-hosted) with the canonical version matrix.
- CI.yml: run Core on [lts, 1, pre] and QA on [lts, 1] via a group/version
matrix instead of a single hardcoded Core/[1.11, lts] job.
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 cleanup
Convert TagBot.yml from the inline JuliaRegistries/TagBot form to the
canonical SciML/.github tagbot.yml@v1 thin caller, with a
tagbot-subpackages matrix over the 26 registered lib/* sublibraries
(OptimizationQuadDIRECT excluded: not registered in General).
Reduce the downgrade callers' skip lists to only the genuine non-stdlib,
non-sublib extra (SymbolicAnalysis); stdlibs and in-repo sublibraries are
now auto-populated by the centralized downgrade workflows. Move
julia-version from 1.11 to lts (the minimum-supported floor).
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>1 parent 06fe912 commit bdaa669
148 files changed
Lines changed: 5373 additions & 4749 deletions
File tree
- .github/workflows
- lib
- OptimizationAuglag
- test
- OptimizationBBO
- test
- OptimizationBase
- test
- OptimizationCMAEvolutionStrategy
- test
- OptimizationEvolutionary
- test
- OptimizationGCMAES
- test
- OptimizationIpopt
- test
- OptimizationLBFGSB
- test
- OptimizationMOI
- test
- OptimizationMadNLP
- test
- OptimizationManopt
- test
- OptimizationMetaheuristics
- test
- OptimizationMultistartOptimization
- test
- OptimizationNLPModels
- test
- OptimizationNLopt
- test
- OptimizationNOMAD
- test
- OptimizationODE
- test
- OptimizationOptimJL
- test
- OptimizationOptimisers
- test
- OptimizationPRIMA
- test
- OptimizationPolyalgorithms
- test
- OptimizationPyCMA
- test
- OptimizationQuadDIRECT
- test
- OptimizationSciPy
- test
- OptimizationSophia
- test
- OptimizationSpeedMapping
- test
- SimpleOptimization
- test
- test
- qa
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
| 23 | + | |
22 | 24 | | |
23 | | - | |
24 | 25 | | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
25 | 33 | | |
26 | 34 | | |
27 | 35 | | |
28 | | - | |
| 36 | + | |
29 | 37 | | |
30 | 38 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | 2 | | |
4 | 3 | | |
5 | 4 | | |
6 | 5 | | |
7 | | - | |
| 6 | + | |
8 | 7 | | |
9 | | - | |
10 | 8 | | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
22 | | - | |
23 | | - | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
22 | 25 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | | - | |
| 4 | + | |
6 | 5 | | |
7 | 6 | | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
File renamed without changes.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
38 | 37 | | |
39 | 38 | | |
40 | 39 | | |
| |||
48 | 47 | | |
49 | 48 | | |
50 | 49 | | |
51 | | - | |
52 | 50 | | |
53 | 51 | | |
54 | 52 | | |
| |||
83 | 81 | | |
84 | 82 | | |
85 | 83 | | |
86 | | - | |
87 | 84 | | |
88 | 85 | | |
89 | 86 | | |
| |||
94 | 91 | | |
95 | 92 | | |
96 | 93 | | |
97 | | - | |
98 | 94 | | |
99 | 95 | | |
100 | 96 | | |
| |||
120 | 116 | | |
121 | 117 | | |
122 | 118 | | |
123 | | - | |
| 119 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
13 | 14 | | |
14 | 15 | | |
15 | 16 | | |
| |||
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
| 25 | + | |
24 | 26 | | |
25 | 27 | | |
26 | 28 | | |
| |||
32 | 34 | | |
33 | 35 | | |
34 | 36 | | |
35 | | - | |
| 37 | + | |
0 commit comments