haskell / haskell/cabal

Procedure for detecting BC breaking API changes in Cabal library

Open
#4,276 2 comments 0 reactions 0 assignees View on GitHub
continuous-integration type: enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.