Repository navigation
ci: split AD test group into AD and ADBatch - #375
Merged
ChrisRackauckas merged 1 commit intoOct 4, 2026
Merged
Conversation
The AD lane was ~76 minutes in CI; OOP+IIP and BatchIntegralFunction cases are each about half that, so move batch cases into ADBatch (same LTS-only matrix) to parallelize without changing assertions. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Cursor Agent <noreply@cursor.com> Agent-Harness: Cursor Agent CLI 2026.09.26-dd393fe Agent-Model: auto Agent-Session: local session, transcript at /home/crackauc/sandbox/goals/qa-hygiene/jobs/integrals-ad-split/log.txt on amdci2
ChrisRackauckas
marked this pull request as ready for review
October 4, 2026 14:20
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.
Summary
CI's AD group was taking ~76 minutes while other groups finish in 5–17 minutes. Local LTS timings showed
derivative_tests.jldominated (~105 min wall) with OOP+IIP (~53 min) and BatchIntegralFunction cases (~53 min) nearly equal, so this splits them intoADandADBatch(both stillversions = ["lts"]) without changing any assertions.Shared setup lives in
test/shared/ad_derivative_setup.jl(not a group folder).nested_ad_tests.jlstays inAD.Verification
Per-file LTS timings (AD env,
julia +lts):nested_ad_tests.jl: WALL_SECONDS=199.26 (Pass 6)derivative_tests.jl(pre-split): WALL_SECONDS=6325.04 (Pass 2005, Broken 1176)Section timeline (UTC) for the pre-split file supported an OOP+IIP vs Batch split.
Union check: SciMLTesting discovery runs
AD/{derivative_tests,nested_ad_tests}.jlandADBatch/derivative_batch_tests.jl;@info/@testsetlabels match masterderivative_tests.jl; pass+broken counts 1285+720=2005 and 744+432=1176 match the pre-split file.Not verified
GROUP=All/ Core / QA after this changePlease ignore this draft until reviewed by @ChrisRackauckas.
Risk assessment
ADBatchon LTS).GROUP=ADandGROUP=ADBatchPkg.test()both passed; assertion counts union to the original AD file.Harness: Cursor Agent CLI 2026.09.26-dd393fe; model: auto; transcript: /home/crackauc/sandbox/goals/qa-hygiene/jobs/integrals-ad-split/log.txt
Made with Cursor
Risk assessment
src/orProject.tomlchanges, so package users are unaffected. The only CI change is one new LTS-only matrix row,ADBatch. One small maintenance cost:test/ADBatch/Project.tomlis a byte-for-byte copy oftest/AD/Project.toml, so compat bumps now have to be made in both files.ef9a77abpass (merge ref576c36fagainst base01dc4d50, which is still master HEAD). There are no failing checks, so nothing is a regression.Tests - AD (Julia lts)taking 76 min.Tests - AD (Julia lts)passes in 23m29s withderivative_tests.jlat Pass 1285 / Broken 744 andnested_ad_tests.jlat Pass 6.Tests - ADBatch (Julia lts)passes in 18m38s with Pass 720 / Broken 432.test/shared/ad_derivative_setup.jl, and the removed batch loops are identical totest/ADBatch/derivative_batch_tests.jl. No assertions, tolerances, or@test_brokenlines changed.test/shared/is not picked up as a test file or group.Core (julia pre)"passed" in 32s because the shared workflow skips the pre lane when the Julia build is not a release candidate (1.13.1 here). The PR has nothing to do with that skip.Mooncake.rdata_typeandIntegrals.ReCallVJP/MooncakeVJPwere already used in the test code and were only moved).ADBatch/Project.toml.🤖 Risk assessment posted by an AI agent (fleet master) — harness: Devin CLI (Mac) / fusion-claude-opus-5-5-high-sidekick-swe-2-medium; dispatched by Devin CLI 3000.11.3 (Mac) fleet-master caretaker, model Fusion (claude-opus-5-5 medium + swe-2 medium)
Conversation: local transcript ~/.local/share/devin/cli/transcripts/speckle-whale.json (Chris's Mac)