Hackage at Baltimore
After the ICFP 2010 conference proper had come to a close, I came along for some Haskell-related revelry in Baltimore, from Thursday evening (Sept 30) to Sunday night (Oct 3). My paper-reading queue is chock full, and my wallet less so. Anyway, I had a good time and met some amazing people. I was there for a good reason, though.
I gave a talk at the Haskell Implementors’ Workshop about Hackage, which you can find at http://vimeo.com/15464003. It’s 35 minutes in total.
The presentation part is a straightforward overview. Open discussion starts at about 16:30. You can get the slides here [PDF].
I hope it gives you a better idea of where Hackage is going. During the weekend, I had some great discussions about Hackage, and comparing functional languages, and finance (of all things). Even better, there was actual solid planning. On Sunday, Duncan Coutts and I materialized a plan for switching over to the new Hackage. It’s up online at the Hackage trac wiki, and the current revision looks something like this:
- *Live mirroring (user-immutable, all accounts are historical)
- Get archive.tar.gz of all ~10,000 packages on Hackage
- Investigate unmirrorable packages (e.g. binembed-example, network-info, old-time)
- Get cabal-installs pointing at it
- Implement backup for newer features (not all essential):
- Download statistics
- Candidates
- Preferred versions + deprecation
- Get data migration (schema updates) working more smoothly
- *Live server beta testing (user-mutable, all accounts are active)
- Disable registration; main Hackage accounts imported in
- Still mirroring the main Hackage
- Changes made here will be wiped out when server is fully deployed
- Configure server with Apache to support the tracs, support https on Hackage
- When ready to deploy: turn off upload on current Hackage
- Construct export tarball with these features:
- core (packages, user db, admin list)
- upload (trustees, maintainers)
- tags (based on categories, initially)
- distro (from current files: arch + debian, eventually exherbo + ubuntu)
- download (from logs, give expected format to Galois log holders)
- versions (deprecated packages, preferred-versions)
- Wipe server state and restore from tarball
- *Switch!
Throughout all this there will be testing for backups and performance. The starred items are the significant ones that’ll be announced. They look like “use it with cabal-install!”, “use it as you please unofficially!”, and “use it as you please officially!”. If you’d like to learn more about some of the ideas behind hackage-server, the architecture document is a good starting point, as well as past blog posts and the features themselves.