Skip to content

Migrate to SciMLTesting v1.2 (off ReTestItems)#70

Merged
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:sciml-testing-rollout
Jun 15, 2026
Merged

Migrate to SciMLTesting v1.2 (off ReTestItems)#70
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:sciml-testing-rollout

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

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 declarative run_tests() that maps each GROUP to a folder of plain @testset files, each run in its own @safetestset.

What changed

  • test/runtests.jl is now just using SciMLTesting; run_tests().
  • @testitem blocks converted to plain self-contained @testset files and placed by group:
    • Core (top-level test/*.jl): native line search custom-optimizer + Newton-Raphson + Strong Wolfe edge cases.
    • LineSearchesJL (test/linesearchesjl/): LineSearches.jl extension custom-optimizer + Newton-Raphson.
    • QA (test/qa/): ExplicitImports, with its own sub-env Project.toml.
  • The shared @testsetup modules (CustomOptimizer / RootFinding) are inlined into each file that uses them so every file is self-contained.
  • test/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; 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.

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.jl 144/144, Core/root_finding_tests.jl 85/85 — passed.
  • GROUP=LineSearchesJL: custom_optimizer_tests.jl 96/96, root_finding_tests.jl 80/80 — passed.
  • GROUP=QA: explicit_imports_test.jl 2/2 — passed.

Ignore until reviewed by @ChrisRackauckas.

🤖 Generated with Claude Code

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>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 15, 2026 02:14
@ChrisRackauckas ChrisRackauckas merged commit 758931b into SciML:main Jun 15, 2026
7 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