Conversation
The compatibility suite discovers its version matrix at collection time, taking the newest beta from the fury index. Upstream published pylance 12.0.0-beta.6, which raised its own requirement from `lance-namespace>=0.8.5,<0.9` to `lance-namespace>=0.11.1,<0.12`, but `_lance_namespace_dependency` maps every release at or above 7.2.0b5 to the 0.8 range. So the harness asks pip for `pylance==12.0.0b6` together with `lance-namespace>=0.8.0,<0.9`, which cannot resolve, and the install fails before any Lance code runs. Every test parameterised on that version errors out, and because the matrix is discovered rather than pinned this breaks every branch at once rather than only ones touching Python. Partial backport of upstream lance-format/lance@1391e6cb7 (lance-format#8903), which made the same change alongside the dependency bump itself. Only the two compat-harness files are taken, unchanged. The rest of that commit raises `lance-namespace` to 0.11.1 across Rust, Java and Python, adapts the Java namespace classes and `python/lance/namespace.py`, and rewrites all three lockfiles; it is a breaking change that belongs in its own deliberate port. This branch's own pin stays at `lance-namespace>=0.8.5,<0.9` and its wheel is unaffected -- the mapping only decides what to install into the throwaway venv built for some *other* pylance version.
Author
|
Superseded by #67, which caps the discovered compat version matrix at the version under test instead of adding a namespace-pin tier. This PR backported upstream's fix (lance-format/lance@1391e6cb7, lance-format#8903) and did unblock the install — 30 failed became 278 passed. But it leaves a release branch testing against its own future: With the matrix capped, no tier is needed — every remaining version predates the 0.9 era and the existing arm covers it. |
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.
Backports one slice of upstream lance-format#8903 (
1391e6cb7), "build(deps)!: bump lance-namespace to 0.11.1 across Java and Python". In that PR's words:That tier is what this takes, unchanged, along with the three parameterised cases upstream added to pin the boundary either side of 12.0.0b5.
It is needed here because the harness discovers its version matrix at collection time rather than pinning it, taking the newest beta from the fury index. Once upstream published pylance 12.0.0-beta.6 — the first release carrying the new range — the harness kept asking pip for
pylance==12.0.0b6together withlance-namespace>=0.8.0,<0.9, which cannot resolve. The install failed before any Lance code ran, erroring every test parameterised on that version. Because the matrix is discovered rather than pinned, that broke every branch at once, not only ones touching Python.No production code: both files are test-harness only, and this fork's own
lance-namespacepin stays at>=0.8.5,<0.9. The map only decides what to install into the throwaway venv built for some other published pylance release.Testing
Compat suite on this branch: 278 passed, 9 skipped, none failed — against 30 failed, 245 passed, 9 skipped before. The 31
12.0.0b6cases now execute rather than erroring at install, so arelease-10.0.0writer is genuinely exercised against a 12.0.0-beta.6 reader; nothing fails on its merits.test_venv_manager.py::test_lance_namespace_dependencycovers the boundary directly, 9 passed with--run-compat. Checked non-vacuous by dropping the new tier, which fails exactly the two cases it should:assert 'lance-namespace>=0.8.0,<0.9' == 'lance-namespace>=0.11.1,<0.12'.Not included
Everything else in upstream lance-format#8903, which is the dependency bump proper and is breaking: raising
lance-namespaceto 0.11.1 inCargo.tomland all three lockfiles,java/pom.xmland four Java sources,python/pyproject.toml,python/lance/namespace.pyanduv.lock. Upstream's summary of what that entails:That belongs in its own deliberate port and review rather than riding along with a CI unblock. Nothing here depends on it: the map describes what other releases require, so it is correct whether or not this fork has bumped its own pin.