Skip to content

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

Open
prrao87 wants to merge 2 commits into
mainfrom
refactor/remove-refresh
Open

prrao87 wants to merge 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

This branch has not been deployed

No deployments
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