The Haskell Package Versioning Policy
image/svg+xml
The Haskell Package Versioning Policy
Ben Gamari
So you are releasing a new package version?
Use this decision graph to determinehow you should version your new releaseunder Haskell Package Versioining Policy.
Has any exportedentity beenremoved?
Did any the visible constructors of anyvisible typeschange?
Were anyorphan instancesadded orremoved?
Might anew import ordependency versionhave transitivelyadded anorphan instance?
In this case only, • non-orphan instances • functions • types and constructorswere added to the library'sexported interface.No breakage of existingusers could result andtherefore a minor bump issufficient.
Did the behaviorof any exportedfunctionschange?
Consider renamingthe function instead.
No
Yes
No
No
No
No
Yes
Yes
Yes
Yes
Amajor versionbump isnecessary
In this case users of yourlibrary's existing interfacesmay break when build against your new release.Indicate this with amajor bump.
If your last release's version was
A . B . C
A . (B+1) . C
(A+1) . B . C
or
A . B . (C+1)
Your new releaseversion should be,
Only aminor versionbump isnecessary