FYI, I've changed the setuptools version parsing scheme. The release of a 'Subway 0.2-rc1' today made it clear that the existing scheme was unintuitive in how it handled '-' characters, because people expect the '-' not to override the 'rc'-ness.
In all previous versions of setuptools, a '-' always meant "this is a post-release patch of the thing before the dash". As of 0.6a9-r41630, however, the '-' is ignored when it comes before a prerelease tag like 'rc' or 'b' or 'dev', so that the intuitively-expected behavior holds.
This should also fix the existing issues with CherryPy 2.1.0-rc2 and similar releases out there.
I've also updated the setuptools doc page with a section on specifying your project's version number:
(The advice given there will work for all versions of setuptools, as it is based on the less-forgiving algorithm that's already out there.)