Use SciMLTesting v1.1.0 (run_tests harness)#3752
Draft
ChrisRackauckas-Claude wants to merge 1 commit into
Draft
Conversation
Replace the hand-written `if GROUP == ...` dispatcher in test/runtests.jl with a single declarative `SciMLTesting.run_tests` call (v1.1.0). This is a behavior-equivalent refactor: the exact set of tests run under every GROUP value (including bare/All) is unchanged. Key v1.1.0 wiring for this monorepo: - all = [InterfaceI..V, Integrators_I/II, Regression_I/II] — the curated, ordered membership of the "All"/default group. This deliberately EXCLUDES QA, AlgConvergence_*, Downstream, AD, and ODEInterfaceRegression, exactly as the old `GROUP == "All"` branches did (the v1.0.0 fallback would have incorrectly folded QA into All). - umbrellas = Interface => [I..V], Integrators => [I, II], Regression => [I, II] reproduce the old `GROUP == "Interface"/"Integrators"/"Regression"` branches. - sublib_env = "ODEDIFFEQ_TEST_GROUP" + lib_dir = ../lib reproduce the monorepo sublibrary dispatch: the root reads GROUP to pick lib/<sub>, then hands the sub-group off via ODEDIFFEQ_TEST_GROUP. - The Null u0 (VERSION >= 1.11 && isempty(prerelease)) gate and the ODEInterfaceRegression isempty(prerelease) gate are kept as thin guards inside their group thunks (v1.1.0 has no kwarg for these). - AD/Downstream/ODEInterfaceRegression keep their original Pkg.activate/develop/instantiate thunks (not `env =` group specs) so their Julia <1.11 dependency resolution stays byte-for-byte identical. Add SciMLTesting (09d9d899-5365-40a9-917a-5f67fddea283) to [extras], the test target, and [compat] (= "1"). Pkg is retained because the activate_*_env thunks still use it directly. 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.
Use SciMLTesting v1.1.0 (
run_testsharness)Replaces the hand-written
if GROUP == ...dispatcher in roottest/runtests.jlwith a single declarativeSciMLTesting.run_testscall (v1.1.0). Behavior-equivalent refactor: the exact set of tests run under everyGROUPvalue — including bare/All— is unchanged. No test assertions or test logic were modified.Richest-monorepo shape (sublib_env + umbrellas + curated
all)This is the richest conversion shape: a monorepo whose root dispatches both to functional groups and to
lib/<Sublibrary>sub-packages.all=[InterfaceI..V, Integrators_I, Integrators_II, Regression_I, Regression_II]— the precise membership of the oldGROUP == "All"branches, in order. It deliberately excludesQA,AlgConvergence_*,Downstream,AD, andODEInterfaceRegression, none of which the oldAllbranch ran. (The v1.0.0all === nothingfallback would have incorrectly foldedQAintoAll— this is the bug this corrected pass fixes.) There is no rootCorebody, socore = () -> nothingand"Core"is omitted fromall.umbrellas=Interface => [I..V],Integrators => [I, II],Regression => [I, II]— reproduce the oldGROUP == "Interface"/"Integrators"/"Regression"branches (one GROUP triggers several).sublib_env = "ODEDIFFEQ_TEST_GROUP"+lib_dir = ../lib— reproduce the monorepo sublibrary dispatch: the root readsGROUPto picklib/<sub>, thenPkg.tests it with the sub-group handed off viaENV["ODEDIFFEQ_TEST_GROUP"].Null u0test stays gated byVERSION >= v"1.11" && isempty(VERSION.prerelease), andODEInterfaceRegressionstays gated byisempty(VERSION.prerelease). The vestigialis_APPVEYORguard is also preserved.Pkg.activate/develop/instantiatethunks (notenv =group specs) so their Julia <1.11 dependency resolution stays byte-for-byte identical (theenv =path would additionally develop the sub-env's[sources]on 1.10, a behavior change on theltsmatrix cell).Deps
SciMLTesting(09d9d899-5365-40a9-917a-5f67fddea283) to[extras], thetesttarget, and[compat](= "1").Pkgis retained in the test deps because theactivate_*_envthunks still call it directly.test/qa/Project.tomlexists (QA runsExplicitImportsin the root test env), so nothing was added there.Verification
TOML.parsefileonProject.toml;Meta.parseallonruntests.jlandqa/qa_tests.jl— all clean, no conflict markers.run_testswith this exactgroups/all/umbrellas/sublib_env/lib_dirconfig under everyGROUPvalue and confirmed the set of group keys run matches the old dispatcher for all of:All,InterfaceI..V,Interface,Integrators_I/II,Integrators,Regression_I/II,Regression,AlgConvergence_I/III,Downstream,AD,ODEInterfaceRegression,QA,Core,AlgConvergence_II,ModelingToolkit. Sublibrary routing was exercised end-to-end (Pkg.test(OrdinaryDiffEqTsit5)passed;OrdinaryDiffEqBDF_QAcorrectly handedQAoff viaODEDIFFEQ_TEST_GROUP).Draft. Ignore until reviewed by @ChrisRackauckas.
🤖 Generated with Claude Code