Skip to content

refactor!: remove the deprecated refresh() - #137

Merged
prrao87 merged 2 commits into
mainfrom
refactor/remove-refresh
Nov 7, 2026
Merged

prrao87 merged 2 commits into
mainfrom
refactor/remove-refresh

Conversation

@prrao87

@prrao87 prrao87 commented Nov 7, 2026

Copy link
Copy Markdown
Member

Why

CypherEngine.refresh() was renamed to checkout_latest(), after Lance's checkout_latest(), in v0.6.0 (#110, which landed through #109). Since then refresh() has been a deprecated alias that warns with DeprecationWarning in Python and is #[deprecated] in Rust, across six releases (v0.6.0 to v0.8.1). This ends the deprecation: refresh() is removed, and the code and docs no longer describe the operation as a refresh.

This is a breaking change for anyone still calling refresh(), in Python or in Rust: call checkout_latest(), which behaves identically.

What changed

  • refresh() is gone from the Rust CypherEngine, the Python bindings, their type stub and the Python CypherEngine, with the test that checked its warning. The Lance guide's "Formerly refresh()" note is removed, and the wheel check calls checkout_latest().
  • The remaining "refresh" wording now names checkout_latest(): the internals pages (the "Indexes and refresh" page becomes "Indexes and updates", in the navigation too), Rust doc comments, and test names. Most of this docs change was written for refactor(engine): rename refresh() to checkout_latest() to match lance #110 but pushed after it merged, so it never reached main; it is applied here on top of the current pages.
  • The micro-benchmarks report checkout_ms, checkout_unchanged_ms and checkout_after_append_ms instead of refresh_* keys. engine_cache.py no longer falls back to refresh() for engines without checkout_latest(): those are now timed by building a new engine, as upstream lance_graph already is.

Nothing in the repository mentions "refresh" any more, apart from lock files.

Validation

  • cargo test --workspace, cargo clippy --workspace --all-targets -- -D warnings and cargo fmt --all --check pass.
  • make test (1709 passed, one fewer than main for the removed deprecation test) and make lint pass. hasattr(CypherEngine, "refresh") is false for both the Python class and the compiled binding.
  • ci/check_wheel.py passes against a freshly built wheel in an isolated environment without Cargo on PATH, as in CI.
  • docs/check_snippets.py, zensical build --strict and typos pass. CI is pending.
  • No benchmark run: this removes an alias and renames text, and doesn't touch planning, execution or the CSR.

🤖 Generated with Claude Code

checkout_latest() replaced refresh() two releases ago, and refresh() has
warned with DeprecationWarning since. Remove it from the Rust engine, the
Python bindings, the type stub and the Python CypherEngine, along with its
deprecation test and docs note, and have the wheel check call
checkout_latest().
Drop the remaining refresh wording now that refresh() is gone: the
internals pages and their nav entry ("Indexes and updates"), Rust doc
comments, test names and the micro-benchmarks, whose output keys become
checkout_ms, checkout_unchanged_ms and checkout_after_append_ms. Most of
the docs change was written after #110 merged and never reached main.
@prrao87
prrao87 marked this pull request as ready for review November 7, 2026 02:50
@prrao87
prrao87 merged commit 8fa7a80 into main Nov 7, 2026
22 checks passed
@prrao87
prrao87 deleted the refactor/remove-refresh branch November 7, 2026 14:24
prrao87 added a commit that referenced this pull request Nov 7, 2026
A minor bump: #137 removed the deprecated refresh() from the Python and Rust APIs, a breaking change (checkout_latest() replaces it).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant