[Bug 5121] New: setuptools installation of Mercurial broke with 3.7

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Mon Feb 29 17:14:22 UTC 2016


https://bz.mercurial-scm.org/show_bug.cgi?id=5121

            Bug ID: 5121
           Summary: setuptools installation of Mercurial broke with 3.7
           Product: Mercurial
           Version: 3.7
          Hardware: PC
                OS: Linux
            Status: UNCONFIRMED
          Severity: feature
          Priority: wish
         Component: Mercurial
          Assignee: bugzilla at selenic.com
          Reporter: mads at kiilerich.com
                CC: mercurial-devel at selenic.com

Kallithea has Mercurial as a setuptools requirement. That started causing
problems with recent Mercurial versions.

A reduced test case:

virtualenv venv
source venv/bin/activate
python -c 'import setuptools;
setuptools.setup(install_requires=["mercurial==3.7.0"])' develop

or

mkdir -p lib/python2.7/site-packages
PYTHONPATH=lib/python2.7/site-packages python -c 'import setuptools;
setuptools.setup(install_requires=["mercurial==3.7.0"])' develop --prefix=.

fails with
...
  File "/usr/lib64/python2.7/pickle.py", line 971, in load_string
    self.append(rep.decode("string-escape"))
  File "/tmp/venv/lib64/python2.7/encodings/__init__.py", line 100, in
search_function
    level=0)
  File "/tmp/easy_install-fgdUFf/mercurial-3.7/mercurial/__init__.py", line 53,
in find_module
TypeError: argument of type 'NoneType' is not iterable

I guess it only can fail this way because the interpreter is shutting down ...
but it also doesn't seem like that.

It is scary that setuptools use pickle and that Mercurial code ends up being
invoked from pickle.

The same test case works when specifying 3.6.3 so it seems like changes in
Mercurial do that it no longer works. I guess it was caused by
https://selenic.com/hg/rev/4374d819ccd5 populating mercurial/__init__.py .

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list