Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dropping a typeclass instance and the package version policy

Tags:

haskell

I've been asked to drop my dependency on system-filepath.

My package defines a typeclass Arguable, and defines an instance for Filesystem.Path's FilePath type. No system-filepath means no Filesystem.Path means no FilePath, so by dropping this dependency, I'd be changing my API to no longer provide the Arguable instance.

How does that line up with the PVP? Is this a major version change?

like image 929
rampion Avatar asked Oct 30 '22 21:10

rampion


1 Answers

Yes, it's a major version change. The Haskell wiki page on the PVP states about A.B.C version numbers (relevant phrase bolded):

  1. If any entity was removed, or the types of any entities or the definitions of datatypes or classes were changed, or orphan instances were added or any instances were removed, then the new A.B must be greater than the previous A.B. Note that modifying imports or depending on a newer version of another package may cause extra orphan instances to be exported and thus force a major version change.
  2. Otherwise, if only new bindings, types, classes, non-orphan instances or modules (but see below) were added to the interface, then A.B may remain the same but the new C must be greater than the old C. Note that modifying imports or depending on a newer version of another package may cause extra non-orphan instances to be exported and thus force a minor version change.
  3. Otherwise, A.B.C may remain the same (other version components may change).
like image 61
Ørjan Johansen Avatar answered Nov 15 '22 10:11

Ørjan Johansen