setup: make runnable from other dirs
Currently it fails when run in that way for two reasons:
- the description is loaded from the README file but with a path relative to
the working directory
- module references have the same issue, which is fixed with package_dir.
--- a/setup.py Thu Oct 03 23:17:13 2019 +0100
+++ b/setup.py Thu Oct 03 23:20:47 2019 +0100
@@ -28,6 +28,9 @@
'hgext3rd.evolve.thirdparty',
'hgext3rd.topic',
]
+py_packagedir = {
+ 'hgext3rd': join(dirname(__file__), 'hgext3rd')
+}
py_versions = '>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4'
@@ -44,10 +47,11 @@
maintainer_email='pierre-yves.david@ens-lyon.org',
url='https://www.mercurial-scm.org/doc/evolution/',
description='Flexible evolution of Mercurial history.',
- long_description=open('README').read(),
+ long_description=open(join(dirname(__file__), 'README')).read(),
keywords='hg mercurial',
license='GPLv2+',
py_modules=py_modules,
packages=py_packages,
+ package_dir=py_packagedir,
python_requires=py_versions
)
--- a/tests/test-version-install.t Thu Oct 03 23:17:13 2019 +0100
+++ b/tests/test-version-install.t Thu Oct 03 23:20:47 2019 +0100
@@ -18,11 +18,19 @@
evolve external * (glob)
Test install
-BROKEN: can't call setup.py from a different dir
+#if py3
+BROKEN: unicode errors opening the README
$ "$PYTHON" "$TESTDIR/../setup.py" install --root "$TESTTMP/installtest" > /dev/null
Traceback (most recent call last):
File "*/../setup.py", line *, in <module> (glob)
- long_description=open('README').read(),
- IOError: [Errno 2] No such file or directory: 'README' (no-py3 !)
- FileNotFoundError: [Errno 2] No such file or directory: 'README' (py3 !)
+ long_description=open(join(dirname(__file__), 'README')).read(),
+ File "*/encodings/ascii.py", line *, in decode (glob)
+ return codecs.ascii_decode(input, self.errors)[0]
+ UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 460: ordinal not in range(128)
[1]
+#else
+TODO: fix warning
+ $ "$PYTHON" "$TESTDIR/../setup.py" install --root "$TESTTMP/installtest" > /dev/null
+ */distutils/dist.py:*: UserWarning: Unknown distribution option: 'python_requires' (glob)
+ warnings.warn(msg)
+#endif