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 <marlowsd@gmail.com> wrote:
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