
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