Releases: aai-institute/lakefs-spec
v0.11.1
🌟 Highlights
- Python 3.13 support
- Fixed an error when listing files with partial path prefix matches (#297)
- Don't reject valid lakeFS tag names (#299)
- Improved error messages when parsing invalid lakeFS URIs
What's Changed
- CI: Run tests against oldest and latest supported versions of lakefs and fsspec by @AdrianoKF in #293
- Tests: Speed up
test_rm_with_1k_objects_or_more
by @AdrianoKF in #294 - Add Python 3.13 to test matrix by @nicholasjng in #295
- Improve error message in
util.parse()
by incrementally using regexes by @nicholasjng in #301 - Handle partial name matches in
ls
method by @AdrianoKF in #298 - Support a wider range of ref expressions by @nicholasjng in #300
- Run
uv sync --frozen
to not update the lock file in CI by @nicholasjng in #302 - Remove TestPyPI upload due to attestation failure by @nicholasjng in #303
Full Changelog: v0.11.0...v0.11.1
v0.11.0
🚨 Breaking Changes
This release marks the end of support for Python 3.9 (and earlier), which has reached end-of-life status with the release of Python 3.13.
What's Changed
- Update project lockfiles and pre-commit setup by @nicholasjng in #287
- Bump oldest supported Python to 3.10 by @nicholasjng in #288
- [ci] Update CI workflow to be based on uv toolchain by @nicholasjng in #289
- Run pre-commit autoupdate again by @nicholasjng in #290
- Support
fs.exists()
on repo root by @AdrianoKF in #292
Full Changelog: v0.10.0...v0.11.0
v0.10.0
This release fixes a case in which users attempting to bulk-delete more than 1000 objects would get errors from the lakeFS server. From now on, object deletes are carried out in batches of 1000, which is the maximum that the server handles.
What's Changed
- Update lockfiles for CI and dev setups by @nicholasjng in #281
- Batch objects in
Branch.delete_objects
calls by @nicholasjng in #285 - Add rm test on more than 1000 files by @nicholasjng in #286
Full Changelog: v0.9.0...v0.10.0
v0.9.0
This release increases the minimum required fsspec version to fsspec>=2023.12.0
(December 2023). It does not contain changes in functionality.
What's Changed
- Bump minimum fsspec version to 2023.12.0 by @nicholasjng in #280
- Update pre-commit hooks, change lockfile to use uv pip compile by @nicholasjng in #278
Full Changelog: v0.8.0.post0...v0.9.0
v0.8.0.post0 - Documentation updates
This release adds example code showing how to access lakeFS repositories from the Hugging Face 🤗 Datasets library to the documentation.
What's Changed
- Docs: Demonstrate integration of Hugging Face Datasets by @AdrianoKF in #275
- Bump linter dependencies by @AdrianoKF in #276
Full Changelog: v0.8.0...v0.8.0.post0
v0.8.0
This release changes the behavior of LakeFSFileSystem.exists()
when encountering a CommonPrefix
, which is lakeFS' directory abstraction. Afterwards, the file system can detect existing directories/common prefixes on a branch, returning True
for any existing directories.
What's Changed
- Update outdated CI actions by @AdrianoKF in #269
- Update pre-commit hooks by @AdrianoKF in #270
- Fixed broken URL in README.md by @leonpawelzik in #271
- Docs: Link to root-level modules in API docs by @AdrianoKF in #273
- fs.exists() should return True for common prefixes by @ozkatz in #274
New Contributors
- @leonpawelzik made their first contribution in #271
- @ozkatz made their first contribution in #274
Full Changelog: v0.7.1...v0.8.0
v0.7.1
What's Changed
- Update Python dependencies, change ruff options by @nicholasjng in #262
- Fix ls by @renesat in #260
- Log a warning for uncommitted changes on transaction exit by @maxmynter in #266
- Always show the project name in the header by @janwillemkl in #263
- Docs: Fix code highlighting in third-party libraries integration guide by @AdrianoKF in #268
New Contributors
Full Changelog: v0.7.0...v0.7.1
v0.7.0
⭐ Highlights
Changes the lakeFS-spec transaction to operate on short-lived ephemeral branches (#258).
Transaction versioning operations are implicitly scoped to the given repository and transaction branch, so you do not need to manually specify these arguments anymore:
# will automatically merge into `main` upon successful completion of `tx`.
with fs.transaction("my-repo", "main") as tx:
fs.put("my-file.txt", f"my-repo/{tx.branch.id}/my-file.txt")
tx.commit(message="Add my file")
🚨 Breaking changes
The usage of LakeFSFileSystem.transaction
was changed. It is now necessary to call it with a repository name to properly initialize the transaction.
What's Changed
- Bump lakeFS service container version to v1.7.0 by @nicholasjng in #249
- Replace
fs._open()
with properfs.open()
implementation by @nicholasjng in #250 - Add integration tests for third-party data science libraries by @nicholasjng in #251
- (docs): Add lakeFS-spec and lakeFS-SDK transaction differences by @maxmynter in #252
- Update project metadata by @AdrianoKF in #256
- Split lakefs-spec test job into multiple jobs by @nicholasjng in #261
- Introduce new transaction model based on ephemeral branches by @nicholasjng in #258
Full Changelog: v0.6.1...v0.7.0
v0.6.1
⭐ Highlights
This release marks the completion of the lakeFS SDK wrapper migration. All available functionality is now expressed in terms of abstractions from the new lakefs
Python package.
As a particular consequence, the LakeFSFile
was removed in favor of lakeFS' own file-like object APIs. For simple file interactions through the file system only (including transactions), this will not result in breaking changes.
What's Changed
- Slim down the bug report and feature request templates by @janwillemkl in #235
- Update dev requirements, fix lakefs v0.2.0 regression by @nicholasjng in #239
- Implement more APIs in terms of
lakefs
abstractions by @nicholasjng in #240 - Fix
fs.rm()
for the recursive case by @nicholasjng in #243 - Add test coverage for commits to repo information tests by @nicholasjng in #244
- Remove Placeholder from interface typing, use new ReferenceType hint by @nicholasjng in #245
- Add lakeFS package versions to pytest header by @nicholasjng in #246
- Update bug-report.yaml by @Maciej818 in #247
- Simplify revision parsing in the tutorial notebook by @nicholasjng in #248
Full Changelog: v0.6.0...v0.6.1
v0.6.0 - New lakeFS SDK
⭐ Highlights
- lakeFS-spec is now using the newly release
lakefs
high-level Python SDK under the hood (see #231) - the project now has a logo in all the relevant places 🎨
🚨 Breaking Changes
- Loading
lakectl.yaml
configuration from non-default paths is no longer supported (in line with thelakefs
Python SDK)
What's Changed
- Correctly set docs version number for release workflow by @AdrianoKF in #228
- Docs: Update project highlights by @janwillemkl in #229
- Several small test improvements by @nicholasjng in #230
- Migrate the package to use the new
lakefs
SDK wrapper library by @nicholasjng in #231 - Implement deletes using the lakeFS branch API by @maxmynter in #236
- Add custom lakeFS-spec logo/favicon by @AdrianoKF in #238
New Contributors
- @janwillemkl made their first contribution in #229
Full Changelog: v0.5.0...v0.6.0