Skip to content
Edsko de Vries edited this page Aug 22, 2013 · 3 revisions

May be out of date

Roadmap for hackage-server and the eventual switch to it.

Stability

These are things to constantly check.

  • Tests for backup:
    • import . export == id (for server datatypes deriving Eq, check using TH)
    • export == export . import . export (for the tarball, check using MD5)
  • Investigate performance for hackage-server

Procedure

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