Phillip J. Eby wrote:
> Rob Cakebread wrote:
> > I've got CherryPy-2.1 final installed and it works fine with setuptools
> > 0.6a7
> > With 0.6a8 I get this:
> >
> > $ tg-admin
> > Traceback (most recent call last):
> >   File "/usr/bin/tg-admin", line 5, in ?
> >     from pkg_resources import load_entry_point
> >   File
> > "/usr/lib64/python2.4/site-packages/setuptools-0.6a8-py2.4.egg/pkg_resources.py",
> > line 2195, in ?
> >     for dist in working_set.resolve(
> >   File
> > "/usr/lib64/python2.4/site-packages/setuptools-0.6a8-py2.4.egg/pkg_resources.py",
> > line 483, in resolve
> >     raise DistributionNotFound(req)  # XXX put more info here
> > pkg_resources.DistributionNotFound: CherryPy>=2.1.0-rc2
> >
> > I can import it fine with: python -c "import cherrypy"
>
> -rc2 is a patchlevel version, not a prerelease version.  Thus, code
> that looks for >=2.1.0-rc2 wants a version *later* than 2.1.0 final.
> Your requirement should list >=2.1.0 instead.
>
> To avoid this problem in future, do not use '-' for prerelease tags;
> setuptools recognizes '2.1.0rc2' or '2.1.0.rc2' (or '2.1rc2') as
> equivalent prerelease versions, but '-' means "post-release patch".

Have you considered using text history file for releases? Then you
don't have to guess the order of releases, the file can also describe
branches:

------- .egg-info/releases.txt --------
...
2.1a1
2.1.beta1
2.1.beta2
2.1.0-rc2
2.1.0
2.2alpha1
...

[2.1.0 bugfix] # 2.1 bug-fix branch
2.1.1-rc1
2.1.1-rc2
2.1.1
2.1.2-rc1
2.1.2
------------------------------------------------
This way you can restrict upgrades to one branch like "2.1.0 bugfix".

Reply via email to