Repository navigation
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Run the tests with ParallelTestRunner.jl, with one folder per group under test/, and use the shared QuantumKitHubActions TestGroups workflow in CI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lkdvos
marked this pull request as ready for review
October 29, 2026 14:51
This branch has not been deployed
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.
Moves CI to the shared
TestGroups.ymlworkflow, following the organization-wide CI policy, which requires splitting the test suite into groups run by ParallelTestRunner.jl.Test suite
The test files move into one folder per group, which CI runs as separate jobs; within a group, ParallelTestRunner runs the files in parallel worker processes:
coretensoropt,auxiliary,macro_kwargs,methods,tensor,allocator,polynomials,aquaadchainrules(wasad.jl),mooncake,enzymeextensionsbumper(wasbutensor.jl),tblis,tblis_unsupported(Windows only),cutensor,gpuarrays(wasgpu.jl)Locally, a single group or file can be run with e.g.
Pkg.test(test_args = ["core"])or["ad/enzyme"].What had to change because every test file now runs in its own sandbox module, on workers that are reused between files:
runtests.jl(precision,statementlinenumbernodes,is_buildkite, the seed) are set up in every sandbox throughinit_code.@cutensor/@butensordependency checks expand the macro in@__MODULE__instead ofMain, and run on a fresh worker, since they require cuTENSOR/Bumper not to be loaded yet. This replaces the "should not be loaded before this point" ordering.gpuarrays.jlnow loads cuTENSOR itself: itsCuArraycontractions relied oncutensor.jlhaving loaded it earlier in the same process.runtests.jl, and are applied regardless of which group is selected.ParallelTestRunneris added as a test dependency.CI
minand1. As an Enzyme-heavy package, macOS and Windows (Julia1only) also run on PRs, but only once all ubuntu jobs passed. Other packages only run them on the default branch.1(fast); marking the PR ready runs the full matrix.1.ci-successcheck.To check
arch: x64, somacos-latest(Apple Silicon) ran x64 Julia under Rosetta. The shared workflow uses the native architecture, so macOS now tests aarch64; this PR's own macOS jobs will show whether e.g. TBLIS works there.adjob is its first run there.Pkg.test()without arguments, which now runsextensions/cutensorandextensions/gpuarraysthrough ParallelTestRunner.Testing
All three groups pass locally on Linux with Julia 1.13, including the CUDA tests on a local GPU:
core(2167 pass, 4 broken),extensions(808 pass, 2 broken),ad(25019 pass). The Windows-onlytblis_unsupportedtest and the macOS/Windows jobs are only covered by this PR's CI.🤖 Generated with Claude Code