I've written a few packages containing some extra functions for dealing with common types that reflect the way I like to use them (for instance, I prefer to treat Bson documents as maps, rather than lists of fields). I keep these packages in local source directories, not on Hackage.
I would like to introduce dependencies between these packages in their .cabal
files, using cabal's build-depends
system. But this leads to the following error (bson-docmap
being a local module):
cabal: At least the following dependencies are missing:
bson-docmap >=0.0
Is it possible to point cabal to a local directory as an alternate repository?
My current workaround is to keep all my modules in a single local package, but I would prefer to break them apart if possible.
If you're using Cabal sandboxes then you can add a local Cabalized directory as a source
cabal sandbox add-source path/to/project/dir
After this point it'll be available for build-depends
.
You may be able to create a ./cabal.project
file with content like:
packages: common/ backend/ frontend/
And then run $ cabal new-build all
.
An example of this can be seen here: https://github.com/ElvishJerricco/reflex-project-skeleton/blob/11c1feb/cabal.project
In your cabal.project
file add a new section:
source-repository-package
type: git
-- Normally this is a git URL, but a local path works too (but I think it must be absolute?):
location: /path/to/your/local/bson-docmap
-- Replace this with the commit you want to check out:
tag: e1a47b8802d12cd221eead508c5b4d9ccd65feb4
[Note that source-repository-package
is a keyword, not the name of the package you're referring to.]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With