Repository navigation
ci: pin jax 0.12.0 in test matrix; add jax 0.12 compatibility audit - #243
Conversation
Reviewer's GuideThe PR pins JAX 0.12.0 in the CI matrix so it remains tested independently of the rolling latest version, and adds an implementation-focused audit documenting full-suite, slow/multi-device, import-warning, interoperability, and targeted breaking-change validation. The audit concludes that brainstate is compatible without source changes and identifies a pre-existing generator PyTree deprecation warning for future follow-up. Flow diagram for JAX 0.12 compatibility validationflowchart LR
Matrix[JAX CI matrix] --> JAX12[JAX 0.12.0 test leg]
JAX12 --> Import[Import with deprecation warnings as errors]
JAX12 --> Suite[Full test suite]
JAX12 --> Slow[Slow tests with forced host devices]
JAX12 --> Probes[Targeted breaking-change probes]
Import --> Compatible[Compatibility confirmed]
Suite --> Compatible
Slow --> Compatible
Probes --> Compatible
Compatible --> Audit[Compatibility audit document]
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
97d3e19 to
b109d86
Compare
There was a problem hiding this comment.
Hey - I've found 1 issue
Prompt for AI Agents
Please address the comments from this code review:
## Individual Comments
### Comment 1
<location path="doc/specs/jax-0.12-compat.md" line_range="20" />
<code_context>
+## Findings
+
+**No incompatibilities.** On jax 0.12.0, `import brainstate` is clean under
+`-W error::DeprecationWarning`, and the suite passes: 5314 passed / 75 skipped by default,
+5333 passed / 56 skipped with slow + 8 devices. No `brainstate/` change is needed.
+
</code_context>
<issue_to_address>
**Compatibility test totals conflict**
When readers compare the audit with the PR description, the audit reports 5,314 passed / 75 skipped by default and 5,333 / 56 with slow tests and 8 devices, while the PR description reports 5,323 passed with CI dependencies. The reports do not say which run the PR total represents, so readers cannot verify the compatibility claim.
Label the exact test configuration behind each total in the audit and PR description, and reconcile the totals for matching runs.
</issue_to_address>| ## Findings | ||
|
|
||
| **No incompatibilities.** On jax 0.12.0, `import brainstate` is clean under | ||
| `-W error::DeprecationWarning`, and the suite passes: 5314 passed / 75 skipped by default, |
There was a problem hiding this comment.
⚪ Low · Compatibility test totals conflict
When readers compare the audit with the PR description, the audit reports 5,314 passed / 75 skipped by default and 5,333 / 56 with slow tests and 8 devices, while the PR description reports 5,323 passed with CI dependencies. The reports do not say which run the PR total represents, so readers cannot verify the compatibility claim.
Label the exact test configuration behind each total in the audit and PR description, and reconcile the totals for matching runs.
Prompt for AI agents
In `doc/specs/jax-0.12-compat.md` at line 20:
**Compatibility test totals conflict**
When readers compare the audit with the PR description, the audit reports 5,314 passed / 75 skipped by default and 5,333 / 56 with slow tests and 8 devices, while the PR description reports 5,323 passed with CI dependencies. The reports do not say which run the PR total represents, so readers cannot verify the compatibility claim.
Label the exact test configuration behind each total in the audit and PR description, and reconcile the totals for matching runs.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Summary
"0.12.0"to thejax-versionCI matrix, so 0.12 stays tested after the latest leg moves to 0.13.doc/specs/jax-0.12-compat.md, which records the jax 0.11.2 / 0.12.0 compatibility audit.Findings
brainstate already works with jax 0.12.0, and no library change is needed:
import brainstateis clean with-W error::DeprecationWarning.requirements-dev.txt): 5323 passed, 0 failed.custom_vjpundervmap(nn.Embedding), duplicateRefs inremat,multinomialshapes, andjit(inline=True). They behave the same on 0.11.1 and 0.12.0.One follow-up that is not a 0.12 regression:
transform/_debug_test.pytriggers jax's "generator treated as a PyTree leaf" DeprecationWarning. It also happens on 0.11.1.Summary by Sourcery
Maintain explicit JAX 0.12.0 CI coverage and document the compatibility audit confirming brainstate remains compatible without source changes.
Enhancements:
CI:
Documentation: