Skip to content

Releases: mirage/irmin

2.7.1

02 Jul 12:51
Compare
Choose a tag to compare

CHANGES:

Fixed

  • irmin-pack

2.7.0

22 Jun 17:22
Compare
Choose a tag to compare

CHANGES:

Fixed

Added

Changed

  • irmin-layers

    • Remove copy_in_upper from the repo configuration. The default is now to
      copy. (#1322, @Ngoguey42)
    • Simplify the API of freeze. It is now possible to specify two distinct
      commit closures for the copy to lower and the copy to next upper.
      (#1322, @Ngoguey42)
    • Renamed Irmin_layered_pack.Make and Irmin_layers.MakeintoIrmin_layered_pack.MakerandIrmin_layers.Maker` (#1369, @samoht)
    • Renamed Irmin_layered_pack.Make_ext and and Irmin_layers.Make_extinto intoIrmin_layered_pack.Maker_extandIrmin_layers.Maker_ext`
      (#1369, @samoht)
    • Renamed Irmin_layered_pack.Config into Irmin_layered_pack.Conf
      (#1370, @samoht)
    • Readonly instances can check for an ongoing freeze (#1382, @icristescu,
      @Ngoguey42)
  • irmin-pack

    • It is no longer possible to modify an inode that doesn't point to the root
      of a directory. (#1292, @Ngoguey42)
    • When configuring a store, is it no longer possible to set entries to a
      value larger than stable_hash. (#1292, @Ngoguey42)
    • Added number of objects to the output of stat-pack command in
      irmin-fsck. (#1311, @icristescu)
    • Renamed the Version module type into Version.S and io_version into
      version. The Pack.File and Atomic_write functors now take
      Version as their first parameter (#1352, @samoht)
    • Renamed Irmin_pack.Make into Irmin_pack.V1 (#1369, @samoht)
    • Renamed Irmin_pack.Config into Irmin_pack.Conf (#1370, @samoht)
    • Renamed Irmin_pack.Pack into Irmin_pack.Content_addressable and
      Irmin_pack.Pack.File into Irmin_pack.Content_addressable.Maker
      (#1377, @samoht)
    • Moved Irmin_pack.Store.Atomic_write into its own module (#1378, @samoht)
    • Checks.Reconstruct_index.run now takes an optional index_log_size
      parameter for customising the interval between merges during
      reconstruction. (#1459, @craigfe)

2.6.1

30 Apr 15:49
Compare
Choose a tag to compare

CHANGES:

This release contains 2.6.0 plus the changes described in 2.5.4.

2.5.4

29 Apr 14:07
Compare
Choose a tag to compare

CHANGES:

Fixed

  • irmin-pack

    • Revert a patch introduced in 2.3.0 which was calling Index.try_merge.
      This function was supposed to hint index to schedule merges after
      every commit. However, Index.try_merge is buggy and stacks merges
      which causes the node to block and wait for any existing merge to
      complete. We will revisit that feature in future once we fix
      Index.try_merge (#1409, @craigfe)
  • irmin

    • Fix peformance issue in Tree.update_tree and Tree.add_tree for
      large directories (#1315, @Ngoguey42)

Added

2.6.0

27 Apr 20:58
Compare
Choose a tag to compare

CHANGES:

Fixed

  • irmin

    • Fix stack overflow exception when working with wide trees (#1313, @zshipko)

    • Tree.of_concrete now prunes empty subdirectories, and raises
      Invalid_argument if the input contains duplicate bindings. (#1385,
      @craigfe)

  • irmin-chunk

    • Use the pre_hash function to compute entry keys instead of
      their raw binary representation (#1308, @samoht)

Changed

2.5.3

13 Apr 17:29
Compare
Choose a tag to compare

CHANGES:

Fixed

  • irmin
    • Fixed a bug causing equality functions derived from Store.tree_t to return
      false-negatives. (#1371, @craigfe)

Added

2.5.2

08 Apr 11:55
Compare
Choose a tag to compare

CHANGES:

Fixed

  • irmin

    • The Tree.update_tree and Tree.add_tree functions now interpret adding
      an empty subtree as a remove operation, rather than adding an empty
      directory. (#1335, @craigfe)
  • irmin-pack

    • Fix a performance regression where all caches where always cleaned by
      Store.sync when using the V1 format (#1360, @samoht)

2.5.1

19 Feb 15:19
Compare
Choose a tag to compare

CHANGES:

  • irmin-git
    • Use the last version of git 3.3.0. It fixes a bug about trailing LF on
      message. For Irmin users, it should not change anything (#1301, @dinosaure,
      @craigfe)

2.5.0

16 Feb 21:19
Compare
Choose a tag to compare

CHANGES:

Changed

  • irmin

    • Store.Tree.remove is now much faster when operating on large directories.
      The commits following removals are also much faster. (#1289, @Ngoguey42)

    • Changed Store.Tree.{of_hash, shallow} to take kinded hashes, allowing the
      creation of unforced contents values. (#1285, @craigfe)

    • Changed Tree.destruct to return lazy contents values, which may be forced
      with Tree.Contents.force. (#1285, @craigfe)

  • irmin-bench

2.4.0

02 Feb 22:06
Compare
Choose a tag to compare

CHANGES:

Fixed

  • irmin-pack

    • Fix a bug in inode where the remove function could cause hashing
      instabilities. No user-facing change since this function is not being used
      yet. (#1247, @Ngoguey42, @icristescu)
  • irmin

Added

  • irmin

    • Added a Perms module containing helper types for using phantom-typed
      capabilities as used by the store backends. (#1262, @craigfe)

    • Added an Exported_for_stores module containing miscellaneous helper types
      for building backends. (#1262, @craigfe)

    • Added new operations Tree.update and Tree.update_tree for efficient
      read-and-set on trees. (#1274, @craigfe)

  • irmin-pack:

  • irmin-bench

Changed

  • The irmin-mem package is now included with the irmin package under the
    library name irmin.mem. It keeps the same top-level module name of
    Irmin_mem. (#1276, @craigfe)

Removed

  • Irmin_mem no longer provides the layered in-memory store Make_layered.
    This can be constructed manually via Irmin_layers.Make. (#1276, @craigfe)