Migration Guides¶
Lance aims to avoid breaking changes when possible. Currently, we are refining the Rust public API so that we can move it out of experimental status and make stronger commitments to backwards compatibility. The python API is considered stable and breaking changes should generally be communicated (via warnings) for 1-2 months prior to being finalized to give users a chance to migrate. This page documents the breaking changes between releases and gives advice on how to migrate.
0.39¶
-
The
lancecrate no longer re-exports utilities fromlance-arrowsuch asRecordBatchExtorSchemaExt. In the short term, if you are relying on these utilities, you can add a dependency on thelance-arrowcrate. However, we do not expectlance-arrowto ever be stable, and you may want to consider forking these utilities. -
Previously, we exported
ErrorandResultas bothlance::Errorandlance::error::Error. We have now reduced this to justlance::Error. We have also removed some internal error utilities (such asOptionExt) from the public API and do not plan on reintroducing these. -
The Python and Rust
dataset::diff_metaAPI has been removed in favor ofdataset::delta, which returns aDatasetDeltathat offers both metadata diff throughlist_transactionsand data diff throughget_inserted_rowsandget_updated_rows. -
Some other minor utilities which had previously been public are now private. It is unlikely anyone was utilizing' these. Please open an issue if you were relying on any of these.
-
The
lance-namespaceRust crate now splits intolance-namespacethat contains the mainLanceNamespacetrait and data models, andlance-namespace-implsthat has different implementations of the namespace. TheDirectoryNamespaceandRestNamespaceinterfaces have been refactored to be more user friendly. TheDirectoryNamespacealso now uses Lance ObjectStore for IO instead of directly depending on Apache OpenDAL.