github mirage/irmin 2.2.0

latest releases: 3.9.0, 3.8.0, 3.7.2...
3 years ago

CHANGES:

Added

  • irmin:

  • ppx_irmin

    • Added support for the @nobuiltin attribute, which can be used when
      shadowing primitive types such as unit. See README_PPX for details.
      (#993, @craigfe)

    • Added support for a lib argument, which can be used to supply primitive
      type representations from modules other than Irmin.Type. (#994, @craigfe)

Changed

  • irmin:

    • Require OCaml 4.07 (#961, @craigfe)

    • Add sanity checks when creating Irmin.Type records, variants and enums
      (#956 and #966, @liautaud):

      • Irmin.Type.{sealr,sealv,enum} will now raise Invalid_argument if two
        components have the same name;
      • Irmin.Type.{field,case0,case1} will now raise Invalid_argument if
        the component name is not a valid UTF-8 string.
    • Changed the JSON encoding of options and unit to avoid ambiguous cases
      (#967, @liautaud):

      • () is now encoded as {};
      • None is now encoded as null;
      • Some x is now encoded as {"some": x};
      • Fields of records which have value None are still omitted;
      • Fields of records which have value Some x are still unboxed into x.
    • Changed pretty-printing of Irmin types to more closely resemble OCaml types.
      e.g. pair int string prints as int * string. (#997, @craigfe)

    • The type Irmin.S.tree is now abstract. The previous form can be coerced
      to/from the abstract representation with the new functions
      Irmin.S.Tree.{v,destruct} respectively. (#990, @craigfe)

  • irmin-mem

    • Stores created with KV now expose their unit metadata type. (#995,
      @craigfe)

Fixed

  • irmin-graphql
    • Fixed an issue with keys inside get_{contents,tree} fields having
      incorrect ordering (#989, @craigfe)

Don't miss a new irmin release

NewReleases is sending notifications on new releases.