Repository navigation
Allow OrderedCollections 2 - #190
Closed
matthew-liu-1 wants to merge 1 commit into
Closed
matthew-liu-1 wants to merge 1 commit into
matthew-liu-1 wants to merge 1 commit into
Conversation
Widens the OrderedCollections compat bound to "1.8.1, 2" in Project.toml
and "1, 2" in test/Project.toml, bumps the patch version to 0.15.7, and
adds the corresponding HISTORY.md entry.
No code changes are needed. AbstractPPL's only non-docstring use of
OrderedCollections is constructing one, in src/varname/serialize.jl:
dict_to_varname(JSON.parse(str; dicttype=OrderedDict{String,Any}))
OrderedCollections 2.0's breaking changes are all outside that: removal of
the deprecated similar(::OrderedDict)/similar(::OrderedSet)/sort(::Dict)
methods and of deprecated OrderedSet indexing; convert(OrderedDict,
::AbstractDict) on an unordered dict now throwing instead of warning;
first/last on an empty collection throwing ArgumentError; and a changed
internal OrderedDict struct layout. None is reachable from plain
construction.
Verified with GROUP=Tests on Julia 1.10.12 against OrderedCollections
2.0.1: 1500 passed, 0 failed.
This isolates the OrderedCollections part of TuringLang#188, which bundles the same
widening with a JET bump and stdlib compat entries and currently has two
failing jobs.
matthew-liu-1
force-pushed
the
compat/orderedcollections-2
branch
from
September 30, 2026 03:19
a151399 to
8cbedb1
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #190 +/- ##
=======================================
Coverage 92.11% 92.11%
=======================================
Files 17 17
Lines 2106 2106
=======================================
Hits 1940 1940
Misses 166 166 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Member
|
Thank you @matthew-liu-1, this PR is superseded by #192 |
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.
Summary
Allows OrderedCollections 2 by widening the one compat bound, with a patch
version bump and a
HISTORY.mdentry.Relationship to #188
Dependabot's #188 already proposes this same widening, but bundles it with a JET
0.9, 0.10, 0.11→+0.12bump and several stdlib compat entries, and it has twofailing jobs (
test (1.11, ubuntu-latest),test (min, ubuntu-latest)) — so theOrderedCollections part is stuck behind the rest of the group.
This PR isolates just the OrderedCollections change so it can be evaluated and
merged on its own. Happy to close it if you'd rather fix and land #188 instead —
the goal is only to unblock OrderedCollections 2, not to bypass your process.
What is actually failing in #188
The two failing jobs are the bundled JET bump, not OrderedCollections.
julia-actions/julia-runtest'sforce_latest_compatible_versiondefaults toauto, which becomes true for Dependabot and CompatHelper PRs. That forcesevery
[compat]entry to its newest allowed version, soJET = "0.9, 0.10, 0.11, 0.12"pins JET to 0.12.2 — which requires Julia 1.12 —and the
min(1.10.12) and1.11(1.11.9) matrix rows become unsatisfiable:The three passing rows all run Julia >= 1.12. So #188 needs the JET bound handled
separately (it cannot be satisfied on 1.10/1.11 while forcing latest); the
OrderedCollections part of it is fine. This PR changes no JET bound and, not being
a Dependabot PR, is not subject to that forcing.
Why no code changes are needed
AbstractPPL's only non-docstring use of OrderedCollections is constructing one:
OrderedCollections 2.0's breaking changes are all outside that: removal of the
deprecated
similar(::OrderedDict)/similar(::OrderedSet)/sort(::Dict)methods and of deprecated
OrderedSetindexing;convert(OrderedDict, ::AbstractDict)on an unordered dict now throwing
ArgumentErrorinstead of warning;first/laston an empty collection throwing
ArgumentError; and a changed internalOrderedDictstruct layout (new
live,firstlive,lastlivefields). None is reachable fromplain construction.
Testing
Julia 1.10.12, Linux x86_64, per
AGENTS.md:with
OrderedCollectionspinned to 2.0.1:1500 passed, 0 failed, exit code 0. Resolved test environment:
OrderedCollections 2.0.1, JET 0.9.18, Aqua 0.8.18, DimensionalData 0.30.2.
Pkg.update()was run first, perAGENTS.md.Motivation
We're trying to run MLJLinearModels at head, which needs OrderedCollections 2
in the resolved environment. After widening the StanJulia side
(StanJulia/StanSample.jl#87, StanJulia/StanBase.jl#53, StanJulia/StanOptimize.jl#39
— all compat-only,
Parameters = "0.12"transitively pins OrderedCollections to1.x), AbstractPPL is the last remaining cap in our dependency graph. With this
change applied locally, our full environment resolves at OrderedCollections 2.0.1
while keeping Turing 0.49.0 and DynamicPPL 0.42.14 unchanged.