[JET] Add upper bounds to julia compat entries#145354
[JET] Add upper bounds to julia compat entries#145354ChrisRackauckas merged 2 commits intoJuliaRegistries:masterfrom
Conversation
JET.jl has strict Julia version requirements that were not properly reflected in the registry compat entries: - JET 0.9.x (v0.8.28-0.9.18) requires Julia 1.10 only - JET 0.9.19+ requires Julia 1.11 only - JET 0.10.x and 0.11.x require Julia 1.12 only The previous entries used unbounded ranges like "1.10.0-1" which allowed incompatible Julia versions. This caused issues when the resolver would select JET versions that don't work with the user's Julia version. See: SciML/RootedTrees.jl#209 (comment) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Cap older JET versions at their appropriate Julia versions: - JET 0.0.x: cap at Julia 1.6 (was 1.10) - JET 0.5-0.6.1: cap at Julia 1.8 (was 1.10) - JET 0.6.2-0.6.15: cap at Julia 1.8 (was 1.10) - JET 0.6.21-0.7.14: cap at Julia 1.8 (was 1.10) - JET 0.7.15-0.8.21: cap at Julia 1.9 (was 1.10) This ensures the resolver picks the appropriate JET version for each Julia version instead of potentially selecting older JET versions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
Added a second commit to also cap the older JET versions for better resolver behavior:
This ensures the resolver picks the appropriate JET version for each Julia version (e.g., JET 0.8.22+ on Julia 1.10) instead of potentially selecting older, less optimal versions. |
|
These are always tough to review manually. CI is passing, which is good, but the CI checks only test that the compat entry is of a valid format - they don't check that the meaning of the compat entry is correct. Ideally, we'd do a quick test before merging. E.g., check out this registry branch locally, and test that:
|
|
@aviatesk I found that these version caps are necessary because older JET just fails on newer Julia versions due to method table changes. |
It's not whether it installs, it's whether it's usable. JET v0.9 for example uses the old method table format. On Julia v1.12 this changed to |
|
@ranocha this is the PR I mentioned for the downgrade. |
|
Sorry, I should clarify my ask. I want to test that this PR is working correctly. So by "installable", all I mean is whether or not Pkg allows the installation of that version of JET on that version to Julia, when you use the registry branch for this PR. So "installable" (in my previous comment) means "Pkg installs the given version", and "not installable" means that "Pkg throws a resolver error". |
|
I'll get it tested. |
Testing ResultsI tested this PR with the modified registry on Julia 1.11.8. Test Setup
Results1. Version Resolution ✓ JET v0.9.20 was correctly selected, matching the constraint that v0.9.19+ requires Julia 1.11. 2. Constraint Enforcement ✓ Attempting to install JET v0.10 (which requires Julia 1.12) correctly fails: Attempting to install JET v0.11 also correctly fails with incompatible dependency chain. 3. Functionality ✓ Verified Compat ChangesThe key bounds in
The PR correctly prevents the resolver from selecting incompatible JET versions. ✅ |
|
LGTM. Thank you for investigating this compat bounds. |
|
JET.jl commit aviatesk/JET.jl@377fa53 (which is equivalent to v0.11.3, but without the julia compat post-change) seems to work fine on julia 1.13.0-beta1. So maybe this restriction here is a bit too strict. |
Summary
JET.jl has strict Julia version requirements that were not properly reflected in the registry compat entries:
The previous entries used unbounded ranges like
julia = "1.10.0-1"which allowed incompatible Julia versions. This caused issues when the resolver would select JET versions that don't work with the user's Julia version.For example, on Julia 1.11, the resolver could previously select JET v0.9.0-0.9.18 (which only works on Julia 1.10), causing cryptic failures.
Changes
julia = "1.10.0-1"julia = "1.10"julia = "1.11.0-1"julia = "1.11"julia = "1.11.0 - 1"julia = "1.11"julia = "1.12.0-1"julia = "1.12"julia = "1.12.0 - 1"julia = "1.12"Verification
The upstream JET.jl Project.toml files confirm these constraints:
julia = "1.10"julia = "1.12"julia = "1.12"Reference
See discussion at: SciML/RootedTrees.jl#209 (comment)
🤖 Generated with Claude Code