Repository navigation
Cut next release for post-0.3.3 changes #82
Description
Motivation
The latest tagged/published release is still 0.3.3. The v0.3.3 tag points at the release commit from 2026-06-10, while main has accumulated several user-facing fixes and APIs since then. The immediate trigger is still #71: PyPI 0.3.3 advertises stale Python 3.9 / 3.10 classifiers even though the package requires >=3.11,<3.14. That fix is merged on main, but it will not reach PyPI until a new release is cut.
This should be treated as the next release tracker, not only as a classifier patch, because the post-0.3.3 delta now includes multiple public API changes.
Release recommendation
Cut 0.4.0 unless maintainers prefer a different version. A minor bump is appropriate because the release includes new retrieval, search configuration, REST/client, and record-model capabilities, not just packaging metadata fixes.
Merged changes to include
These PRs are already merged to main after v0.3.3 and should be included in the next release:
- feat: add record relationships #69 — Record relationships: relationship payloads, round-trip storage, and related-record lookup support.
- fix: align Python version classifiers #71 — Python classifier fix: drop stale Python 3.9 / 3.10 classifiers, add Python 3.13, and keep classifiers aligned with
requires-python = ">=3.11,<3.14". - feat: add hybrid retrieval API #76 — Hybrid retrieval API: text + vector retrieval with RRF-style fusion and diagnostics.
- feat: add configurable vector-search distance metric #77 — Configurable vector-search distance metric.
- feat: make embedding dimension configurable #78 — Configurable embedding dimension instead of a fixed 1536-dim assumption.
- feat: expose record parity APIs over REST #79 — REST record-parity APIs for lookup/delete/related records.
- feat: persist distance_metric in dataset schema metadata #83 — Persist
distance_metricin dataset schema metadata so reopen behavior is consistent.
Optional pre-release inclusion
Decide whether to merge before cutting the release:
- feat: add upsert and partial update APIs #84 — Upsert by
external_idAPI. If it lands before the release cut, include it in the 0.4.0 release notes. If not, leave it for the next release rather than blocking this one indefinitely.
Release checklist
- Confirm final release version (
0.4.0recommended). - Confirm whether feat: add upsert and partial update APIs #84 is in or out for this release.
- Ensure
mainis green after the final PR set is selected. - Run the Rust checks from the repo root:
cargo fmt -- --checkcargo test --workspacecargo clippy --workspace --all-targets -- -D warningscargo test -p lance-context --features remote
- Run Python checks from
python/:uv run pytestuv run ruff format --check python/ tests/uv run ruff check python/ tests/uv run pyright
- Resolve or explicitly waive any environment-specific S3/moto failures before publishing.
- Bump versions with the existing
.bumpversion.tomlflow. - Decide whether the Rust API/client/server crates that still read
0.2.4should also be bumped for this release, or whether only the already-managed Python/core/context package versions should move. - Verify release notes/changelog mention the PRs above.
- Create the release tag and GitHub release.
- Let the existing publish workflows build/upload PyPI artifacts and wheels.
- Verify PyPI metadata and install behavior after publish.
Post-release verification
- PyPI shows the new version.
- PyPI classifiers include Python 3.11, 3.12, and 3.13, and do not include Python 3.9 or 3.10.
- PyPI
Requires-Pythonremains>=3.11,<3.14. -
pip install lance-context==<new-version>works on supported Python versions. - Release notes clearly call out new APIs/features from feat: add record relationships #69, feat: add hybrid retrieval API #76, feat: add configurable vector-search distance metric #77, feat: make embedding dimension configurable #78, feat: expose record parity APIs over REST #79, and feat: persist distance_metric in dataset schema metadata #83, plus feat: add upsert and partial update APIs #84 if included.
Acceptance criteria
- A new release is published to PyPI and GitHub.
- The classifier fix from fix: align Python version classifiers #71 is visible in published metadata.
- The release includes all selected post-0.3.3 PRs merged to
mainbefore the cut. - The issue can be closed only after post-release PyPI verification passes.
Activity
[-]Cut a release so the #71 Python-classifier fix reaches PyPI (0.3.3 still ships stale 3.9/3.10)[/-][+]Cut next release for post-0.3.3 changes[/+]dcfocus commentedon Jun 12, 2026
Status update after the v0.4.0 release: