Suboptimal output for multiple-package projects (-j and sandboxing)
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
Description
When building multiple related packages at once using the sandboxing functionality and `-j`, it's annoying that only the last few lines of the build log are printed when the build fails. When developing, it would be nice if the entire text of the errors, or just the entire contents of the build log, were printed on failure instead, possibly controlled by an option. I think warnings are also elided from the build log when using `-j`, which is a shame.
Also, the entire list of packages to be rebuilt are printed at the start, as well as a spurious warning about the danger of reinstalls (when half the point of using the sandboxing functionality is that it reinstalls what needs to be reinstalled); this is fairly noisy, so perhaps it should be omitted (at least by default). The packages are named while they're being rebuilt, anyway. This list also often gets repeated on build failure (because packages to be installed that depend on the one that failed are listed), which can drown out the error text.
A final, minor complaint: I don't know how difficult this would be to fix, but error messages refer to source files relative to their locations in the package being built; it would be nice if they were given relative to the directory cabal-install is being run from instead, so that they can be pasted into the shell without prefixing the package name.
Contributor guide
Research direction
Start by reproducing a failing multiple-package sandboxed build with -j and inspect how cabal-install presents build logs, warnings, package lists, and source paths. The work is complete when failure output preserves the useful error and warning text, noisy listings are handled as intended, and paths are relative to the invocation directory; the issue does not name specific files or tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- build-system, cli, developer-experience
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100