esy / esy

package.json workflow for native development with Reason/OCaml
http://esy.sh
Other
845 stars 93 forks source link

Esy ignores `with-test` annotations #1012

Open rgrinberg opened 4 years ago

rgrinberg commented 4 years ago

Opam projects use with-test to mark so called "test" dependencies. These must be present when building test binaries and executing the tests themselves. It seems like esy simply ignores them. This makes it virtually impossible to use esy to develop most opam packages.

To reproduce this issue, just try running the test suite for any opam package with with-test dependencies. For example: https://github.com/ocaml-ppx/ppxlib

anuragsoni commented 4 years ago

I've been trying esy with some proejcts recently and i'm curious which version of esy are you using? I have some dependencies labelled as {with-test} in routes and I see the test dependencies in the lock folder's index.json (they are marked as devDependencies which is what i expected) and I can the test suite out of the box.

EDIT: I've been working wiht esy version 0.5.8 and the esy nightly version 0.6.0

rgrinberg commented 4 years ago

I've been using 0.5.6. I've upgraded to 0.5.8 and this still seems to be a problem. @anuragsoni how do you run the tests on opium for example? I just tried $ esy dune runtest there and alcotest is missing as I would expect.

anuragsoni commented 4 years ago

@rgrinberg Hmm i was using esy dune runtest. I indeed see a failure in opium. I hadn't tried this in a project with more than one opam file before. When i delete one of the opam files in opium (say opium.opam) and then do an esy install + esy dune runtest -p opium_core, the tests run fine and I don't see any error about alcotest being missing.