anchor.diff:  { lib, buildDunePackage, fetchurl, makeWrapper
   , curly, fmt, bos, cmdliner, re, rresult, logs
  -, odoc, opam-format, opam-core, opam-state, yojson
  +, odoc, opam-format, opam-core, opam-state, yojson, astring
   , opam, git, findlib, mercurial, bzip2, gnutar, coreutils
   , alcotest, mdx
   }:
  
positive.code: let runtimeInputs = [ opam findlib git mercurial bzip2 gnutar coreutils ];
  in buildDunePackage rec {
    pname = "dune-release";
    version = "1.4.0";
  
    minimumOCamlVersion = "4.06";
  
    src = fetchurl {
      url = "https://github.com/ocamllabs/${pname}/releases/download/${version}/${pname}-${version}.tbz";
      sha256 = "1frinv1rsrm30q6jclicsswpshkdwwdgxx7sp6q9w4c2p211n1ln";
    };
  
    nativeBuildInputs = [ makeWrapper ];
    buildInputs = [ curly fmt cmdliner re opam-format opam-state opam-core
                    rresult logs odoc bos yojson ];
    checkInputs = [ alcotest mdx ] ++ runtimeInputs;
    doCheck = true;
  
  
negative.code:     sed -i 's/yes |/yes 2>\/dev\/null |/' tests/bin/no_doc/run.t
    '';
  
    preCheck = ''
      # it fails when it tries to reference "./make_check_deterministic.exe"
      rm -fr tests/bin/check
    '';
  
    # tool specific env vars have been deprecated, use PATH
    preFixup = ''
      wrapProgram $out/bin/dune-release \
  