Breaking Changes and Long Term Support Haskell

Geoffrey Mainland mainland at apeiron.net
Wed Oct 21 14:43:52 UTC 2015


On 10/21/2015 07:30 AM, Simon Peyton Jones wrote:
> Friends
>
> I think it's good for us to debate the question of how we should balance innovation against change; and how we should make those decisions in future.  Geoff's message had some good ideas, especially this bit:
>
> |  Proposal 2: After a suitable period of discussion on the libraries list, the
> |  Core Libraries Committee will summarize the arguments for and against a
> |  proposal and post it, along with a (justified) preliminary decision, to a
> |  low-traffic, announce-only email list. After another suitable period of
> |  discussion, they will issue a final decision. What is a suitable period of
> |  time? Perhaps that depends on the properties of the proposal, such as
> |  whether it breaks backwards compatibility.
>
> Identifying major changes to the libraries, and having a better publicised, more RFC-like process for deliberating them, would be a good thing.  I believe that the Core Libraries committee is thinking actively about this.
>
> |  Personally, I think AMP was the right thing to do, but I don't think FTP was
> |  the right thing.
>
> These make good examples to motivate future changes to our process.  But in the end FTP was subject to a pretty broad deliberative process, precisely along the lines that Geoff suggests above.  We had two clearly-articulated alternatives, a discrete call for opinions broadcast to every Haskell channel we could find, a decent interval for people to respond, and (as it turned out) a very clear preponderance of opinion in one direction.  In a big community, even a broad consultation may yield a result that some think is ill-advised.  That's part of the joyful burden of being a big community.
>
> Let's look forward, not back.  I think we can do better in future than we have done in the past.  I don't think we can hope for unanimity, but I think we can reasonably seek 
>
>  * transparency; 
>  * clarity about what decisions are on the table; 
>  * broad consultation about decisions that affect 
>     a broad constituency; and 
>  * a decent opportunity to debate them without having 
>     to be involved in massive email threads.  Let's try do to that.
>
> Simon
>
> PS: For what it's worth I'm less keen on Geoff's other proposal:
>
> |  Proposal 3: A decision regarding any proposal that significantly affects
> |  backwards compatibility is within the purview of the Haskell Prime
> |  Committee, not the Core Libraries Committee.
>
> *Precisely* the same issues will arise whether it's CLC or HPC.  And the HPC is going to be jolly busy with language issues. Moving the question from one group to another risks avoiding the issue rather than addressing it.

For the record, I am also not sure Proposal 3 is a good idea :)

However, I do think we could clarify what the respective
responsibilities of the core libraries committee and Haskell Prime
committees are.

One possible choice is that the core libraries committee is responsible
for changes to the core libraries that do not affect libraries in the
report. It is meant to be nimble, able to quickly deal with the large
volume of library changes that do not impact backwards compatibility.

In this scenario, the Haskell Prime committee, using a longer
deliberative process, would consider the more impactful library changes
and batch them up into new reports.

You are absolutely correct that moving the question to the Haskell Prime
committee risks pushing the issue around. The idea behind the separation
outlined above is to reduce the treadmill; the two bodies use different
processes, with different time frames, to arrive at decisions. Some
library decisions may deserve a longer deliberative process.

Cheers,
Geoff


More information about the Libraries mailing list