Description
This means that --enable-tests
will build the tests of those dependencies, --enable-benchmarks
will build the benchmarks, new-test
will (presumably) run their tests, and so on.
This was quite surprising to me, since my primary use case for source-repository-package
is to swap in a broken version of a dependency with a fixed pre-release version from the VCS. But doing that means that, if the dependency's test suite is not in great condition (e.g., it doesn't even compile because I'm trying to port things to a new GHC version), I'm suddenly going to be affected by that!
The discussion in #2189 suggests that this is for implementation convenience (which is entirely reasonable), rather than a deliberate decision. Are there use cases where packages being pulled from a VCS should be local for principled reasons? I can't think of any off the top of my head, but there's a whole universe of potential weirdness out there.
Edit: Also, I suspect we could decouple the relevant aspects of 'localness': a source-repository-package
could be treated as local for the purposes of recompilation checking and not going into the global store, but non-local for the purposes of 'should this package's tests/benchmarks be available for building/running?'.