Platform policy question: API compatability in minor releases
wren ng thornton
wren at community.haskell.org
Sun May 10 01:18:03 EDT 2009
Duncan Coutts wrote:
> So by arguing for new features in minor releases we're saying we should
> have a 4-6 week cycle. New library features every 6 weeks.
Thanks for putting some numbers on that. (and, yikes! I'm convinced. I
was under the impression that there'd be fewer minor releases than that.)
> Now perhaps 12 months is too long (I think it is). Perhaps 6 months is
> too long even (though many other groups have settled on 6 months). But
> surely 6 weeks is far too short. That means essentially no
> synchronisation effect at all.
> If the majority opinion is that 6 months is too long to wait for new
> features, then how about 4 months, or even 3? Do people see the point
> I'm trying to make about the value of synchronisation?
I think that, given the rate of change in the Haskell world, 12 months
is far too long. And I agree that a big part of the platform should be
to provide synchronization, for which 6 weeks isn't enough.
In choosing between 3, 4, or 6 months (for 4, 3, and 2 times per year) I
think there's a balance that needs to be struck for the platform to be
useful to users. If updates are too few and too far between (as has
historically been the case), then active users will update the packages
individually, thus defeating the point of the platform. On the other
side of things, synchronicity.
Of those three options, I think 4 months is probably ideal. Quarterly
releases still don't give much time for synchronization. For stable
packages (like are currently included) development is slower in terms of
API changes, so 6 months may suffice, but if younger packages are added
then I don't think biannual releases will allow the HP to track
development closely enough.
I still think that it would be good to try to have a three stage model
for releases, instead of the two stage model that seems to be assumed.
Adding new packages or destructive API changes strike me as being very
different from compatible API changes (which are, in turn, separate from
big fixes and bundling fixes). I'd like to see these two types of
changes being distinguished in terms of the release schedule.
More information about the Libraries