
On Sat, May 09, 2009 at 07:50:01PM +0100, Duncan Coutts wrote:
The question is this:
Should we allow compatible API additions to a library in a minor release of the platform?
The choice is between allowing only bug fixes in minor releases, or also allowing new features that add APIs but do not change any existing APIs.
IMHO, on most cases API additions are improvements, not bug fixes. Maybe there was a developer that needed that new function to be able to make better use of the library, but this kind of improvement should go to the next major release, otherwise the platform would be a moving target. However, this shouldn't be a hard restriction. Should a new addition be important enough for the package's usability, then it should be included with a big fat warning on the docs saying that you'll need to depend on a minor version of the platform. Somewhat related, ADTs should not be extended in minor releases unless they're not exported (of course). But contrary to new functions, I can't think of an ADT change that would be worhty of being added to a minor release. Another problem is that they may create partial functions on the user's code, while new functions shouldn't change the code's behaviour. Thanks, -- Felipe.