As well as making a new release, I rewrote most of the Makefile, so that it uses cabal to build git-annex. This avoids some duplication, and most importantly, means that the Makefile can auto-detect available libraries rather than needing to juggle build flags manually. Which was becoming a real pain.

I had avoided doing this before because cabal is slow for me on my little netbook. Adding ten seconds to every rebuild really does matter! But I came up with a hack to let me do incremental development builds without the cabal overhead, by intercepting and reusing the ghc command that cabal runs.

There was also cabal "fun" to get the Android build working with cabal. And more fun involving building the test suite. For various reasons, I decided to move the test suite into the git-annex binary. So you can run git annex test at any time, any place, and it self-tests. That's a neat trick I've seen one or two other programs do, and probably the nicest thing to come out of what was otherwise a pretty yak shaving change that involved babysitting builds all day.