(Imported from Trac #11, reported by @syntaxpolice on 2005-10-31)
We need to make this more explicit somewhere so that it's clear what might break in the future. Most of this is in the [source:Distribution/Simple.hs Simple module]. The first pass is at StableInterfaces.
(Imported comment by @dcoutts on 2005-10-31)
I've mostly been assuming that anything under Simple is not stable but the things directly in Distribution.* as mostly stable.
Similarly, the cabal file format should be stable (or at least backwards compatible) while the hooks api is sadly not stable which is a huge pain.
(Imported comment by @dcoutts on 2007-08-04)
The info from the StableInterfaces wiki page is now in the user guide.
The information here offered some clarity, but it doesn't seem like the usual package verioning policy is acceptable for Cabal: when the API for a function in Distribution.Simple.* changes that means the function becomes essentially unusable in a Setup.hs file (for years, until a package maintainer is comfortable dropping support for an older version of Cabal), for reasons outlined in #1320 .