Skip to content

Roll out SciMLTesting.jl: replace copied test-harness boilerplate across SciML repos #1

Description

@ChrisRackauckas-Claude

Roll out SciMLTesting.jl across SciML packages

SciMLTesting.jl is a new, lightweight package that holds the shared test-harness helpers that are currently copy-pasted into every SciML monorepo's runtests.jl. The goal of this issue is to track converting repos to depend on it instead of duplicating the boilerplate.

What it is

Exported API (replaces the copied boilerplate)

Helper Replaces
current_group(; env="GROUP", default="All") const GROUP = get(ENV, "GROUP", "All")
activate_group_env(group_dir; parent=…, develop=true, instantiate=true) the copied activate_qa_env / activate_examples_env / activate_downstream_env (parent accepts a path or an iterable for monorepo sublibs)
run_qa(pkg; Aqua=…, JET=…, aqua=true, jet=false, …) the copied Aqua.test_all / JET.test_package QA-group body
detect_sublibrary_group(group, lib_dir; default_group="Core")(sublibrary, test_group) the copied _detect_sublibrary_group monorepo dispatcher

Rollout — what needs to be done

Once #157424 merges and v0.1.0 is tagged:

  • Add SciMLTesting to each target repo's [extras] + [targets].test (and sublib [extras]/[targets].test for monorepos).
  • Replace the copied boilerplate in test/runtests.jl (and lib/*/test/runtests.jl) with using SciMLTesting + the four calls.
  • OrdinaryDiffEq.jl first as the reference conversion, then the other 10 canonicalized monorepos (BoundaryValueDiffEq, Corleone, DataDrivenDiffEq, DiffEqProblemLibrary, LinearSolve, NeuralLyapunov, NonlinearSolve, Optimization, OptimalUncertaintyQuantification, RecursiveArrayTools), then standalone packages as convenient.
  • One draft PR per repo, static-verified (don't run full suites), marked ignore-until-reviewed.

Known non-goal / follow-up

  • The Julia-<1.11 transitive [sources] develop walk was intentionally left per-repo (it's repo-shaped). If we want it shared too, it could become an optional develop_sources!(dir) helper in a later SciMLTesting minor.

Ignore until reviewed by @ChrisRackauckas.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions