Migrate to SciMLTesting v1.2 (off ReTestItems)#70
Merged
ChrisRackauckas merged 1 commit intoJun 15, 2026
Conversation
Replace the ReTestItems-based test/runtests.jl (GROUP -> tag dispatch over @testitem blocks) with the SciMLTesting v1.2 folder-discovery model: * test/runtests.jl is now `using SciMLTesting; run_tests()`. * @testitem blocks become plain self-contained @testset files placed by group: Core lane stays at top-level test/*.jl (native line search custom-optimizer + Newton-Raphson + Strong Wolfe edge cases), the LineSearchesJL lane moves to test/linesearchesjl/, and the QA (ExplicitImports) lane moves to test/qa/ with its own sub-env Project.toml. * The @testsetup modules (CustomOptimizer / RootFinding) are inlined into each file that uses them so every file runs self-contained in its own @safetestset. * test_groups.toml keeps the same CI matrix cells (Core, LineSearchesJL, QA); QA gets in_all = false for clarity. * Root Project.toml drops ReTestItems/Hwloc/InteractiveUtils and the unused NonlinearProblemLibrary, moves ExplicitImports into the qa sub-env, and adds SciMLTesting + SafeTestsets to [extras]/[compat]/ [targets].test. The separate Enzyme CI job (test/enzyme/, run directly via its own Project.toml, outside the GROUP mechanism) is unchanged. Verified locally on Julia 1.11: GROUP=Core (144+85), GROUP=LineSearchesJL (96+80), and GROUP=QA (2) all pass. Co-Authored-By: Chris Rackauckas <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.
Migrates the test suite off ReTestItems to the SciMLTesting v1.2 folder-discovery model.
Why
ReTestItems parallelizes at the wrong level for SciML (we parallelize at the CI matrix level per GROUP), breaks on new Julia releases, and causes upgrade friction. SciMLTesting's folder-discovery replaces the
@testitem+ReTestItems.runtests(...; tags, nworkers)machinery with a declarativerun_tests()that maps each GROUP to a folder of plain@testsetfiles, each run in its own@safetestset.What changed
test/runtests.jlis now justusing SciMLTesting; run_tests().@testitemblocks converted to plain self-contained@testsetfiles and placed by group:test/*.jl): native line search custom-optimizer + Newton-Raphson + Strong Wolfe edge cases.test/linesearchesjl/): LineSearches.jl extension custom-optimizer + Newton-Raphson.test/qa/): ExplicitImports, with its own sub-envProject.toml.@testsetupmodules (CustomOptimizer/RootFinding) are inlined into each file that uses them so every file is self-contained.test/test_groups.tomlkeeps the same CI matrix cells (Core,LineSearchesJL,QA);QAgetsin_all = falsefor clarity.Project.toml: dropsReTestItems,Hwloc,InteractiveUtils, and the unusedNonlinearProblemLibrary; movesExplicitImportsinto theqasub-env; addsSciMLTesting+SafeTestsetsto[extras]/[compat]/[targets].test.test/enzyme/, run directly via its ownProject.tomloutside the GROUP mechanism) is unchanged.This is behavior-preserving: the same tests run under each GROUP after migration; no assertions were altered.
Verification (local, Julia 1.11)
GROUP=Core:Core/custom_optimizer_tests.jl144/144,Core/root_finding_tests.jl85/85 — passed.GROUP=LineSearchesJL:custom_optimizer_tests.jl96/96,root_finding_tests.jl80/80 — passed.GROUP=QA:explicit_imports_test.jl2/2 — passed.Ignore until reviewed by @ChrisRackauckas.
🤖 Generated with Claude Code