Skip to content

Cut next release for post-0.3.3 changes #82

@dcfocus

Description

@dcfocus

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:

Optional pre-release inclusion

Decide whether to merge before cutting the release:

  • feat: add upsert and partial update APIs #84 — Upsert by external_id API. 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.0 recommended).
  • Confirm whether feat: add upsert and partial update APIs #84 is in or out for this release.
  • Ensure main is green after the final PR set is selected.
  • Run the Rust checks from the repo root:
    • cargo fmt -- --check
    • cargo test --workspace
    • cargo clippy --workspace --all-targets -- -D warnings
    • cargo test -p lance-context --features remote
  • Run Python checks from python/:
    • uv run pytest
    • uv 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.toml flow.
  • Decide whether the Rust API/client/server crates that still read 0.2.4 should 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

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 main before the cut.
  • The issue can be closed only after post-release PyPI verification passes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions