Procedure for detecting BC breaking API changes in Cabal library
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
Description
Refactoring is good, and it is the way that code continuously improves. But I've observed that it is, esp on big refactors, it is easy to forget that you made a BC-breaking change to a user-facing problem. Then we only get notification that someone's code broke when we actually do a release and their code breaks.
In an ideal world, Cabal's public facing API would be carefully considered, so that it would be extremely obvious when a breaking change was made (because then, e.g., some signature would be broken.) But in reality, a lot of "internal" functions are exported, which is why it is difficult for us to remember when a BC breaking change is made.
So, we need some machine procedure to tell us when a BC breaking API change has been made, so that we can either undo it, or keep with it and write some guidance in the changelog.
Contributor guide
Research direction
No files or tests are named; start by examining Cabal's exported public API and its release and changelog workflow. Done means there is an agreed machine-checkable procedure for detecting backward-compatible API changes and guidance for handling detected breaks.
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
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100