package vendredi

All checked builds pass
  1. Overview
  2. Docs
Tool for generating dune projects which vendor given packages for the purpose of testing that their dependencies are vendor-friendly

Install

dune-project
 Dependency

Authors

Maintainers

Sources

0.1.0.tar.gz
md5=3492a6e9b9019ef4ea5c9fcda0bb836d
sha512=703861be6648455b7f025d9ab22c379e150621e0dbff497d8836a662e673357cf286f58a4fbbe908bdad18d69200647d520f134126047241cc5d792ecc99e3f5

Description

Added to opam-repository:

README

vendredi

Tool for generating dune projects which vendor given packages for the purpose of testing that their dependencies are vendor-friendly

Example

To test whether the opam package curses can be vendored:

# creates a project at /tmp/curses-test which vendores the curses opam library
$ vendredi /tmp/curses-test --opam curses

$ cd /tmp/curses-test

$ ls
vendored  dune  dune-project  hello.ml

$ ls vendored
curses.1.0.10

$ cat dune
(executable
 (public_name hello)
 (libraries curses))

# build with dune (you'll have to install the dependencies of curses for this to work)
$ dune build
File "vendored/curses.1.0.10/dune", line 40, characters 0-207:
40 | (rule
41 |  (target curses.ml)
42 |  (deps _curses.ml _config.ml _functions.c _keys.ml config.h)
43 |  (action
44 |   (chdir
45 |    %{workspace_root}
46 |    (with-stdout-to
47 |     %{target}
48 |     (system "%{bin:gcc} -x c -E _curses.ml")))))
cc1: fatal error: _curses.ml: No such file or directory
compilation terminated.

# fix the package
$ patch -p1 <<EOF
> diff --git a/vendored/curses.1.0.10/dune b/vendored/curses.1.0.10/dune
> index 883f555..11f8032 100644
> --- a/vendored/curses.1.0.10/dune
> +++ b/vendored/curses.1.0.10/dune
> @@ -42,7 +42,7 @@
>   (deps _curses.ml _config.ml _functions.c _keys.ml config.h)
>   (action
>    (chdir
> -   %{workspace_root}
> +   %{project_root}
>     (with-stdout-to
>      %{target}
>      (system "%{bin:gcc} -x c -E _curses.ml")))))
> EOF
patching file vendored/curses.1.0.10/dune

# now it builds
$ dune build

Dependencies (8)

  1. re >= "1.8"
  2. ppx_sexp_conv
  3. sexplib >= "v0.15"
  4. fmt
  5. logs
  6. cmdliner >= "1.1"
  7. dune >= "3.6"
  8. ocaml >= "4.14"

Dev Dependencies (1)

  1. odoc with-doc

Optional Dependencies

None

Used by

None

Conflicts

None

Build status

Results of building vendredi with each compiler on check.ci.ocaml.org, run of against opam-repository 8a77e58. All results for this package.

Each result links to its build log. To keep crawlers from overloading the site, build logs require a GitHub sign-in (see ocurrent/opam-health-check). On your first log, GitHub asks you to “Authorize opam-health-check”, the OCurrent app that runs these checks; it sees only your public profile, not your repositories. The sign-in lasts 30 days.

Version OCaml 4.11 OCaml 4.14 OCaml 5.2 OCaml 5.4 OCaml 5.5
0.1.0 (this version) n/a good good good good
  • good Package successfully built
  • partial One of the dependencies failed to build
  • bad Package failed to build
  • n/a Package is not available in this environment
  • internal Internal failure