On Mon, Oct 15, 2012 at 1:35 PM, Julien Rioux <[email protected]>wrote:
> Hi, > > > On Wednesday, 10 October 2012 22:03:27 UTC-4, Aaron Meurer wrote: >> >> I was afraid it might happen, but I thought that there should at least >> be a way to name the packages so that pip installs the right one in >> Python 2 or Python 3. In fact, I still do not know for sure that this >> is indeed not possible, so I would like to investigate this option >> further before giving up on it. >> >> > The naming of the tarball needs to include the python version in the > format "-py2.7". Unfortunately, specifying only major version as in "-py2" > and "-py3" won't work, as pip will reject the tarball as providing a python > version that doesn't match with the requested one. So we need tarball (or > symlinks) for each supported version. > Well, at least it will work. I'll see if we can upload just the two files on Google Code and the specific files on PyPI, with the Google Code files named in such a way that pip installs the PyPI files first. > > >> I did know that pip would be installing the release candidates, but >> there's nothing I can do about that, except rename the tarballs to >> trick it. >> >> > pip starts out at > http://pypi.python.org/pypi/**sympy<http://pypi.python.org/pypi/sympy>and it > finds the "Home Page" link and the "Download URL" link. It then > crawls those pages for links that include the text "homepage" and > "download". From http://sympy.org (currently listed as the home page on > pypi) it finds the download link and eventually the google page. > > Form all the pages that it has crawled, pip identifies source tarballs, > compare their versions, and choose the latest. Currently, this is > sympy0.7.2.rc1.python3.tar.gz > since it considers the version as "0.7.2.rc1.python3" and this is > lexically greater than "0.7.2.rc1". I suggest removing the "Home Page" link > from > http://pypi.python.org/pypi/**sympy<http://pypi.python.org/pypi/sympy>and see > if that does not fix it. > It won't fix it. I've already tried this. The problem is that it searches the home page link on all versions on PyPI, not just the recent one. So I'd have to go through and remove all links from all versions uploaded on PyPI. Frankly, it might not be such a bad idea to do that, since it would forever fix our pip issues, but of course the downside is that it would be nice to have the various links on PyPI. Also, editing the old versions seems like something that shouldn't be done for historical purposes (and also I am too lazy to do it so far). > Another think is, that we should use PEP 386 convention for naming our > tarballs, so "0.7.2rc1". This doesn't affect pip at the moment though, > since it doesn't seem to care about PEP 386 for now. > I'm a little confused by that PEP by what exactly we should be using in the future. If you're referring to StrictVersion, it doesn't seem to support rc at all: In [1]: from distutils.version import StrictVersion as V In [2]: V("0.7.2.rc1") --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-2-8d10e2780004> in <module>() ----> 1 V("0.7.2.rc1") /sw/lib/python2.7/distutils/version.pyc in __init__(self, vstring) 38 def __init__ (self, vstring=None): 39 if vstring: ---> 40 self.parse(vstring) 41 42 def __repr__ (self): /sw/lib/python2.7/distutils/version.pyc in parse(self, vstring) 105 match = self.version_re.match(vstring) 106 if not match: --> 107 raise ValueError, "invalid version number '%s'" % vstring 108 109 (major, minor, patch, prerelease, prerelease_num) = \ ValueError: invalid version number '0.7.2.rc1' In [3]: V("0.7.2rc1") --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-3-187fc828a9f1> in <module>() ----> 1 V("0.7.2rc1") /sw/lib/python2.7/distutils/version.pyc in __init__(self, vstring) 38 def __init__ (self, vstring=None): 39 if vstring: ---> 40 self.parse(vstring) 41 42 def __repr__ (self): /sw/lib/python2.7/distutils/version.pyc in parse(self, vstring) 105 match = self.version_re.match(vstring) 106 if not match: --> 107 raise ValueError, "invalid version number '%s'" % vstring 108 109 (major, minor, patch, prerelease, prerelease_num) = \ ValueError: invalid version number '0.7.2rc1' And from what I can tell, verlib doesn't either. Aaron Meurer > Regards, > Julien > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/sympy/-/FfjVDxZIkSEJ. > > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/sympy?hl=en. > -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
