# HG changeset patch # User Ian Moody # Date 1570141247 -3600 # Node ID 1a47cc2728ff83b1cf0e7e9705f9e9c5608234ea # Parent 164543ac3277424b1beb2d7e9d59c6299ecce2d5 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. diff -r 164543ac3277 -r 1a47cc2728ff setup.py --- 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 ) diff -r 164543ac3277 -r 1a47cc2728ff tests/test-version-install.t --- 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 (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