cabal-dev icon indicating copy to clipboard operation
cabal-dev copied to clipboard

Set HASKELL_PACKAGE_SANDBOX environment variable

Open snoyberg opened this issue 13 years ago • 7 comments

This is related to a few other issues in other projects: fpco/stackage#3 sol/doctest-haskell#39 faylang/fay#174

There are some packages which make use of the package database themselves. Fay calls GHC for type checking, doctest calls it to test code snippets, and there are likely others. This works fine when using the standard user package database, but when using a sandbox such as created by cabal-dev, this no longer works.

The solution we came up with for Stackage was to set a HASKELL_PACKAGE_SANDBOX environment variable. doctest now recognizes it, and in theory Fay can do so as well. I think it would make sense for cabal-dev to set this variable as well.

Note that this is similar to GHC_PACKAGE_PATH, but works around the fact that cabal-install will not allow that variable to be set.

Pinging @sol @chrisdone and @jwiegley who have each been affected by this somehow.

snoyberg avatar Dec 02 '12 09:12 snoyberg

Michael Snoyman [email protected] writes:

Pinging @sol @chrisdone and @jwiegley who have each been affected by this somehow.

I updated and ran the build again, but I'm still seeing that same test failure in conduit:

--8<---------------cut here---------------start------------->8--- Data/Conduit.hs:79:8: Could not find module `Data.Void' Perhaps you meant Data.Word (from base) Data.Word (needs flag -package haskell2010-1.1.0.1) Use -v to see a list of the files searched for. Test suite doctests: FAIL --8<---------------cut here---------------end--------------->8---

John Wiegley FP Complete Haskell tools, training and consulting http://fpcomplete.com johnw on #haskell/irc.freenode.net

jwiegley avatar Dec 02 '12 10:12 jwiegley

It's because the new doctest isn't on Hackage.

snoyberg avatar Dec 02 '12 11:12 snoyberg

There are some issues that I have to resolve. I'm working on it, sorry for the delay.

sol avatar Dec 02 '12 13:12 sol

doctest-0.9.4 has support for HASKELL_PACKAGE_SANDBOX.

sol avatar Dec 02 '12 13:12 sol

Would it make sense to set GHC_PACKAGE_PATH before running the tests, instead?

Similar to fpco/stackage@2534579.

sol avatar Dec 04 '12 07:12 sol

That change would probably have to take place in cabal-install instead, as I think it calls all of the tests itself.

snoyberg avatar Dec 04 '12 08:12 snoyberg

@snoyberg Ah ok, I see what you mean. cabal-dev does not wrap the commands individually, so there is currently no easy way to tell whether it's cabal-dev test.

sol avatar Dec 04 '12 09:12 sol