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
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.