haskell / haskell/cabal

Global source-repository-packages

Open
#9,314 25 comments 5 reactions 0 assignees View on GitHub
cabal-install: source-repository-package type: enhancement
Dominant language
Haskell
Stars
1.7k
Forks
750
Avg merge
4d 3h
Merged PRs (30d)
28

Description

### Summary

When overriding dependencies using `source-repository-package`, the overridden packages become local packages.

This means that neither the source code or build results get cached between projects.
It also makes it difficult for `nix` tooling (or similar) to provide pre-cached packages as cabal-install will be reluctant to use a version of a package coming from a package database provided by this tooling.

### Proposal

Add a setting to `source-repository-package` stanzas that allow setting it to be local or global.

Default this to local if it depends on a local package, ie, to enforce a local package transitive closure property.

I think this default would work well for I think the two main use cases:
- overriding an external dependency (global)
- bringing in a tightly coupled sibling package (local)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.