Skip to content

Latest commit

 

History

History
86 lines (58 loc) · 5.68 KB

CHANGELOG.md

File metadata and controls

86 lines (58 loc) · 5.68 KB

Changelog

v1.0.0 (September 2023)

Features

  • Add support for whence=2 in PackedObjectReader.seek [5515ab6]
  • Add support for changing compression when repacking, and add auto compression heuristics [599e87c]
  • Improve efficiency when accessing packed compressed objects [10edd63]

Changes

  • A number of API methods changed the return type from bare dictionaries to dataclass instances [7a63462]

    • Container.get_object_stream_and_meta -> ObjectMeta
    • Container.get_objects_meta -> ObjectMeta
    • Container.get_object_meta -> ObjectMeta
    • Container.count_objects -> ObjectCount
    • Container.get_total_size -> TotalSize
    • Container.validate -> ValidationIssues

    The dataclasses are importable from disk_objectstore.dataclasses.

  • A number of API methods replaced using os.path with str paths, for pathlib.Path [df96142] The following methods now return a pathlib.Path instance:

    • Container.get_folder
    • LazyOpener.path
  • Various improvements to docs and code [5ba9316]

Devops

  • Moving documentation to sphinx+myst [2002f3c]
  • Adopt PEP 621 and move build spec to pyproject.toml [4bd0c4e]
  • Make types more permissive [c012056]

Dependencies

  • Add Python 3.11 support [afdae26]
  • Unpin sqlalchemy adding support for >=1.4.22 [a2a987f]
  • Removed uneeded ablog dependencies [8165f58]

v0.6.0 (September 2021)

  • ⬆️ UPGRADE: Remove Python support for 3.5 and 3.6, and add support for 3.9.
  • ⬆️ UPGRADE: SQLAlchemy v1.4 (with v2 API) [#114]
  • ✨ NEW: Add basic CLI [#117] (see README.md for details)
  • 🔧 MAINTAIN: Add type annotations and mypy type checking [#113]

v0.5.0 (November 2020)

  • Various general (but very important) speed improvements [#96] [#102]
  • Add callbacks to a number of functions (e.g. export, add_objects_to_pack, ... to allow showing progress bars or similar indicators [#96]
  • Implement repacking (at least when not changing hashing or compression) [#96]
  • Remove export function, implement import_objects function instead, to be called on the other side (it's more efficient) [#96]
  • Add support for VACUUMing operations on the SQLite database (very important for efficiency) [#96]
  • Add support for multiple hashing algorithms [#96]
  • Add concept of (unique) container_id [#97]
  • Generalize the compression algorithm implementation, and multiple algorithms are supported now [#99]

v0.4.0 (20 July 2020)

  • Major robustness improvements and new functionality (possibility to pack while using the repository, tested on all platforms)
  • Not deleting loose files when packing; now there is a clean_storage() function to do it afterwards, as a maintenance operation
  • Backward-incompatible change to the Container format (now it expects a duplicates folder, so old repositories do not work out of the box)
  • Added various functionality to delete objects, validate the packs, list all objects, possibility to seek() into returned objects
  • Added continuous-integation benchmarks
  • Various bugfixes

v0.3.0 (22 June 2020)

  • Changed the logic of packing: now packs are not determined anymore from the first few characters of the UUID/hash, but they are sequential integers with capped max size
  • Complete major rewrite of the library, where now objects are deduplicated and use a SHA256 hash to be identified. This is a backward-incompatible version, but provides much higher robustness and features, making it almost production ready (only a few useful functions need still to be implemented to facilitate repository management, like the option to perform a full repack of a repository.

v0.2.1 (13 April 2020)

  • Improving testing and continuous integration, badges, and homepage

v0.2.0 (10 April 2020)

  • Rename of the project and implementation of a number of functions

v0.1.0 (1 April 2020)

  • This is the very first version. Uses random UUIDs to identify objects.