haskellfoundation / haskellfoundation/stability
Stability / Migration tools
- Dominant language
- No language data
- Stars
- 29
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Description
Where should we keep a list of all the things that would be nice to have? Is this a good place?
None of these are easy to implement, but the research has at least (with the exception of the last) already been done.
## Dealing with many versions
- Deprecated reexports (individual items and entire modules) https://gitlab.haskell.org/ghc/ghc/-/issues/4879
- CPP checking multiple combinations https://www.youtube.com/watch?v=YupkE1vsZ4o, https://www.cs.cmu.edu/~ckaestne/pdf/FOSD10-typechef.pdf, https://web.engr.oregonstate.edu/~erwig/CC/index.html (Rust also interested https://github.com/rust-lang/rfcs/blob/master/text/1868-portability-lint.md)
- Enriched hi files preserving configuration conditionality info. Can align with CPP variable "model" to make sure downstream packages abide by upstream CPP, wherever it leaks into the interface.
- Extract backpack "signatures" from regular modules. Good to avoid relying on hi files too much.
- Compare two signatures / hi files, lint PVP violations. (`cabal-diff` on steroids.)
- Leverage all the above to check cabal metadata doing an "all combinations" type check.
- Leverage all of the above to CI plausible max bound increases when new versions are released, if CI passes notify maintainers/trustees.
- Less need for breakage in the first place
- https://gitlab.haskell.org/ghc/ghc/-/issues/19507 Permit bundling pattern synonyms with type synonyms
## Avoiding churn in the first place
- Private dependencies, to make version solving more forgiving https://github.com/haskell/cabal/issues/4035
- Better exporting https://gitlab.haskell.org/ghc/ghc/-/issues/19507 and other issues.
- Make Orphans OK so dependencies can be fewer (and thus downstream breakage less cascading) https://gitlab.haskell.org/ghc/ghc/-/wikis/Rehabilitating-Orphans-with-Order-theory
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.