Workflow with many separate library / executable / test-suite stanzas is slow
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
Description
**Describe the bug**
We have a project with a [`.cabal` file](https://github.com/facebookincubator/Glean/blob/main/glean.cabal.in) that contains 40+ library stanzas, a dozen or so executables and 50+ test-suite stanzas. Working with this project is painful, because every change to the `.cabal` file causes all the libraries to be re-configured on the next `cabal build`.
Instead I would hope that changes only cause re-configuring of any affected libraries or executables or tests.
**To Reproduce**
Build instructions here https://glean.software/docs/building/
But you probably don't need to reproduce it using Glean, it should be easy to construct a simpler repro.
**Expected behavior**
Changes to the `.cabal` file, e.g. adding a new module or a new item to a `build-depends`, don't cause so much re-configuring.
**System information**
Linux Fedora 35
Contributor guide
Research direction
Start with the linked glean.cabal.in example and the Glean build instructions, then run cabal build after a .cabal-file change to observe which components are re-configured. A useful result would limit re-configuration to affected libraries, executables, or test suites rather than rebuilding all stanzas.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100