HackageDB/2.0/Switchover

Version 1 (modified by mgruen, 3 years ago)

more on switching page

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, crypto-api, 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 people)
    • versions (deprecated packages, preferred-versions)
  8. Wipe server state and restore from tarball
  9. *Switch!