NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3226 most downloaded on PyPI
dvc objects - filesystem and object-db level abstractions to use in dvc and dvc-data
Last release 9 months ago
22 Dec 2025
Ships unpredictably
gaps range from 1 weeks to 1.3 years
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
124 releases · first in 2022
One column per quarter.
chore: set license-files and use 3.14 everywhere by @skshetry in #358
support platforms with no os.link by @skshetry in #354
Full Changelog: 5.1.1...5.1.2
Fall back to "copy" strategy if linking throws an EAGAIN error by @mermerico in #338
Full Changelog: 5.1.0...5.1.1
drop python 3.8 by @efiop in #280
Full Changelog: 5.0.0...5.1.0
drop tqdm implementation and tqdm callback by @skshetry in #279
Full Changelog: 4.0.1...5.0.0
TqdmCallback: fix typo/off-by-one error by @skshetry in #277
Full Changelog: 4.0.0...4.0.1
ci: run on m1 macos by @skshetry in #275
Full Changelog: 3.0.6...4.0.0
add wrap_file for wrapping a file object with callback by @skshetry in #271
Full Changelog: 3.0.5...3.0.6
use functools.cached_property on Python>=3.12 by @skshetry in #270
Full Changelog: 3.0.4...3.0.5
tqdm: remove wrap_fn by @skshetry in #268
Full Changelog: 3.0.3...3.0.4
Full Changelog: https://github.com/iterative/dvc-objects/compare/3.0.2...3.0.3
Full Changelog: https://github.com/iterative/dvc-objects/compare/3.0.2...3.0.3
objectdb: add __rich_repr__ by @skshetry in https://github.com/iterative/dvc-objects/pull/267
Full Changelog: https://github.com/iterative/dvc-objects/compare/3.0.1...3.0.2
callback: remove as_tqdm_callback and cleanup by @skshetry in https://github.com/iterative/dvc-objects/pull/263
Full Changelog: https://github.com/iterative/dvc-objects/compare/3.0.0...3.0.1
fs: replace fs.path with plain fs methods by @efiop in https://github.com/iterative/dvc-objects/pull/262
Full Changelog: https://github.com/iterative/dvc-objects/compare/2.0.1...3.0.0
callback: remove getattr error now that the upgrade is done on all projects by @skshetry in https://github.com/iterative/dvc-objects/pull/261
Full Changelog: https://github.com/iterative/dvc-objects/compare/2.0.0...2.0.1
support Python 3.12 by @skshetry in https://github.com/iterative/dvc-objects/pull/249
Full Changelog: https://github.com/iterative/dvc-objects/compare/1.4.9...2.0.0
reflink: set mode to 0o666 by @skshetry in https://github.com/iterative/dvc-objects/pull/248
Full Changelog: https://github.com/iterative/dvc-objects/compare/1.4.8...1.4.9
fs: reflink: try to normalize permissions on any platform by @efiop in https://github.com/iterative/dvc-objects/pull/247
Full Changelog: https://github.com/iterative/dvc-objects/compare/1.4.7...1.4.8
fs: generic: link: reset permissions on macos reflinks by @efiop in https://github.com/iterative/dvc-objects/pull/246
Full Changelog: https://github.com/iterative/dvc-objects/compare/1.4.6...1.4.7
fs: utils: copyfile: reset permissions on macos reflinks by @efiop in https://github.com/iterative/dvc-objects/pull/245
Full Changelog: https://github.com/iterative/dvc-objects/compare/1.4.5...1.4.6
reflink: macos: return None if no clonefile exists instead of raising… by @skshetry in https://github.com/iterative/dvc-objects/pull/240
Full Changelog: https://github.com/iterative/dvc-objects/compare/1.4.4...1.4.5
reflink cleanup: use errcheck by @skshetry in https://github.com/iterative/dvc-objects/pull/239
Full Changelog: https://github.com/iterative/dvc-objects/compare/1.4.3...1.4.4
microopt: reorder to remove assertions, lazy imports by @skshetry in https://github.com/iterative/dvc-objects/pull/237
Full Changelog: https://github.com/iterative/dvc-objects/compare/1.4.2...1.4.3
fs: reflink: don't try to reset permissions by @efiop in https://github.com/iterative/dvc-objects/pull/238
Full Changelog: https://github.com/iterative/dvc-objects/compare/1.4.1...1.4.2
fs: system: cleanup reflink by @efiop in https://github.com/iterative/dvc-objects/pull/235
Full Changelog: https://github.com/iterative/dvc-objects/compare/1.4.0...1.4.1
tests: bench: add benchmarks for reflink/hardlink/symlink by @efiop in https://github.com/iterative/dvc-objects/pull/233
Full Changelog: https://github.com/iterative/dvc-objects/compare/1.3.2...1.4.0
fs: copy: limit to 1 job for localfs to localfs transfers by @efiop in https://github.com/iterative/dvc-objects/pull/231
Full Changelog: https://github.com/iterative/dvc-objects/compare/1.3.1...1.3.2
fs: copyfile: don't touch callback at all for files <1G by @efiop in https://github.com/iterative/dvc-objects/pull/230
Full Changelog: https://github.com/iterative/dvc-objects/compare/1.3.0...1.3.1
cruft: update template by @efiop in https://github.com/iterative/dvc-objects/pull/228
Full Changelog: https://github.com/iterative/dvc-objects/compare/1.2.0...1.3.0
callbacks: wrap non-dvc callbacks passed via fsspec by @pmrowla in https://github.com/iterative/dvc-objects/pull/227
Full Changelog: https://github.com/iterative/dvc-objects/compare/1.1.0...1.2.0
Migrate from PyPI tokens to Trusted Publishers by @0x2b3bfa0 in https://github.com/iterative/dvc-objects/pull/223
Full Changelog: https://github.com/iterative/dvc-objects/compare/1.0.1...1.1.0
mypy: strict typings by @skshetry in https://github.com/iterative/dvc-objects/pull/221
Full Changelog: https://github.com/iterative/dvc-objects/compare/1.0.0...1.0.1
fs: base: make fs_args lazy by @efiop in https://github.com/iterative/dvc-objects/pull/219
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.25.0...1.0.0
generic.transfer: support single file max_concurrency by @pmrowla in https://github.com/iterative/dvc-objects/pull/218
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.24.1...0.25.0
fs: transfer: don't raise if link failed with EINVAL by @efiop in https://github.com/iterative/dvc-objects/pull/217
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.24.0...0.24.1
fs: transfer: don't raise if link failed with ENOSYS by @efiop in https://github.com/iterative/dvc-objects/pull/216
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.23.1...0.24.0
executors: cancel pending tasks when raising batched async exception by @pmrowla in https://github.com/iterative/dvc-objects/pull/213
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.23.0...0.23.1
odb: verify that parts len is actually 2 by @pmrowla in https://github.com/iterative/dvc-objects/pull/210
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.22.0...0.23.0
transfer: callback: do not set sizes, do it in odb.add() by @skshetry in https://github.com/iterative/dvc-objects/pull/208
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.21.2...0.22.0
warn on incompatible fsspec installation by @skshetry in https://github.com/iterative/dvc-objects/pull/206
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.21.1...0.21.2
generic: return when done copying by @efiop in https://github.com/iterative/dvc-objects/pull/202
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.21.0...0.21.1
fs: transfer: don't return on first exception by @efiop in https://github.com/iterative/dvc-objects/pull/199
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.20.0...0.21.0
localfs: get_file: handle dirs like fsspec's localfs by @efiop in https://github.com/iterative/dvc-objects/pull/196
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.19.3...0.20.0
db: fix find() call when listing full odb by @pmrowla in https://github.com/iterative/dvc-objects/pull/194
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.19.2...0.19.3
db: use find(prefix=True) when listing oids by prefix by @pmrowla in https://github.com/iterative/dvc-objects/pull/193
find(prefix=True) when listing oids by prefix by @pmrowla in https://github.com/iterative/dvc-objects/pull/193Full Changelog: https://github.com/iterative/dvc-objects/compare/0.19.1...0.19.2
fs.get_missing_deps: use find_spec to check if packages are missing instead of importing them by @skshetry in https://github.com/iterative/dvc-objects
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.19.0...0.19.1
fs: support batched info by @pmrowla in https://github.com/iterative/dvc-objects/pull/189
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.18.2...0.19.0
Update base.py by @daavoo in https://github.com/iterative/dvc-objects/pull/188
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.18.1...0.18.2
db: pass legacy jobs/batch_size into batched transfer by @pmrowla in https://github.com/iterative/dvc-objects/pull/187
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.18.0...0.18.1
fs: add batch utils.exists implementation by @pmrowla in https://github.com/iterative/dvc-objects/pull/186
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.17.0...0.18.0
fs: local: Accept list of paths in rm. by @daavoo in https://github.com/iterative/dvc-objects/pull/176
rm. by @daavoo in https://github.com/iterative/dvc-objects/pull/176Full Changelog: https://github.com/iterative/dvc-objects/compare/0.16.0...0.17.0
move threadpool usage out of odb and into fs by @pmrowla in https://github.com/iterative/dvc-objects/pull/180
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.15.0...0.16.0
fs: local: remove custom fs.checksum() by @efiop in https://github.com/iterative/dvc-objects/pull/185
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.14.2...0.15.0
add py.typed to package by @skshetry in https://github.com/iterative/dvc-objects/pull/184
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.14.1...0.14.2
update template by @github-actions in https://github.com/iterative/dvc-objects/pull/173
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.14.0...0.14.1
update template by @github-actions in https://github.com/iterative/dvc-objects/pull/168
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.13.1...0.14.0
fs: add type hints for fs.path by @pmrowla in https://github.com/iterative/dvc-objects/pull/171
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.13.0...0.13.1
add bandit, a security linter by @skshetry in https://github.com/iterative/dvc-objects/pull/166
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.12.2...0.13.0
db: _init: don't forget to ignore NotImplementedError on ls by @efiop in https://github.com/iterative/dvc-objects/pull/165
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.12.1...0.12.2
db: use fs.path.name instead of fs.path.basename by @efiop in https://github.com/iterative/dvc-objects/pull/164
Full Changelog: https://github.com/iterative/dvc-objects/compare/0.12.0...0.12.1
Your coding agent can read these notes before it upgrades. Set up the MCP server →