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:

  1. *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
  2. Implement backup for newer features (not all essential):
    • Download statistics
    • Candidates
    • Preferred versions + deprecation
  3. Get data migration (schema updates) working more smoothly
  4. *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
  5. Configure server with Apache to support the tracs, support https on Hackage
  6. When ready to deploy: turn off upload on current Hackage
  7. 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)
  8. Wipe server state and restore from tarball
  9. *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.


October 4, 2010. Uncategorized. 1 comment.