Irmin Versions Save

Irmin is a distributed database that follows the same design principles as Git

3.9.0

6 months ago

CHANGES:

Added

  • irmin-server
    • Added irmin-server package (#2031, @zshipko)
  • irmin-client
    • Added irmin-client package to connect to irmin-server instances (#2031, @zshipko)
  • irmin
    • Add pretty printers for Commit, Tree, Info, Status, Branch when using utop (@metanivek, #1839)

Fixed

  • irmin-pack
    • Fix index integrity check for v3 stores (#2267, @metanivek)

Removed

  • irmin-http
    • Removed irmin-http since it is not compatible with generic keys. irmin-grapqhl or irmin-server should be used instead. (#1902, @zshipko)
  • irmin
    • Removed stream proofs. We now only have Merkle tree proofs. This simplifies the maintenance of that part of the code, as ensuring the correct order of cached IO operations was tricky for stream proofs (#2275, @samoht)

Changed

  • irmin-git
    • Moved lower bounds to git.3.14.0 to use new function (#2277, @metanivek)

3.8.0

9 months ago

CHANGES:

Added

  • irmin

    • Change behavior of Irmin.Conf.key to disallow duplicate key names by default. Add allow_duplicate optional argument to override. (#2252, @metanivek)
  • irmin-pack

    • Add maximum memory as an alternative configuration option, lru_max_memory, for setting LRU capacity. (@metanivek, #2254)

Changed

  • irmin

    • Lower bound for mtime is now 2.0.0 (#2166, @patricoferris)
  • irmin-mirage-git

    • Lower bound for mirage-kv is now 6.0.0 (#2256, @metanivek)

Fixed

  • irmin-cli
    • Changed --store irf to --store fs to align the CLI with what is published on the Irmin website (#2243, @wyn)

3.7.2

10 months ago

CHANGES:

Fixed

  • irmin

    • Fix performance issue in Tree.length (#2258, @art-w)
  • irmin-pack

    • Fix snapshot export when using lower layer (#2257, @metanivek)

3.7.1

1 year ago

CHANGES:

Fixed

  • irmin-pack
    • Fix issue when migrating v2 stores to use lower layer (@metanivek, #2241)
    • Fix issue when calling GC for a commit in the lower after migration (@metanivek, #2242)

3.7.0

1 year ago

CHANGES:

Added

  • irmin

    • Add Conf.pp and Conf.equal to print and compare configuration values (#2227, @samoht)
    • Add a clear optional arguments to all function that adds a new commit: Commit.v, set, set_tree, remove, test_and_set, test_and_set_tree, test_set_and_get, test_set_and_get_tree, merge, merge_tree and with_tree. This new argument allows to control whether the tree caches are cleared up after objects are exported to disk during the commit. (#2225, @samoht)
  • irmin-pack

    • Add configuration option, lower_root, to specify a path for archiving data during a GC. (#2177, @metanivek)
    • Add is_split_allowed to check if a store allows split. (#2175, @metanivek)
    • Add add_volume to allow creating new empty volume in lower layer. (#2188, @metanivek)
    • Add a behaviour function to the GC to check wether the GC will archive or delete data. (#2190, @Firobe)
    • Add a migration on open_rw to move the data to the lower_root if the configuration was enabled (#2205, @art-w)

Changed

  • irmin
    • Expose type equality for Schema.Info to avoid defining the info function multiple times when using similar stores (#2189, #2193, @samoht)
  • irmin-pack
    • GC now changes its behaviour depending on the presence of a lower layer. (#2190, @Firobe)
    • Split now raises an exception if it is not allowed. It is not allowed on stores that do not allow GC. (#2175, @metanivek)
    • GC now supports stores imported V1/V2 stores, in presence of a lower layer only. (#2190, @art-w, @Firobe)
    • Upgrade on-disk format to version 5. (#2184, @metanivek)
    • Archive to lower volume does not copy orphaned commits. (#2215, @art-w)

Fixed

  • irmin-pack
    • Unhandled exceptions in GC worker process are now reported as a failure (#2163, @metanivek)
    • Fix the silent mode for the integrity checks. (#2179, @icristescu)
    • Fix file descriptor leak caused by mmap. (#2232, @art-w)

3.6.1

1 year ago

CHANGES:

Fixed

  • irmin-pack
    • Clear LRU when calling reload after a GC (#2200, @metanivek)

3.5.2

1 year ago

CHANGES:

Fixed

  • irmin-pack
    • Clear LRU when calling reload after a GC (#2200, @metanivek)

3.6.0

1 year ago

CHANGES:

Changed

  • irmin-pack
    • Improve GC reachability traversal to optimize memory, speed and remove the need for temporary files. (#2085, @art-w)

3.5.1

1 year ago

CHANGES:

Fixed

  • irmin-pack
    • Integrity check of a commit works on stores using the minimal indexing strategy. (#2160, @icristescu)

3.5.0

1 year ago

CHANGES:

Added

  • irmin-pack
    • Add Irmin_pack_unix.Stats.Latest_gc which is now the parameter of GC's finished callback (#2089, @Ngoguey42)
    • Add Gc.oldest_live_commit which returns the key of the commit on which the latest gc was called on. (#2110, @icristescu)
    • Add split to create a new suffix chunk. Subsequent writes will append to this chunk until split is called again. (#2118, @icristescu)
    • Add create_one_commit_store to create a new store from the existing one, containing only one commit. (#2125, @icristescu)

Changed

  • irmin-pack
    • Upgraded on-disk format to version 4. (#2110, @icristescu)
    • Detecting control file corruption with a checksum (#2119, @art-w)
    • Change on-disk layout of the suffix from a single file to a multiple, chunked file design (#2115, @metanivek)
    • Modify GC to work with new chunked suffix. See examples/gc.ml for a demonstration of how it works with the new split function. (#2126, @metanivek)

Fixed