Repository navigation
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Statistics is no longer a hard dependency: it was only needed to load StaticArraysStatisticsExt on Julia versions without package extensions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each test file now runs in its own module on a pool of worker processes, with only StaticArrays, Test and the helpers in testutil.jl shared; files load any other packages they use themselves. Tests are discovered automatically, which also enables the previously unused test/util.jl. Since a single CI job now runs the whole suite in parallel, the group-A/group-B split of the x86 jobs is removed, and superseded CI runs on PRs are cancelled. Fixes JuliaArrays#1362 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
macOS runners are Apple Silicon, so x64 Julia ran under Rosetta. setup-julia v3 uses the runner's architecture by default. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Among others, this keeps ParallelTestRunner's history of test durations (stored in a scratchspace), which it uses to start slow tests first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Test workers stay below 1 GiB of RSS, whereas ParallelTestRunner assumes 2 GiB per worker by default, which limited CI jobs (e.g. on the macOS runners) to fewer workers than CPU threads. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This reverts commit b1c6acb. The premise was wrong: on CI (with coverage) test workers reach 1.5-2.7 GB of RSS. Use ParallelTestRunner's default instead, which accounts for the available memory (e.g., on the macOS runners). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On the macOS runners, ParallelTestRunner's default number of workers, which is based on the reported available memory, is one. Two workers roughly halve the test time while leaving some memory headroom. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Fixes #1362.
The test suite takes about 30 min per CI job, and each push started 21 test jobs, which ties up the organisation's shared CI runners. This PR runs the test files in parallel with ParallelTestRunner.jl and removes the
group-A/group-Bsplit of the x86 jobs. Locally (M2), the full suite now takes about 3.5 min on Julia 1.10 and 1.13.ParallelTestRunner requires Julia ≥ 1.10, so this PR also raises the minimum supported Julia version. The PR is split into six commits (plus a commit setting
memory_per_workerand its revert):julia = "1.10"compat, version bumped to 1.10.0, CI and docs useltsinstead of1.6.VERSIONbranches that are now dead insrc/andtest/, and replaces@_inline_metawith@inline. Statistics is removed from[deps]: it was only needed to loadStaticArraysStatisticsExton Julia versions without package extensions.test/testutil.jlare shared; the files load the other packages they use themselves.check_bounds_no.jlruns on a dedicated worker started with--check-bounds=no(instead of a separaterun(...)), so its results show up in the summary.setup-julia@v3, which installs Julia for the runner's own architecture by default.julia-actions/cache. Among others, this keeps ParallelTestRunner's history of test durations (stored in a scratchspace), which it uses to start the slowest tests first.--jobs=2on macOS as a compromise: in a CI run with 3 workers, each test file took ~1.3x longer than with a single worker, without a noticeable increase in GC time, and with 2 workers the memory usage should be lower.Changes to be aware of
StaticArraysStatisticsExtis loaded only when Statistics is loaded.Pkg.test("StaticArrays"; test_args=["SVector", "MVector"])still works, but names are matched case-sensitively by prefix (previously: case-insensitive exact matches).Random.seed!(1)instead ofRandom.seed!(42). No test was affected.test/util.jl, which was never run before, is now part of the test suite. One outdated test in it (constructing aSizedMatrix{2,3}from a 3×2 matrix) was fixed.🤖 Generated with Claude Code