haskell / haskell/cabal

Track private executable inter-component dependencies (Was: Document new `scope` field in manual)

Open
#4,503 5 comments 0 reactions 0 assignees View on GitHub
cabal-install: v2-build system type: enhancement
Dominant language
Haskell
Stars
1.7k
Forks
750
Avg merge
4d 3h
Merged PRs (30d)
28

Description

A new field `scope` was added via #4501

However, I don't see it mentioned anywhere in http://cabal.readthedocs.io/en/latest/cabal-projectindex.html so I have to assume it hasn't been documented yet.

I'm also wondering if this is only relevant to the old non-`new-build` paradigm, given how differently `new-build` works (executables live in the cabal nix store, and we'd probably just symlink to them, to create specific `bin/`-folder views into the store), or alternatively, how this is supposed to interact w/ the nix-style `new-build` paradigm.

/cc @DanielG

----

UPDATE:

Some bikeshedding names for the new property:

`(dist|runtime|libexec)-(tool-|exe-|)-depends`

Also, we need to implement some new `Paths_` lookup facilities; as we can *not* assume that things are locatable via the `libexec` folder due to the per-component nature of cabal's nix-style store.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the `scope` field introduced in #4501 and the Cabal project index linked in the issue. Trace how private executable dependencies should work for both the old paradigm and `new-build`, including per-component store locations and the proposed `Paths_` lookup facilities. Done means the dependency behavior and naming are settled and the relevant documentation and implementation are updated.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.