Requirements for a bug-tracking system

Here’s what I want out of a bug tracking system:

  • Must track bugs
  • I want milestones with bugs in, so I can see, for a given release, how many bugs are still open, who’s working on them, and how close I am.
  • Speaking of which, a ‘release’ must be a first-class object, not just another sort of bug, with other bugs dependant on it. Releases are not bugs.
  • I want an intermediate stage of bug, between ‘open’, and ‘closed’, which is ‘complete and ready for testing’ – the tester should close the bug.
  • Has to be web-based, no platform-specific tools must be required..
  • ..but should also have a decent REST/something else API, so I can point a GUI tool at it when I want to. I’m a big fan of GUI tools.