opam-version: "2.0"
maintainer:   "thomas@gazagnaire.org"
authors:      "Thomas Gazagnaire"
license:      "ISC"
homepage:     "https://github.com/mirage/ocaml-git"
bug-reports:  "https://github.com/mirage/ocaml-git/issues"
dev-repo: "git+https://github.com/mirage/ocaml-git.git"
doc:          "https://mirage.github.io/ocaml-git/"

build: [
  ["jbuilder" "subst" "-p" name] {pinned}
  ["jbuilder" "build" "-p" name "-j" jobs]
  ["jbuilder" "runtest" "test/git"] {with-test}
]
depends: [
  "ocaml" {>= "4.02.3"}
  "jbuilder"
  "mstruct" {>= "1.3.1"}
  "ocamlgraph"
  "uri" {>= "1.3.12"}
  "lwt" {>= "2.4.7"}
  "logs"
  "fmt"
  "hex"
  "astring"
  "ocplib-endian"
  "decompress" {>= "0.6" & <= "0.7"}
  "alcotest" {with-test}
  "nocrypto" {with-test}
  "mtime" {with-test & >= "1.0.0"}
]
synopsis: "Git format and protocol in pure OCaml"
description: """
Support for on-disk and in-memory Git stores. Can read and write all
the Git objects: the usual blobs, trees, commits and tags but also
the pack files, pack indexes and the index file (where the staging area
lives).

All the objects share a consistent API, and convenience functions are
provided to manipulate the different objects. For instance, it is
possible to make a pack file position independent (as the Zlib
compression might change the relative offsets between the packed
objects), to generate pack indexes from pack files, or to expand
the filesystem of a given commit."""
url {
  src:
    "https://github.com/mirage/ocaml-git/releases/download/1.11.3/git-1.11.3.tbz"
  checksum: "md5=18254fe863fa8164f2a931f62392cb66"
}
