Repository navigation
Conversation
deepdiff 9.1.0 added a dependency on cachebox, a Rust extension whose 5.x wheels stop at Python 3.14. The macOS runners' brew upgrade now installs Python 3.15, so pip builds cachebox from source and fails on PyO3's version check, failing both macOS compatibility jobs. Linux and Windows will hit the same failure once their Python moves to 3.15. Pin deepdiff 9.0.0, the newest pure-Python release, and its only dependency orderly-set in test/compatibility/requirements.txt, and install from it in all comparison steps. This also keeps the diff semantics that decide pass/fail from changing with upstream releases.
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
Fix the macOS compatibility jobs failing at "Compare Test Results" by pinning deepdiff to a pure-Python release.
Description
The comparison steps ran
pip3 install deepdiff, which now resolves to 9.1.0. That release added a required dependency oncachebox<6, a Rust/PyO3 extension. cachebox 5.x ships wheels only for Python 3.10–3.14 and builds with PyO3 0.27.1, which refuses to compile against Python 3.15.On macOS,
brew update && brew upgradenow installs Python 3.15, so pip builds cachebox from source and fails:Linux and Windows still pass only because their runners use Python 3.12. They'll fail the same way once their default Python moves to 3.15. Upstream tracking: qlustered/deepdiff#601 and #645.
Changes:
test/compatibility/requirements.txtpinningdeepdiff==9.0.0(the newest release without cachebox, same major as the 9.1.0 the passing jobs use today) and its only dependency,orderly-set==5.5.0.compatibility_test.yaml.Why pin deepdiff rather than the Python version:
DeepDiff(..., ignore_order=True)decides what passes, so pinning it stops results from changing with upstream releases.actions/setup-pythonstep in every compatibility job, placed afterbrew upgrade, and another action to keep up to date.Once deepdiff allows cachebox 6 (which ships cp315 wheels), the pin can be bumped. The comment in
requirements.txtnotes this.Testing
pip install -r test/compatibility/requirements.txtinstalled with no native build, andcompare_results.pyexited 0 for matching results (rows in a different order) and exited 1 with a diff for a mismatch.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.