Skip to content

build(deps)!: bump lance-namespace to 0.11.1 across Java and Python - #8903

Merged
wjones127 merged 2 commits into
lance-format:mainfrom
wjones127:will/ent-2084-namespace-version-bump
Aug 31, 2026
Merged

wjones127 merged 2 commits into
lance-format:mainfrom
wjones127:will/ent-2084-namespace-version-bump

Conversation

@wjones127

@wjones127 wjones127 commented Aug 31, 2026 •

Copy link
Copy Markdown
Contributor

The Java and Python lance-namespace pins had drifted several releases behind the Rust one: java/pom.xml was on 0.7.7 and python/pyproject.toml on >=0.8.5,<0.9, while Rust was already on 0.11.0. This bumps all three to 0.11.1, so the bindings stop being four releases apart from the core.

No feature work — this isolates the dependency drift ahead of ENT-2084 (multiple columns for the merge-insert on key), which needs a namespace release newer than any of these pins.

The Java changes are taken from #8623 and rebased onto current main. That PR's rest.rs tests are left out, as they cover vector index params (ENT-1892) rather than the version bump.

Breaking changes

0.11 changes four LanceNamespace methods to return a response object instead of a bare value. Both bindings are updated to match, and callers need to unwrap:

method before after unwrap with
countTableRows / count_table_rows Long / int CountTableRowsResponse .getCount() / .count
queryTable / query_table byte[] / bytes QueryTableResponse .getData() / .data
namespaceExists / namespace_exists void / None NamespaceExistsResponse —
tableExists / table_exists void / None TableExistsResponse —

The implementations wrap the values the native layer already returns, so behavior is unchanged. Anyone implementing LanceNamespace themselves will need the same signature updates.

The compat harness also gains a tier in its namespace pin map, which tells it what lance-namespace range to install alongside each published pylance release. Releases cut after 12.0.0b5 will carry the new >=0.11.1,<0.12 range, so the map needs an entry for them; 12.0.0b5 and earlier keep the old one.

Testing

Ran the namespace integration suite against LocalStack (--run-integration, 30 passed), which is otherwise skipped by default.

Not included

jackson-databind stays explicitly pinned at 2.15.2 in java/pom.xml while jackson-core, jackson-annotations and jackson-datatype-jsr310 now arrive transitively from lance-namespace-core at 2.18.3. That skew predates this PR but widens with it, and registering a 2.18 module on a 2.15 databind is the kind of mismatch that surfaces at runtime rather than compile time. Worth aligning separately.

Separately, [tool.pyright].include in python/pyproject.toml is an explicit allowlist that does not cover python/lance/namespace.py, so nothing type-checks these Python signatures against the ABC — unlike Java, where the interface makes a mismatch a compile error. The file carries a TODO: expand this list; adding namespace.py to it is a reasonable follow-up.

The Java and Python namespace pins had drifted several releases behind the
Rust one: java/pom.xml was on 0.7.7 and python/pyproject.toml on
>=0.8.5,<0.9, while Rust was already on 0.11.0. This bumps all three to
0.11.1.

0.11 changes four LanceNamespace methods to return response objects instead
of bare values (countTableRows, queryTable, namespaceExists, tableExists),
so both bindings are updated to match. The implementations wrap the existing
native return values, leaving behavior unchanged.

Also adds a >= 12.0.0b5 tier to the compat harness pin map, without which a
compat run building the current ref would install a namespace version the
new metadata forbids.

The Java changes are taken from lance-format#8623, rebased onto main.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added A-python Python bindings A-java Java bindings + JNI A-deps Dependency updates chore breaking-change labels Aug 31, 2026
The new pin tier used >= 12.0.0b5, but that version is already published
with lance-namespace>=0.8.5,<0.9 in its metadata, so the compat harness
asked pip to install it alongside >=0.11.1 and resolution failed.

Key the tier to releases published after 12.0.0b5 instead, which are the
ones that will carry the new range.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@wjones127
wjones127 marked this pull request as ready for review August 31, 2026 19:03
@wjones127
wjones127 merged commit 1391e6c into lance-format:main Aug 31, 2026
38 of 39 checks passed
u70b3 added a commit to u70b3/lance that referenced this pull request Sep 18, 2026
Backport of the compat-harness change from lance-format#8903 (1391e6c).

pylance 12.0.0 (released 2026-09-17) and the 13.0.0 betas depend on
lance-namespace>=0.11.1,<0.12, which conflicts with the harness's
lance-namespace>=0.8.0,<0.9 pin: venv creation for those versions fails
pip resolution, failing every [12.0.0]/[13.0.0b4] compat case and every
index-maintenance sequence shard (its newer ref resolved to 12.0.0 as
soon as it hit PyPI), which alone burns the 60-minute Compatibility
Tests budget.

Not caused by the index fix in this PR; backported to unblock compat
CI on release/v11.0 (the fix already lives on main).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-deps Dependency updates A-java Java bindings + JNI A-python Python bindings breaking-change chore

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants