Lately it's become more and more clear to me that we cannot release (or work) on cabal effectively without often breaking previously working features. Cabal is a big project by now and has a large surface area, both in terms of features and in terms of systems (e.g. compilers, OSes, etc) it interacts with.
On top of that, Cabal, being a glorified system for doing command line I/O, gets less support from the type system than your average Haskell program.
I strongly suggest that future feature additions come with unit tests, preferable of the fast kind in Cabal/tests/UnitTests.hs but at the very least of the kind in Cabal/tests/PackageTests (and similarly for cabal-install). We also need to spend some time adding tests for existing features. A good start would be to look at the regressions we saw in 1.22 and writing test cases for those.
-- Johan, release manager