
Speaking as such a developer, I agree with Howard: can we please strongly
encourage upwards compatibility in API changes and well-documented migration
paths when this is not practical.
I was somewhat surprised to see maintainers being given carte blanche to
break APIs, package-maintainers and developers not always having the same
interests.
It could take only a few package maintainers to get it wrong over several
revisions and Hackage and maybe Haskell Platform could get a reputation for
instability.
Is it understood that any changes that could break code must break the code
statically?
Chris
From: libraries-bounces@haskell.org [mailto:libraries-bounces@haskell.org]
On Behalf Of Howard B. Golden
Sent: 06 January 2011 17:36
To: libraries@haskell.org; marlowsd@gmail.com
Subject: Re: Proposal: Change to library proposal process
On 06 Jan 2011 11:32:45 +0000, Simon Marlow
The changes being proposed by Greg and Johan, as I understand it, would amount to the following. I'm willing to give it a try; we can always go back if it doesn't work out.
- maintainers are empowered to make API changes.
- no formal review process for API changes, although there is an expectation that non-trivial changes would still be discussed on the list beforehand.
From my experience upgrading Gentoo's Haskell distribution, I would like to suggest a bit more structure than this. API changes can wreak havoc with many packages. Therefore, I believe that we should _strongly_encourage_ upward compatibility in API changes.
This doesn't require that APIs remain static, nor need it cause a lot of difficulty for maintainers, if we _encourage_ smooth migration to the new API. One possible approach would be to add conditional compilation directives so the new and old APIs can co-exist initially. This would provide an easy workaround for packages that depend on the old API. There may be better methods than this, but this is always an option. Alternatively, we should try to develop adapter libraries (e.g., old-time and old-locale) so old code can still be compiled with minimal modification. There are still many packages that depend on base-3 and the switch to ghc-7.0 and base-4.3 breaks them. From the perspective of an enterprise developer the current situation is a show-stopper. In order to gain more enterprise penetration we need to make upgrades less painful. Cheers, Howard _______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries _____ No virus found in this message. Checked by AVG - www.avg.com Version: 10.0.1191 / Virus Database: 1435/3362 - Release Date: 01/05/11