Cabal exact printer in stages? (and other grand design questions)
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
Description
_Previous take: https://github.com/haskell/cabal/issues/7544_
---
Hello 👋🏽
Good news!
I've gotten commitment from Haskell Foundation to start working on the [exact printer](https://github.com/haskellfoundation/tech-proposals/blob/df4a374fcd7babae4b99eb6b2c33e3dea3f983ac/proposals/0000-cabal-exact-printer.md). @leana8959 has agreed to help, she'll do the most work and I'll support her when she gets stuck or lost.
Recently I've encountered a better idea when working on HIE files then the timeline described in the proposal.
We can split up the exact print work into smaller PR's, which should make it easier to review them, for example:
+ Add comment parsing support (without printing, just store it in the tree)
+ Refactor common stanzas to be supported by a generic package description, instead of being merged and "forgotten".
If those features could be added independently, the exact printer PR itself no longer has to modify the parser, and it no longer has to do major refactors, so it becomes a lot smaller!
Furthermore, these PR's on their own will make it easier to study performance impact.
Do the maintainers think these two features are useful independently of the exact printer?
Or do you think it's preferable to make one big, exact print PR?
Contributor guide
Research direction
Start by reading the linked exact-printer proposal and the previous Cabal issue. Review the discussion about comment parsing, generic package descriptions, HIE files, and whether these should be separate changes. The issue is ready for implementation only once maintainers decide between staged PRs and one larger exact-printer change.
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
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100