Relaxin the PVP with regards to adding instances

Henning Thielemann lemming at
Thu Sep 6 10:37:15 CEST 2012

On Wed, 5 Sep 2012, Johan Tibell wrote:

> The PVP says:
> "A.B is known as the major version number, and C the minor version
> number. When a package is updated, the following rules govern how the
> version number must change relative to the previous version:
> 1. If any entity was removed, or the types of any entities or the
> definitions of datatypes or classes were changed, or instances were
> added or 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 instances to be exported and thus
> force a major version change."
> The part about adding instances and the one about modifying imports
> makes it hard to follow the PVP. Bumping the major version number is a
> quite disruptive change for your users if they use upper bounds on
> their dependencies. Minor version bumps are not nearly as disruptive
> as you can you can depend on x.y.* as long as you only use qualified
> imports and/or explicit import lists.

I would like to see this change to the PVP for long, now, for the same 
reasons. Actually I have already mentally modified the PVP for my packages 
and have added instances to my packages with only a minor version bump.
  However I learned that not only Orphan Instances can cause conflicts, but 
Flexible Instances can lead to Overlapping Instances, too. That is, in 
order to change the PVP in the proposed way, we need also a notion of good 
style instances that prevent overlapping or clashing instances.

More information about the Libraries mailing list