+1!<div><br></div><div>This simple change would dramatically decrease my workload. </div><div><br></div><div>I often add instances for my own classes to my own types, and the need for a major version bump can ripple through 20+ packages and then out into 3rd party packages.</div>
<div><br></div><div>-Edward<br><br><div class="gmail_quote">On Thu, Sep 6, 2012 at 7:24 AM, Simon Marlow <span dir="ltr">&lt;<a href="mailto:marlowsd@gmail.com" target="_blank">marlowsd@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 06/09/2012 01:16, Johan Tibell wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi all,<br>
<br>
The PVP says:<br>
<br>
&quot;A.B is known as the major version number, and C the minor version<br>
number. When a package is updated, the following rules govern how the<br>
version number must change relative to the previous version:<br>
<br>
1. If any entity was removed, or the types of any entities or the<br>
definitions of datatypes or classes were changed, or instances were<br>
added or removed, then the new A.B must be greater than the previous<br>
A.B. Note that modifying imports or depending on a newer version of<br>
another package may cause extra instances to be exported and thus<br>
force a major version change.&quot;<br>
<br>
The part about adding instances and the one about modifying imports<br>
makes it hard to follow the PVP. Bumping the major version number is a<br>
quite disruptive change for your users if they use upper bounds on<br>
their dependencies. Minor version bumps are not nearly as disruptive<br>
as you can you can depend on x.y.* as long as you only use qualified<br>
imports and/or explicit import lists.<br>
<br>
Assuming no one uses orphan instances, adding instances is always safe<br>
because you can only add instances for types from packages you depend<br>
on, which means that they can&#39;t be depending on your package in turn<br>
and have defined a non-orphan instance for a type or class defined in<br>
your package.<br>
<br>
I suggest that the rule be changed to not require a major version bump<br>
if instances are added.<br>
</blockquote>
<br></div></div>
Yes, I think this is reasonable.  The client already has some obligations if they want to be independent of minor versions: they have to use explicit import lists.  So adding another obligation, no orphan instances, is consistent with this and shouldn&#39;t cause problems in the majority of cases.<br>

<br>
Cheers,<br>
        Simon<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
P.S. I believe the same reasoning can be applied to the import part of<br>
the rule above.<br>
<br>
-- Johan<br>
<br>
______________________________<u></u>_________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/libraries" target="_blank">http://www.haskell.org/<u></u>mailman/listinfo/libraries</a><br>
<br>
</blockquote>
<br>
<br>
______________________________<u></u>_________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/libraries" target="_blank">http://www.haskell.org/<u></u>mailman/listinfo/libraries</a><br>
</div></div></blockquote></div><br></div>