[Fwd: Platform policy question: API compatability in minor releases]

Duncan Coutts duncan.coutts at worc.ox.ac.uk
Sat May 9 15:17:39 EDT 2009


I sent this note to the libraries list to request a decision on a policy
decision: whether we should allow API additions in minor releases or
save API changes for major releases.

I would encourage you to express your opinion on the libraries list.

Duncan

-------- Forwarded Message --------
> From: Duncan Coutts <duncan.coutts at worc.ox.ac.uk>
> To: Haskell Libraries <libraries at haskell.org>
> Subject: Platform policy question: API compatability in minor releases
> Date: Sat, 09 May 2009 19:50:01 +0100
> 
> Hello everyone,
> 
> We (the platform release team) have a policy question about the Haskell
> Platform. We're asking here because we think the libraries list is the
> right authority to decide.
> 
> The Haskell Platform concept calls for major and minor releases. 
> 
>       * The point of major releases is to update the set of common
>         packages we all use. That is, to specify which packages and
>         which versions (corresponding to APIs). The target is to have
>         major releases every 6 months.
> 
>       * The point of minor releases is to support a major release across
>         a range of operating systems over time and respond to bugs that
>         are discovered in a library or tool subsequent to their release.
>         The target is to have 2-3 minor releases after major releases at
>         intervals on the order of 4-6 weeks.
> 
> 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.
> 
> It is clear that incompatible API changes must not be allowed in minor
> releases. On the other hand, bug fixes that do not change the API at all
> are ok.
> 
> Let me put some arguments in each case:
> 
> Allow compatible API additions
> 
>         If the change is compatible then it does not break any existing
>         programs, so it should be allowed. Any program that works with a
>         platform particular release will continue to work with
>         subsequent minor versions. This is standard backwards
>         compatibility policy.
>         
>         Getting minor feature improvements is sufficiently important
>         that it is too long to wait 6 months for the next major release
>         of the platform.
> 
> Allow only bug fixes, no API additions
> 
>         Forwards compatibility is important too. A developer should be
>         able to make a package and test it with platform version X.Y.2
>         and it should still work for a user with version X.Y.1. That way
>         we do not force upgrades on users all the time. Users should
>         only have to upgrade to a later minor release if earlier
>         versions didn't build/install/work on their OS, or if they hit
>         some particular bug which is fixed in a later minor release.
>         
>         There is no need for API changes in minor releases. Maintainers
>         can make a release with just the bug fixes to go into a minor
>         platform release and then make additional releases with new
>         features on Hackage. Users who want the new features can get the
>         new package version from Hackage.
>         
>         API additions in minor releases works against the distinction
>         between major and minor releases.
> 
> I hope that's not too biased a summary (I'll post my own opinion
> separately). If there is anything that I should clarify then please ask.
> 
> So please post your thoughts and arguments. I hope we can come to a
> conclusion within a few days. This is a timely issue because we aim to
> make a minor release on the 1st of June and we want to finalise the list
> of package versions two weeks prior, by the 18th of May.
> 
> http://trac.haskell.org/haskell-platform/wiki/ReleaseProcess
> 
> 
> Duncan
> 
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries




More information about the Haskell-platform mailing list