haskell / haskell/cabal

Feature parity with Stack

Open
#8,605 35 comments 25 reactions 0 assignees View on GitHub
cabal-install: cmd/build cabal-install: cmd/test Cabal: code-coverage historical re: globbing re: stackage type: discussion type: enhancement
Dominant language
Haskell
Stars
1.7k
Forks
750
Avg merge
4d 3h
Merged PRs (30d)
28

Description

I would love to switch away from stack for development, but there are some real and important things missing to do so.
In this issue I'd like to list those with checkboxes, in case feature-parity with stack is something the cabal team would want to achieve:

* [ ] `cabal test all --no-rerun-tests`: Don't rerun test suites that have already passed.
* [ ] [`cabal test all --coverage`: Multi-package code coverage reports](https://docs.haskellstack.org/en/stable/coverage/)
* [ ] [`cabal build all --file-watch`: File watching](https://docs.haskellstack.org/en/stable/build_command/#the-stack-build-file-watch-flag). This is arguably not cabal's responsibility because you can do something close-enough with [feedback](https://github.com/NorfairKing/feedback) for example, but cabal is haskell-build-process-aware and could do better than feedback can.
* [ ] [Automatically executing `hpack` when necessary.](https://docs.haskellstack.org/en/stable/stack_yaml_vs_cabal_package_file/)
* [ ] `--pedantic`
* [ ] Dependency graph

Not available and not desirable IMO:
* [ ] GHC installation

---

**UPD** More ideas from the discussion below:

* [ ] Loading multiple packages in `cabal repl` a la `stack repl`.
* [ ] Better support for snapshots (details: https://github.com/haskell/cabal/issues/8605#issuecomment-1320075304)
* [ ] Docker integration ([see `stack` documentation]([docs.haskellstack.org/en/stable/docker_integration](https://docs.haskellstack.org/en/stable/docker_integration/)))

Contributor guide

Open the contributing guide

Research direction

The issue lists several independent parity ideas but names no Cabal files, tests, or entry points. Choose one checkbox, first inspect the relevant existing Cabal behavior and discussion, then define its scope and acceptance criteria before implementation; done would require that one feature to work with coverage in tests.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.