Thread JAX build matrix through setup#6270
Conversation
Mirror the PyTorch release workflow toggle for JAX so manual multi-arch dev releases can skip JAX wheels by default while workflow_call release runs continue to build them. Add a small JAX release matrix script so JAX can share the top-level python_version narrowing behavior. Also add focused tests for the JAX matrix script and current PyTorch release matrix behavior. Testing: - D:/projects/TheRock/.venv/Scripts/python.exe -m pytest github_actions/tests/configure_jax_release_matrix_test.py github_actions/tests/configure_pytorch_release_matrix_test.py - pre-commit run --files .github/workflows/multi_arch_release.yml .github/workflows/multi_arch_release_linux.yml .github/workflows/multi_arch_release_linux_jax_wheels.yml build_tools/github_actions/configure_jax_release_matrix.py build_tools/github_actions/configure_pytorch_release_matrix.py build_tools/github_actions/tests/configure_jax_release_matrix_test.py build_tools/github_actions/tests/configure_pytorch_release_matrix_test.py Assisted-by: Codex
Avoid exhaustively asserting the expanded default matrix. Check that the default matrix spans multiple Python versions and JAX refs, and that explicit Python versions narrow every generated row. Testing: - D:/projects/TheRock/.venv/Scripts/python.exe -m pytest github_actions/tests/configure_jax_release_matrix_test.py - D:/projects/TheRock/.venv/Scripts/python.exe -m pytest github_actions/tests/configure_pytorch_release_matrix_test.py - pre-commit run --files build_tools/github_actions/tests/configure_jax_release_matrix_test.py Assisted-by: Codex
Add build_jax to the multi-arch setup configuration path so CI can report that JAX is skipped while release workflows continue to report the JAX matrix they plan to build. CI and ASAN callers keep JAX disabled. The main release workflow passes its optional JAX toggle into setup, and Linux release dispatch also checks the setup-generated build_config flag. Testing: - D:/projects/TheRock/.venv/Scripts/python.exe -m pytest github_actions/tests/configure_multi_arch_ci_test.py github_actions/tests/configure_jax_release_matrix_test.py - D:/projects/TheRock/.venv/Scripts/python.exe -m pytest github_actions/tests/workflow_dispatch_inputs_test.py - pre-commit run --files .github/workflows/setup_multi_arch.yml .github/workflows/multi_arch_ci.yml .github/workflows/multi_arch_ci_asan.yml .github/workflows/multi_arch_release.yml .github/workflows/multi_arch_release_asan.yml .github/workflows/multi_arch_release_linux.yml build_tools/github_actions/configure_multi_arch_ci.py build_tools/github_actions/configure_multi_arch_ci_summary.py build_tools/github_actions/tests/configure_multi_arch_ci_test.py Assisted-by: Codex
erman-gurses
left a comment
There was a problem hiding this comment.
LGTM - should we also test it for the true case just in case?
|
(Note that the base branch for this PR is #6117, which is also up for review still) |
Where specifically? I'm testing both this and #6117 at around the same time and I don't want to trigger too many full release builds. I think the main risk would be some of the default values not getting set or used as expected, which could cause jax builds to be skipped or enabled where we don't want them to be. I hope that the test workflow runs I've triggered already have exercised the rest of the plumbing sufficiently. |
I forgot about #6117 for a second - reviewing it. |
❌ PR Check — Action Required
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
🚫 Please fix the failed policies before requesting reviews. The following policy checks failed:
The |
Motivation
Progress on #5634 and #6218.
This builds on #6117 to provide the JAX equivalent to #6082. Now the dynamic matrix of JAX builds to run will be generated at the start of CI and release pipelines during "setup" / "configure CI" and a table will be included in the summary:

Technical Details
The new
build_jaxoption now has these settings:build_jaxvaluemulti_arch_ci.ymlfalsecan later be enabled (opt-in, automatic based on files edited, etc.)
multi_arch_ci_asan.ymlfalsemulti_arch_release.ymlinputs.build_jax(default
true)multi_arch_release_asan.ymlfalseTest Plan
Submission Checklist