tox-dev / tox

Command line driven CI frontend and development task automation tool.
https://tox.wiki
MIT License
3.64k stars 512 forks source link

tox4: editable installs do not work (deps) #1945

Closed jugmac00 closed 3 years ago

jugmac00 commented 3 years ago

repo https://github.com/plone/plone.autoinclude

tox3 works

This should be the problem:

deps =
    -e .
❯ tox4 -rvv -e py38-unit
ROOT: 153 D setup logging to DEBUG on pid 31817 [tox/report.py:211]
ROOT: 157 W remove tox env folder /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit [tox/tox_env/api.py:202]
ROOT: 192 I find interpreter for spec PythonSpec(implementation=CPython, major=3, minor=8) [virtualenv/discovery/builtin.py:62]
ROOT: 192 I proposed PythonInfo(spec=CPython3.6.9.final.0-64, exe=/usr/bin/python3, platform=linux, version='3.6.9 (default, Jan 26 2021, 15:33:00) \n[GCC 8.4.0]', encoding_fs_io=utf-8-UTF-8) [virtualenv/discovery/builtin.py:69]
ROOT: 193 D discover PATH[0]=/home/jugmac00/.cargo/bin [virtualenv/discovery/builtin.py:114]
ROOT: 193 D filesystem is case-sensitive [virtualenv/info.py:28]
ROOT: 194 D discover PATH[1]=/home/jugmac00/.local/bin [virtualenv/discovery/builtin.py:114]
ROOT: 194 D discover PATH[2]=/home/jugmac00/bin [virtualenv/discovery/builtin.py:114]
ROOT: 194 D discover PATH[3]=/usr/local/sbin [virtualenv/discovery/builtin.py:114]
ROOT: 194 D discover PATH[4]=/usr/local/bin [virtualenv/discovery/builtin.py:114]
ROOT: 194 D discover PATH[5]=/usr/sbin [virtualenv/discovery/builtin.py:114]
ROOT: 194 D discover PATH[6]=/usr/bin [virtualenv/discovery/builtin.py:114]
ROOT: 195 D Attempting to acquire lock 140589030049664 on /home/jugmac00/.local/share/virtualenv/py_info/1/df0893f56f349688326838aaeea0de204df53a132722cbd565e54b24a8fec5f6.lock [filelock.py:270]
ROOT: 195 D Lock 140589030049664 acquired on /home/jugmac00/.local/share/virtualenv/py_info/1/df0893f56f349688326838aaeea0de204df53a132722cbd565e54b24a8fec5f6.lock [filelock.py:274]
ROOT: 195 D got python info of /usr/bin/python3.8 from /home/jugmac00/.local/share/virtualenv/py_info/1/df0893f56f349688326838aaeea0de204df53a132722cbd565e54b24a8fec5f6.json [virtualenv/app_data/via_disk_folder.py:135]
ROOT: 195 D Attempting to release lock 140589030049664 on /home/jugmac00/.local/share/virtualenv/py_info/1/df0893f56f349688326838aaeea0de204df53a132722cbd565e54b24a8fec5f6.lock [filelock.py:315]
ROOT: 195 D Lock 140589030049664 released on /home/jugmac00/.local/share/virtualenv/py_info/1/df0893f56f349688326838aaeea0de204df53a132722cbd565e54b24a8fec5f6.lock [filelock.py:318]
ROOT: 195 I proposed PathPythonInfo(spec=CPython3.8.8.final.0-64, exe=/usr/bin/python3.8, platform=linux, version='3.8.8 (default, Feb 20 2021, 21:09:14) \n[GCC 7.5.0]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:69]
ROOT: 196 D accepted PathPythonInfo(spec=CPython3.8.8.final.0-64, exe=/usr/bin/python3.8, platform=linux, version='3.8.8 (default, Feb 20 2021, 21:09:14) \n[GCC 7.5.0]', encoding_fs_io=utf-8-utf-8) [virtualenv/discovery/builtin.py:71]
ROOT: 220 I create virtual environment via CPython3Posix(dest=/home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit, clear=True, no_vcs_ignore=False, global=False) [virtualenv/run/session.py:52]
ROOT: 220 D delete /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit [virtualenv/create/creator.py:169]
ROOT: 220 D create folder /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/bin [virtualenv/util/path/_sync.py:25]
ROOT: 220 D create folder /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/lib/python3.8/site-packages [virtualenv/util/path/_sync.py:25]
ROOT: 221 D write /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:34]
ROOT: 221 D     home = /usr [virtualenv/create/pyenv_cfg.py:38]
ROOT: 221 D     implementation = CPython [virtualenv/create/pyenv_cfg.py:38]
ROOT: 221 D     version_info = 3.8.8.final.0 [virtualenv/create/pyenv_cfg.py:38]
ROOT: 221 D     virtualenv = 20.4.2 [virtualenv/create/pyenv_cfg.py:38]
ROOT: 221 D     include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:38]
ROOT: 221 D     base-prefix = /usr [virtualenv/create/pyenv_cfg.py:38]
ROOT: 221 D     base-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:38]
ROOT: 221 D     base-executable = /usr/bin/python3.8 [virtualenv/create/pyenv_cfg.py:38]
ROOT: 221 D symlink /usr/bin/python3.8 to /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/bin/python [virtualenv/util/path/_sync.py:44]
ROOT: 222 D create virtualenv import hook file /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/lib/python3.8/site-packages/_virtualenv.pth [virtualenv/create/via_global_ref/api.py:95]
ROOT: 222 D create /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/lib/python3.8/site-packages/_virtualenv.py [virtualenv/create/via_global_ref/api.py:98]
ROOT: 222 D ============================== target debug ============================== [virtualenv/run/session.py:54]
ROOT: 222 D debug via /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/bin/python /home/jugmac00/.local/lib/python3.6/site-packages/virtualenv/create/debug.py [virtualenv/create/creator.py:224]
ROOT: 222 D {
  "sys": {
    "executable": "/home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/bin/python",
    "_base_executable": "/home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/bin/python",
    "prefix": "/home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit",
    "base_prefix": "/usr",
    "real_prefix": null,
    "exec_prefix": "/home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit",
    "base_exec_prefix": "/usr",
    "path": [
      "/usr/lib/python38.zip",
      "/usr/lib/python3.8",
      "/usr/lib/python3.8/lib-dynload",
      "/home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/lib/python3.8/site-packages"
    ],
    "meta_path": [
      "<class '_virtualenv._Finder'>",
      "<class '_frozen_importlib.BuiltinImporter'>",
      "<class '_frozen_importlib.FrozenImporter'>",
      "<class '_frozen_importlib_external.PathFinder'>"
    ],
    "fs_encoding": "utf-8",
    "io_encoding": "utf-8"
  },
  "version": "3.8.8 (default, Feb 20 2021, 21:09:14) \n[GCC 7.5.0]",
  "makefile_filename": "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/Makefile",
  "os": "<module 'os' from '/usr/lib/python3.8/os.py'>",
  "site": "<module 'site' from '/usr/lib/python3.8/site.py'>",
  "datetime": "<module 'datetime' from '/usr/lib/python3.8/datetime.py'>",
  "math": "<module 'math' (built-in)>",
  "json": "<module 'json' from '/usr/lib/python3.8/json/__init__.py'>"
} [virtualenv/run/session.py:55]
ROOT: 252 I add seed packages via FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/jugmac00/.local/share/virtualenv) [virtualenv/run/session.py:59]
ROOT: 254 D got embed update of distribution wheel from /home/jugmac00/.local/share/virtualenv/wheel/3.8/embed/1/wheel.json [virtualenv/app_data/via_disk_folder.py:135]
ROOT: 255 D got embed update of distribution pip from /home/jugmac00/.local/share/virtualenv/wheel/3.8/embed/1/pip.json [virtualenv/app_data/via_disk_folder.py:135]
ROOT: 258 D got embed update of distribution setuptools from /home/jugmac00/.local/share/virtualenv/wheel/3.8/embed/1/setuptools.json [virtualenv/app_data/via_disk_folder.py:135]
ROOT: 259 D using periodically updated wheel /home/jugmac00/.local/share/virtualenv/wheel/house/setuptools-53.0.0-py3-none-any.whl [virtualenv/seed/wheels/periodic_update.py:53]
ROOT: 259 D install wheel from wheel /home/jugmac00/.local/lib/python3.6/site-packages/virtualenv/seed/wheels/embed/wheel-0.36.2-py2.py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:49]
ROOT: 259 D install pip from wheel /home/jugmac00/.local/lib/python3.6/site-packages/virtualenv/seed/wheels/embed/pip-21.0.1-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:49]
ROOT: 259 D Attempting to acquire lock 140589002142608 on /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/wheel-0.36.2-py2.py3-none-any.lock [filelock.py:270]
ROOT: 260 D install setuptools from wheel /home/jugmac00/.local/share/virtualenv/wheel/house/setuptools-53.0.0-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:49]
ROOT: 260 D Attempting to acquire lock 140589002144624 on /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/pip-21.0.1-py3-none-any.lock [filelock.py:270]
ROOT: 260 D Lock 140589002142608 acquired on /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/wheel-0.36.2-py2.py3-none-any.lock [filelock.py:274]
ROOT: 260 D Lock 140589002144624 acquired on /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/pip-21.0.1-py3-none-any.lock [filelock.py:274]
ROOT: 260 D Attempting to acquire lock 140589002144792 on /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/setuptools-53.0.0-py3-none-any.lock [filelock.py:270]
ROOT: 260 D Lock 140589002144792 acquired on /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/setuptools-53.0.0-py3-none-any.lock [filelock.py:274]
ROOT: 261 D Attempting to release lock 140589002144624 on /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/pip-21.0.1-py3-none-any.lock [filelock.py:315]
ROOT: 261 D Attempting to release lock 140589002142608 on /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/wheel-0.36.2-py2.py3-none-any.lock [filelock.py:315]
ROOT: 261 D Lock 140589002144624 released on /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/pip-21.0.1-py3-none-any.lock [filelock.py:318]
ROOT: 261 D Attempting to release lock 140589002144792 on /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/setuptools-53.0.0-py3-none-any.lock [filelock.py:315]
ROOT: 261 D Lock 140589002142608 released on /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/wheel-0.36.2-py2.py3-none-any.lock [filelock.py:318]
ROOT: 261 D Lock 140589002144792 released on /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/setuptools-53.0.0-py3-none-any.lock [filelock.py:318]
ROOT: 261 D copy /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/pip-21.0.1-py3-none-any/pip-21.0.1.virtualenv to /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/lib/python3.8/site-packages/pip-21.0.1.virtualenv [virtualenv/util/path/_sync.py:52]
ROOT: 261 D copy directory /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/setuptools-53.0.0-py3-none-any/pkg_resources to /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/lib/python3.8/site-packages/pkg_resources [virtualenv/util/path/_sync.py:52]
ROOT: 261 D copy /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/wheel-0.36.2-py2.py3-none-any/wheel-0.36.2.virtualenv to /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/lib/python3.8/site-packages/wheel-0.36.2.virtualenv [virtualenv/util/path/_sync.py:52]
ROOT: 262 D copy directory /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/pip-21.0.1-py3-none-any/pip-21.0.1.dist-info to /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/lib/python3.8/site-packages/pip-21.0.1.dist-info [virtualenv/util/path/_sync.py:52]
ROOT: 262 D copy directory /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/wheel-0.36.2-py2.py3-none-any/wheel-0.36.2.dist-info to /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/lib/python3.8/site-packages/wheel-0.36.2.dist-info [virtualenv/util/path/_sync.py:52]
ROOT: 265 D copy directory /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/wheel-0.36.2-py2.py3-none-any/wheel to /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/lib/python3.8/site-packages/wheel [virtualenv/util/path/_sync.py:52]
ROOT: 265 D copy directory /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/pip-21.0.1-py3-none-any/pip to /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/lib/python3.8/site-packages/pip [virtualenv/util/path/_sync.py:52]
ROOT: 270 D copy /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/setuptools-53.0.0-py3-none-any/distutils-precedence.pth to /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/lib/python3.8/site-packages/distutils-precedence.pth [virtualenv/util/path/_sync.py:52]
ROOT: 270 D copy directory /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/setuptools-53.0.0-py3-none-any/_distutils_hack to /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/lib/python3.8/site-packages/_distutils_hack [virtualenv/util/path/_sync.py:52]
ROOT: 271 D copy directory /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/setuptools-53.0.0-py3-none-any/setuptools to /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/lib/python3.8/site-packages/setuptools [virtualenv/util/path/_sync.py:52]
ROOT: 272 D changing mode of /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/bin/wheel-3.8 to 755 [distlib/util.py:566]
ROOT: 273 D changing mode of /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/bin/wheel3.8 to 755 [distlib/util.py:566]
ROOT: 273 D changing mode of /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/bin/wheel to 755 [distlib/util.py:566]
ROOT: 273 D changing mode of /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/bin/wheel3 to 755 [distlib/util.py:566]
ROOT: 273 D generated console scripts wheel wheel3 wheel3.8 wheel-3.8 [virtualenv/seed/embed/via_app_data/pip_install/base.py:48]
ROOT: 299 D copy directory /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/setuptools-53.0.0-py3-none-any/setuptools-53.0.0.dist-info to /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/lib/python3.8/site-packages/setuptools-53.0.0.dist-info [virtualenv/util/path/_sync.py:52]
ROOT: 301 D copy /home/jugmac00/.local/share/virtualenv/wheel/3.8/image/1/CopyPipInstall/setuptools-53.0.0-py3-none-any/setuptools-53.0.0.virtualenv to /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/lib/python3.8/site-packages/setuptools-53.0.0.virtualenv [virtualenv/util/path/_sync.py:52]
ROOT: 302 D generated console scripts  [virtualenv/seed/embed/via_app_data/pip_install/base.py:48]
ROOT: 324 D changing mode of /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/bin/pip3 to 755 [distlib/util.py:566]
ROOT: 325 D changing mode of /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/bin/pip-3.8 to 755 [distlib/util.py:566]
ROOT: 325 D changing mode of /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/bin/pip3.8 to 755 [distlib/util.py:566]
ROOT: 325 D changing mode of /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/bin/pip to 755 [distlib/util.py:566]
ROOT: 325 D generated console scripts pip pip3.8 pip3 pip-3.8 [virtualenv/seed/embed/via_app_data/pip_install/base.py:48]
ROOT: 325 I add activators for Bash, CShell, Fish, PowerShell, Python, Xonsh [virtualenv/run/session.py:66]
ROOT: 326 D write /home/jugmac00/All/output_plone/plone/plone.autoinclude/.tox/4/py38-unit/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:34]
ROOT: 326 D     home = /usr [virtualenv/create/pyenv_cfg.py:38]
ROOT: 326 D     implementation = CPython [virtualenv/create/pyenv_cfg.py:38]
ROOT: 326 D     version_info = 3.8.8.final.0 [virtualenv/create/pyenv_cfg.py:38]
ROOT: 326 D     virtualenv = 20.4.2 [virtualenv/create/pyenv_cfg.py:38]
ROOT: 326 D     include-system-site-packages = false [virtualenv/create/pyenv_cfg.py:38]
ROOT: 326 D     base-prefix = /usr [virtualenv/create/pyenv_cfg.py:38]
ROOT: 326 D     base-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:38]
ROOT: 326 D     base-executable = /usr/bin/python3.8 [virtualenv/create/pyenv_cfg.py:38]
ROOT: 328 W install_deps> python -I -m pip install '-e .' '-e test-packages/example.addon' '-e test-packages/example.different' '-e test-packages/example.different2' '-e test-packages/example.metaoverrides' '-e test-packages/example.multipleeps' '-e test-packages/example.ploneaddon' '-e test-packages/example.ploneintegration' '-e test-packages/example.zopeaddon' '-e test-packages/example.zopeintegration' zope.testrunner [tox/tox_env/api.py:288]
ERROR:  . is not a valid editable requirement. It should either be a path to a local project or a VCS URL (beginning with bzr+http, bzr+https, bzr+ssh, bzr+sftp, bzr+ftp, bzr+lp, bzr+file, git+http, git+https, git+ssh, git+git, git+file, hg+file, hg+http, hg+https, hg+ssh, hg+static-http, svn+ssh, svn+http, svn+https, svn+svn, svn+file).
ROOT: 1033 C exit 1 (0.70 seconds) /home/jugmac00/All/output_plone/plone/plone.autoinclude> python -I -m pip install '-e .' '-e test-packages/example.addon' '-e test-packages/example.different' '-e test-packages/example.different2' '-e test-packages/example.metaoverrides' '-e test-packages/example.multipleeps' '-e test-packages/example.ploneaddon' '-e test-packages/example.ploneintegration' '-e test-packages/example.zopeaddon' '-e test-packages/example.zopeintegration' zope.testrunner pid=31830 [tox/execute/api.py:200]
  py38-unit: FAIL code 1 (0.88 seconds)
  evaluation failed :( (0.91 seconds)
hexagonrecursion commented 3 years ago

If '-e .' is passed to pip install as a single argument it fails:

$ pip install '-e .'
ERROR:  . is not a valid editable requirement. It should either be a path to a local project or a VCS URL (beginning with bzr+http, bzr+https, bzr+ssh, bzr+sftp, bzr+ftp, bzr+lp, bzr+file, git+http, git+https, git+ssh, git+git, git+file, hg+file, hg+http, hg+https, hg+ssh, hg+static-http, svn+ssh, svn+http, svn+https, svn+svn, svn+file).

'-e.' (note: no space in between) works fine:

$ pip install '-e.'
Obtaining file:///home/user/hello-tox
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
    Preparing wheel metadata ... done
Installing collected packages: UNKNOWN
  Running setup.py develop for UNKNOWN
Successfully installed UNKNOWN

Passing -e and . as separate arguments also works:

$ pip install -e .
Obtaining file:///home/user/hello-tox
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
    Preparing wheel metadata ... done
Installing collected packages: UNKNOWN
  Running setup.py develop for UNKNOWN
Successfully installed UNKNOWN
hexagonrecursion commented 3 years ago

tox3 works around that by turning '-e .' into '-e.'

hexagonrecursion commented 3 years ago

This is the downside of rewrites. This bug have already been fixed once. Now we have to fix it again. https://github.com/tox-dev/tox/blob/32e74a804635ba790deef706b57c10f8219de1db/src/tox/config/__init__.py#L177-L187

gaborbernat commented 3 years ago

This is the downside of rewrites. This bug have already been fixed once. Now we have to fix it again.

It's a trade-off, on one end some old bugs might creep in, but on the upside, the codebase will be in a better place after it. No need to lament over this. For example, here I think tox 3 solution is incorrect, we should turn this into Passing -e and . as separate arguments.

jugmac00 commented 3 years ago

This has been fixed by #1991 - thanks a lot, @gaborbernat!