Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update breaks global handling of cli packages with the same name #10861

Closed
1 task done
DanielHabenicht opened this issue Jan 31, 2022 · 11 comments
Closed
1 task done

Update breaks global handling of cli packages with the same name #10861

DanielHabenicht opened this issue Jan 31, 2022 · 11 comments
Labels
resolution: wrong project Should be reported elsewhere type: bug A confirmed bug or unintended behavior

Comments

@DanielHabenicht
Copy link

DanielHabenicht commented Jan 31, 2022

Description

When installing two competing cli packages (same cli name) the latest version of pip seems to break old functionality.

I am using papermill for running python notebooks and happend to still have papermill-nb-runner installed which is a fork of papermill and has not been updated for years.
In previous version of pip the new version was used. With the new version pip uses the old version.

Expected behavior

It should either fail early or restore the previous functionality.

pip version

22.0 and above

Python version

3.10.0

OS

Windows (and Github Actions ubuntu-latest)

How to Reproduce

See this repo for the reproduction
https://github.com/DanielHabenicht/pip-bug

  1. Install pip version 22.0.2: python -m pip install pip==22.0.2
  2. Install the packages: pip install papermill ipykernel papermill-nb-runner
  3. Check the version papermill --version

For Version 22.0 the output is 1.1.16 from /opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/site-packages/papermill/cli.py (3.10.0)
For Version 21.3.1 the output is 2.3.4 from /opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/site-packages/papermill/cli.py (3.10.0)

Output

Here you have an action that highlights the problem: 
https://github.com/DanielHabenicht/pip-bug/actions/runs/1773742965

=============================================================================
Here is the output of the working version (22.0): 
=============================================================================

Run python -m pip install pip==22.0
  python -m pip install pip==22.0
  pip install papermill ipykernel papermill-nb-runner
  shell: /usr/bin/bash -e {0}
  env:
    pythonLocation: /opt/hostedtoolcache/Python/3.10.0/x64
    LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.10.0/x64/lib
Collecting pip==22.0
  Downloading pip-22.0-py3-none-any.whl (2.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 23.0 MB/s eta 0:00:00
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 22.0.2
    Uninstalling pip-22.0.2:
      Successfully uninstalled pip-22.0.2
Successfully installed pip-22.0
Collecting papermill
  Downloading papermill-2.3.4-py3-none-any.whl (37 kB)
Collecting ipykernel
  Downloading ipykernel-6.7.0-py3-none-any.whl (127 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 127.7/127.7 KB 6.3 MB/s eta 0:00:00
Collecting papermill-nb-runner
  Downloading papermill-nb-runner-1.1.16.tar.gz (935 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 935.5/935.5 KB 25.2 MB/s eta 0:00:00
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Collecting entrypoints
  Downloading entrypoints-0.3-py2.py3-none-any.whl (11 kB)
Collecting nbclient>=0.2.0
  Downloading nbclient-0.5.10-py3-none-any.whl (69 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 69.9/69.9 KB 27.7 MB/s eta 0:00:00
Collecting click
  Downloading click-8.0.3-py3-none-any.whl (97 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 97.5/97.5 KB 37.4 MB/s eta 0:00:00
Collecting pyyaml
  Downloading PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (682 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 682.2/682.2 KB 97.9 MB/s eta 0:00:00
Collecting tqdm>=4.32.2
  Downloading tqdm-4.62.3-py2.py3-none-any.whl (76 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 76.2/76.2 KB 29.2 MB/s eta 0:00:00
Collecting nbformat>=5.1.2
  Downloading nbformat-5.1.3-py3-none-any.whl (178 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 178.9/178.9 KB 56.1 MB/s eta 0:00:00
Collecting tenacity
  Downloading tenacity-8.0.1-py3-none-any.whl (24 kB)
Collecting ansiwrap
  Downloading ansiwrap-0.8.4-py2.py3-none-any.whl (8.5 kB)
Collecting requests
  Downloading requests-2.27.1-py2.py3-none-any.whl (63 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 63.1/63.1 KB 26.2 MB/s eta 0:00:00
Collecting nest-asyncio
  Downloading nest_asyncio-1.5.4-py3-none-any.whl (5.1 kB)
Collecting ipython>=7.23.1
  Downloading ipython-8.0.1-py3-none-any.whl (747 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 747.5/747.5 KB 108.7 MB/s eta 0:00:00
Collecting jupyter-client<8.0
  Downloading jupyter_client-7.1.2-py3-none-any.whl (130 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 130.3/130.3 KB 46.6 MB/s eta 0:00:00
Collecting tornado<7.0,>=4.2
  Downloading tornado-6.1.tar.gz (497 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 497.4/497.4 KB 98.0 MB/s eta 0:00:00
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Collecting matplotlib-inline<0.2.0,>=0.1.0
  Downloading matplotlib_inline-0.1.3-py3-none-any.whl (8.2 kB)
Collecting traitlets<6.0,>=5.1.0
  Downloading traitlets-5.1.1-py3-none-any.whl (102 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 102.0/102.0 KB 38.8 MB/s eta 0:00:00
Collecting debugpy<2.0,>=1.0.0
  Downloading debugpy-1.5.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 82.1 MB/s eta 0:00:00
Collecting six
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting future
  Downloading future-0.18.2.tar.gz (829 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 829.2/829.2 KB 115.4 MB/s eta 0:00:00
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Collecting nbconvert>=5.5
  Downloading nbconvert-6.4.1-py3-none-any.whl (557 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 557.4/557.4 KB 100.4 MB/s eta 0:00:00
Collecting html2text
  Downloading html2text-2020.1.16-py3-none-any.whl (32 kB)
Collecting decorator
  Downloading decorator-5.1.1-py3-none-any.whl (9.1 kB)
Requirement already satisfied: setuptools>=18.5 in /opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/site-packages (from ipython>=7.23.1->ipykernel) (57.4.0)
Collecting black
  Downloading black-22.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 120.1 MB/s eta 0:00:00
Collecting pexpect>4.3
  Downloading pexpect-4.8.0-py2.py3-none-any.whl (59 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 59.0/59.0 KB 23.6 MB/s eta 0:00:00
Collecting stack-data
  Downloading stack_data-0.1.4-py3-none-any.whl (20 kB)
Collecting backcall
  Downloading backcall-0.2.0-py2.py3-none-any.whl (11 kB)
Collecting pygments
  Downloading Pygments-2.11.2-py3-none-any.whl (1.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 122.8 MB/s eta 0:00:00
Collecting prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0
  Downloading prompt_toolkit-3.0.26-py3-none-any.whl (375 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 375.7/375.7 KB 88.4 MB/s eta 0:00:00
Collecting pickleshare
  Downloading pickleshare-0.7.5-py2.py3-none-any.whl (6.9 kB)
Collecting jedi>=0.16
  Downloading jedi-0.18.1-py2.py3-none-any.whl (1.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 131.4 MB/s eta 0:00:00
Collecting python-dateutil>=2.1
  Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 247.7/247.7 KB 72.3 MB/s eta 0:00:00
Collecting pyzmq>=13
  Downloading pyzmq-22.3.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 122.3 MB/s eta 0:00:00
Collecting jupyter-core>=4.6.0
  Downloading jupyter_core-4.9.1-py3-none-any.whl (86 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 86.7/86.7 KB 35.2 MB/s eta 0:00:00
Collecting testpath
  Downloading testpath-0.5.0-py3-none-any.whl (84 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 84.9/84.9 KB 35.4 MB/s eta 0:00:00
Collecting bleach
  Downloading bleach-4.1.0-py2.py3-none-any.whl (157 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 157.9/157.9 KB 54.1 MB/s eta 0:00:00
Collecting pandocfilters>=1.4.1
  Downloading pandocfilters-1.5.0-py2.py3-none-any.whl (8.7 kB)
Collecting mistune<2,>=0.8.1
  Downloading mistune-0.8.4-py2.py3-none-any.whl (16 kB)
Collecting jupyterlab-pygments
  Downloading jupyterlab_pygments-0.1.2-py2.py3-none-any.whl (4.6 kB)
Collecting jinja2>=2.4
  Downloading Jinja2-3.0.3-py3-none-any.whl (133 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.6/133.6 KB 45.9 MB/s eta 0:00:00
Collecting defusedxml
  Downloading defusedxml-0.7.1-py2.py3-none-any.whl (25 kB)
Collecting ipython-genutils
  Downloading ipython_genutils-0.2.0-py2.py3-none-any.whl (26 kB)
Collecting jsonschema!=2.5.0,>=2.4
  Downloading jsonschema-4.4.0-py3-none-any.whl (72 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 72.7/72.7 KB 28.6 MB/s eta 0:00:00
Collecting textwrap3>=0.9.2
  Downloading textwrap3-0.9.2-py2.py3-none-any.whl (12 kB)
Collecting idna<4,>=2.5
  Downloading idna-3.3-py3-none-any.whl (61 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.2/61.2 KB 14.2 MB/s eta 0:00:00
Collecting urllib3<1.27,>=1.21.1
  Downloading urllib3-1.26.8-py2.py3-none-any.whl (138 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 138.7/138.7 KB 52.0 MB/s eta 0:00:00
Collecting certifi>=2017.4.17
  Downloading certifi-2021.10.8-py2.py3-none-any.whl (149 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 149.2/149.2 KB 51.6 MB/s eta 0:00:00
Collecting charset-normalizer~=2.0.0
  Downloading charset_normalizer-2.0.11-py3-none-any.whl (39 kB)
Collecting parso<0.9.0,>=0.8.0
  Downloading parso-0.8.3-py2.py3-none-any.whl (100 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.8/100.8 KB 36.1 MB/s eta 0:00:00
Collecting MarkupSafe>=2.0
  Downloading MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (30 kB)
Collecting pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0
  Downloading pyrsistent-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (115 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 115.8/115.8 KB 41.5 MB/s eta 0:00:00
Collecting attrs>=17.4.0
  Downloading attrs-21.4.0-py2.py3-none-any.whl (60 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.6/60.6 KB 23.2 MB/s eta 0:00:00
Collecting ptyprocess>=0.5
  Downloading ptyprocess-0.7.0-py2.py3-none-any.whl (13 kB)
Collecting wcwidth
  Downloading wcwidth-0.2.5-py2.py3-none-any.whl (30 kB)
Collecting tomli>=1.1.0
  Downloading tomli-2.0.0-py3-none-any.whl (12 kB)
Collecting pathspec>=0.9.0
  Downloading pathspec-0.9.0-py2.py3-none-any.whl (31 kB)
Collecting platformdirs>=2
  Downloading platformdirs-2.4.1-py3-none-any.whl (14 kB)
Collecting mypy-extensions>=0.4.3
  Downloading mypy_extensions-0.4.3-py2.py3-none-any.whl (4.5 kB)
Collecting packaging
  Downloading packaging-21.3-py3-none-any.whl (40 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.8/40.8 KB 16.0 MB/s eta 0:00:00
Collecting webencodings
  Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB)
Collecting asttokens
  Downloading asttokens-2.0.5-py2.py3-none-any.whl (20 kB)
Collecting executing
  Downloading executing-0.8.2-py2.py3-none-any.whl (16 kB)
Collecting pure-eval
  Downloading pure_eval-0.2.2-py3-none-any.whl (11 kB)
Collecting pyparsing!=3.0.5,>=2.0.2
  Downloading pyparsing-3.0.7-py3-none-any.whl (98 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 98.0/98.0 KB 34.5 MB/s eta 0:00:00
Using legacy 'setup.py install' for tornado, since package 'wheel' is not installed.
Using legacy 'setup.py install' for future, since package 'wheel' is not installed.
Building wheels for collected packages: papermill-nb-runner
  Building wheel for papermill-nb-runner (pyproject.toml): started
  Building wheel for papermill-nb-runner (pyproject.toml): finished with status 'done'
  Created wheel for papermill-nb-runner: filename=papermill_nb_runner-1.1.16-py2.py3-none-any.whl size=31837 sha256=aa9623c5e24bc433750ca66fe09b8b66ed728906b2037ec353f8a5e571ca9320
  Stored in directory: /home/runner/.cache/pip/wheels/40/76/42/feea0e923c8a7c45c1f5376bc1058bbaa0ae51e12953f29172
Successfully built papermill-nb-runner
Installing collected packages: webencodings, wcwidth, textwrap3, pure-eval, ptyprocess, pickleshare, mypy-extensions, mistune, ipython-genutils, executing, certifi, backcall, urllib3, traitlets, tqdm, tornado, tomli, testpath, tenacity, six, pyzmq, pyyaml, pyrsistent, pyparsing, pygments, prompt-toolkit, platformdirs, pexpect, pathspec, parso, pandocfilters, nest-asyncio, MarkupSafe, idna, html2text, future, entrypoints, defusedxml, decorator, debugpy, click, charset-normalizer, attrs, ansiwrap, requests, python-dateutil, packaging, matplotlib-inline, jupyterlab-pygments, jupyter-core, jsonschema, jinja2, jedi, black, asttokens, stack-data, nbformat, jupyter-client, bleach, nbclient, ipython, papermill, nbconvert, ipykernel, papermill-nb-runner
  Running setup.py install for tornado: started
  Running setup.py install for tornado: finished with status 'done'
  Running setup.py install for future: started
  Running setup.py install for future: finished with status 'done'
Successfully installed MarkupSafe-2.0.1 ansiwrap-0.8.4 asttokens-2.0.5 attrs-21.4.0 backcall-0.2.0 black-22.1.0 bleach-4.1.0 certifi-2021.10.8 charset-normalizer-2.0.11 click-8.0.3 debugpy-1.5.1 decorator-5.1.1 defusedxml-0.7.1 entrypoints-0.3 executing-0.8.2 future-0.18.2 html2text-2020.1.16 idna-3.3 ipykernel-6.7.0 ipython-8.0.1 ipython-genutils-0.2.0 jedi-0.18.1 jinja2-3.0.3 jsonschema-4.4.0 jupyter-client-7.1.2 jupyter-core-4.9.1 jupyterlab-pygments-0.1.2 matplotlib-inline-0.1.3 mistune-0.8.4 mypy-extensions-0.4.3 nbclient-0.5.10 nbconvert-6.4.1 nbformat-5.1.3 nest-asyncio-1.5.4 packaging-21.3 pandocfilters-1.5.0 papermill-2.3.4 papermill-nb-runner-1.1.16 parso-0.8.3 pathspec-0.9.0 pexpect-4.8.0 pickleshare-0.7.5 platformdirs-2.4.1 prompt-toolkit-3.0.26 ptyprocess-0.7.0 pure-eval-0.2.2 pygments-2.11.2 pyparsing-3.0.7 pyrsistent-0.18.1 python-dateutil-2.8.2 pyyaml-6.0 pyzmq-22.3.0 requests-2.27.1 six-1.16.0 stack-data-0.1.4 tenacity-8.0.1 testpath-0.5.0 textwrap3-0.9.2 tomli-2.0.0 tornado-6.1 tqdm-4.62.3 traitlets-5.1.1 urllib3-1.26.8 wcwidth-0.2.5 webencodings-0.5.1
WARNING: You are using pip version 22.0; however, version 22.0.2 is available.
You should consider upgrading via the '/opt/hostedtoolcache/Python/3.10.0/x64/bin/python -m pip install --upgrade pip' command.

Run papermill --version
1.1.16 from /opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/site-packages/papermill/cli.py (3.10.0)


=============================================================================
Here is the output of the working version (21.3.1): 
=============================================================================

Run python -m pip install pip==21.3.1
  python -m pip install pip==21.3.1
  pip install papermill ipykernel papermill-nb-runner
  shell: /usr/bin/bash -e {0}
  env:
    pythonLocation: /opt/hostedtoolcache/Python/3.10.0/x64
    LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.10.0/x64/lib
Collecting pip==21.3.1
  Downloading pip-21.3.1-py3-none-any.whl (1.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 41.8 MB/s eta 0:00:00
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 22.0.2
    Uninstalling pip-22.0.2:
      Successfully uninstalled pip-22.0.2
Successfully installed pip-21.3.1
Collecting papermill
  Downloading papermill-2.3.4-py3-none-any.whl (37 kB)
Collecting ipykernel
  Downloading ipykernel-6.7.0-py3-none-any.whl (127 kB)
Collecting papermill-nb-runner
  Downloading papermill-nb-runner-1.1.16.tar.gz (935 kB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Collecting tqdm>=4.32.2
  Downloading tqdm-4.62.3-py2.py3-none-any.whl (76 kB)
Collecting tenacity
  Downloading tenacity-8.0.1-py3-none-any.whl (24 kB)
Collecting ansiwrap
  Downloading ansiwrap-0.8.4-py2.py3-none-any.whl (8.5 kB)
Collecting entrypoints
  Downloading entrypoints-0.3-py2.py3-none-any.whl (11 kB)
Collecting pyyaml
  Downloading PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (682 kB)
Collecting nbformat>=5.1.2
  Downloading nbformat-5.1.3-py3-none-any.whl (178 kB)
Collecting nbclient>=0.2.0
  Downloading nbclient-0.5.10-py3-none-any.whl (69 kB)
Collecting requests
  Downloading requests-2.27.1-py2.py3-none-any.whl (63 kB)
Collecting click
  Downloading click-8.0.3-py3-none-any.whl (97 kB)
Collecting tornado<7.0,>=4.2
  Downloading tornado-6.1.tar.gz (497 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Collecting nest-asyncio
  Downloading nest_asyncio-1.5.4-py3-none-any.whl (5.1 kB)
Collecting debugpy<2.0,>=1.0.0
  Downloading debugpy-1.5.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.9 MB)
Collecting matplotlib-inline<0.2.0,>=0.1.0
  Downloading matplotlib_inline-0.1.3-py3-none-any.whl (8.2 kB)
Collecting jupyter-client<8.0
  Downloading jupyter_client-7.1.2-py3-none-any.whl (130 kB)
Collecting traitlets<6.0,>=5.1.0
  Downloading traitlets-5.1.1-py3-none-any.whl (102 kB)
Collecting ipython>=7.23.1
  Downloading ipython-8.0.1-py3-none-any.whl (747 kB)
Collecting six
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting nbconvert>=5.5
  Downloading nbconvert-6.4.1-py3-none-any.whl (557 kB)
Collecting future
  Downloading future-0.18.2.tar.gz (829 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Collecting html2text
  Downloading html2text-2020.1.16-py3-none-any.whl (32 kB)
Collecting black
  Downloading black-22.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB)
Requirement already satisfied: setuptools>=18.5 in /opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/site-packages (from ipython>=7.23.1->ipykernel) (57.4.0)
Collecting jedi>=0.16
  Downloading jedi-0.18.1-py2.py3-none-any.whl (1.6 MB)
Collecting decorator
  Downloading decorator-5.1.1-py3-none-any.whl (9.1 kB)
Collecting backcall
  Downloading backcall-0.2.0-py2.py3-none-any.whl (11 kB)
Collecting prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0
  Downloading prompt_toolkit-3.0.26-py3-none-any.whl (375 kB)
Collecting pexpect>4.3
  Downloading pexpect-4.8.0-py2.py3-none-any.whl (59 kB)
Collecting pickleshare
  Downloading pickleshare-0.7.5-py2.py3-none-any.whl (6.9 kB)
Collecting stack-data
  Downloading stack_data-0.1.4-py3-none-any.whl (20 kB)
Collecting pygments
  Downloading Pygments-2.11.2-py3-none-any.whl (1.1 MB)
Collecting jupyter-core>=4.6.0
  Downloading jupyter_core-4.9.1-py3-none-any.whl (86 kB)
Collecting python-dateutil>=2.1
  Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting pyzmq>=13
  Downloading pyzmq-22.3.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.1 MB)
Collecting defusedxml
  Downloading defusedxml-0.7.1-py2.py3-none-any.whl (25 kB)
Collecting testpath
  Downloading testpath-0.5.0-py3-none-any.whl (84 kB)
Collecting mistune<2,>=0.8.1
  Downloading mistune-0.8.4-py2.py3-none-any.whl (16 kB)
Collecting pandocfilters>=1.4.1
  Downloading pandocfilters-1.5.0-py2.py3-none-any.whl (8.7 kB)
Collecting jinja2>=2.4
  Downloading Jinja2-3.0.3-py3-none-any.whl (133 kB)
Collecting bleach
  Downloading bleach-4.1.0-py2.py3-none-any.whl (157 kB)
Collecting jupyterlab-pygments
  Downloading jupyterlab_pygments-0.1.2-py2.py3-none-any.whl (4.6 kB)
Collecting ipython-genutils
  Downloading ipython_genutils-0.2.0-py2.py3-none-any.whl (26 kB)
Collecting jsonschema!=2.5.0,>=2.4
  Downloading jsonschema-4.4.0-py3-none-any.whl (72 kB)
Collecting textwrap3>=0.9.2
  Downloading textwrap3-0.9.2-py2.py3-none-any.whl (12 kB)
Collecting charset-normalizer~=2.0.0
  Downloading charset_normalizer-2.0.11-py3-none-any.whl (39 kB)
Collecting urllib3<1.27,>=1.21.1
  Downloading urllib3-1.26.8-py2.py3-none-any.whl (138 kB)
Collecting certifi>=2017.4.17
  Downloading certifi-2021.10.8-py2.py3-none-any.whl (149 kB)
Collecting idna<4,>=2.5
  Downloading idna-3.3-py3-none-any.whl (61 kB)
Collecting parso<0.9.0,>=0.8.0
  Downloading parso-0.8.3-py2.py3-none-any.whl (100 kB)
Collecting MarkupSafe>=2.0
  Downloading MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (30 kB)
Collecting pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0
  Downloading pyrsistent-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (115 kB)
Collecting attrs>=17.4.0
  Downloading attrs-21.4.0-py2.py3-none-any.whl (60 kB)
Collecting ptyprocess>=0.5
  Downloading ptyprocess-0.7.0-py2.py3-none-any.whl (13 kB)
Collecting wcwidth
  Downloading wcwidth-0.2.5-py2.py3-none-any.whl (30 kB)
Collecting pathspec>=0.9.0
  Downloading pathspec-0.9.0-py2.py3-none-any.whl (31 kB)
Collecting tomli>=1.1.0
  Downloading tomli-2.0.0-py3-none-any.whl (12 kB)
Collecting mypy-extensions>=0.4.3
  Downloading mypy_extensions-0.4.3-py2.py3-none-any.whl (4.5 kB)
Collecting platformdirs>=2
  Downloading platformdirs-2.4.1-py3-none-any.whl (14 kB)
Collecting webencodings
  Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB)
Collecting packaging
  Downloading packaging-21.3-py3-none-any.whl (40 kB)
Collecting asttokens
  Downloading asttokens-2.0.5-py2.py3-none-any.whl (20 kB)
Collecting pure-eval
  Downloading pure_eval-0.2.2-py3-none-any.whl (11 kB)
Collecting executing
  Downloading executing-0.8.2-py2.py3-none-any.whl (16 kB)
Collecting pyparsing!=3.0.5,>=2.0.2
  Downloading pyparsing-3.0.7-py3-none-any.whl (98 kB)
Using legacy 'setup.py install' for tornado, since package 'wheel' is not installed.
Using legacy 'setup.py install' for future, since package 'wheel' is not installed.
Building wheels for collected packages: papermill-nb-runner
  Building wheel for papermill-nb-runner (pyproject.toml): started
  Building wheel for papermill-nb-runner (pyproject.toml): finished with status 'done'
  Created wheel for papermill-nb-runner: filename=papermill_nb_runner-1.1.16-py2.py3-none-any.whl size=31837 sha256=d5eef842798f9d43f7198f1e427020d954cf4d21b37b107d9e45242a162f58d6
  Stored in directory: /home/runner/.cache/pip/wheels/40/76/42/feea0e923c8a7c45c1f5376bc1058bbaa0ae51e12953f29172
Successfully built papermill-nb-runner
Installing collected packages: traitlets, six, pyrsistent, attrs, tornado, pyzmq, python-dateutil, pyparsing, nest-asyncio, jupyter-core, jsonschema, ipython-genutils, entrypoints, webencodings, wcwidth, tomli, pygments, pure-eval, ptyprocess, platformdirs, pathspec, parso, packaging, nbformat, mypy-extensions, MarkupSafe, jupyter-client, executing, click, asttokens, urllib3, textwrap3, testpath, stack-data, prompt-toolkit, pickleshare, pexpect, pandocfilters, nbclient, mistune, matplotlib-inline, jupyterlab-pygments, jinja2, jedi, idna, defusedxml, decorator, charset-normalizer, certifi, bleach, black, backcall, tqdm, tenacity, requests, pyyaml, nbconvert, ipython, html2text, future, debugpy, ansiwrap, papermill-nb-runner, papermill, ipykernel
    Running setup.py install for tornado: started
    Running setup.py install for tornado: finished with status 'done'
    Running setup.py install for future: started
    Running setup.py install for future: finished with status 'done'
Successfully installed MarkupSafe-2.0.1 ansiwrap-0.8.4 asttokens-2.0.5 attrs-21.4.0 backcall-0.2.0 black-22.1.0 bleach-4.1.0 certifi-2021.10.8 charset-normalizer-2.0.11 click-8.0.3 debugpy-1.5.1 decorator-5.1.1 defusedxml-0.7.1 entrypoints-0.3 executing-0.8.2 future-0.18.2 html2text-2020.1.16 idna-3.3 ipykernel-6.7.0 ipython-8.0.1 ipython-genutils-0.2.0 jedi-0.18.1 jinja2-3.0.3 jsonschema-4.4.0 jupyter-client-7.1.2 jupyter-core-4.9.1 jupyterlab-pygments-0.1.2 matplotlib-inline-0.1.3 mistune-0.8.4 mypy-extensions-0.4.3 nbclient-0.5.10 nbconvert-6.4.1 nbformat-5.1.3 nest-asyncio-1.5.4 packaging-21.3 pandocfilters-1.5.0 papermill-2.3.4 papermill-nb-runner-1.1.16 parso-0.8.3 pathspec-0.9.0 pexpect-4.8.0 pickleshare-0.7.5 platformdirs-2.4.1 prompt-toolkit-3.0.26 ptyprocess-0.7.0 pure-eval-0.2.2 pygments-2.11.2 pyparsing-3.0.7 pyrsistent-0.18.1 python-dateutil-2.8.2 pyyaml-6.0 pyzmq-22.3.0 requests-2.27.1 six-1.16.0 stack-data-0.1.4 tenacity-8.0.1 testpath-0.5.0 textwrap3-0.9.2 tomli-2.0.0 tornado-6.1 tqdm-4.62.3 traitlets-5.1.1 urllib3-1.26.8 wcwidth-0.2.5 webencodings-0.5.1
WARNING: You are using pip version 21.3.1; however, version 22.0.2 is available.
You should consider upgrading via the '/opt/hostedtoolcache/Python/3.10.0/x64/bin/python -m pip install --upgrade pip' command.

Run papermill --version
  papermill --version
  shell: /usr/bin/bash -e {0}
  env:
    pythonLocation: /opt/hostedtoolcache/Python/3.10.0/x64
    LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.10.0/x64/lib
2.3.4 from /opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/site-packages/papermill/cli.py (3.10.0)

Code of Conduct

@DanielHabenicht DanielHabenicht added S: needs triage Issues/PRs that need to be triaged type: bug A confirmed bug or unintended behavior labels Jan 31, 2022
@uranusjr
Copy link
Member

This looks like a bug in papermill to me. In my environment (created by following your instructions), pip correctly identifies the papermill version as 2.3.4:

$ pip install papermill ipykernel papermill-nb-runner
Collecting papermill
  Downloading papermill-2.3.4-py3-none-any.whl (37 kB)
[...]
Successfully installed [...] papermill-2.3.4 [...]
$ pip show papermill
Name: papermill
Version: 2.3.4
Summary: Parametrize and run Jupyter and nteract Notebooks
Home-page: https://github.com/nteract/papermill
Author: nteract contributors
Author-email: nteract@googlegroups.com
License: BSD
Location: c:\users\uranusjr\documents\play\pip-10861\lib\site-packages
Requires: ansiwrap, click, entrypoints, nbclient, nbformat, pyyaml, requests, tenacity, tqdm
Required-by:
$ papermill --version
1.1.16 from C:\Users\uranusjr\Documents\play\pip-10861\lib\site-packages\papermill\cli.py (3.10.0)

This leads me to believe this is a problem in whatever method papermill is using to identify its version, not pip.

@uranusjr uranusjr added resolution: wrong project Should be reported elsewhere and removed S: needs triage Issues/PRs that need to be triaged labels Jan 31, 2022
@DanielHabenicht
Copy link
Author

DanielHabenicht commented Jan 31, 2022

I don't think so, but I am not that familiar with python and pip.

But what you showed is even more of a problem.
The version installed with pip (22.0) is papermill (1.1.16) from https://pypi.org/project/papermill-nb-runner/
The version installed with pip (21.3.1) is papermill (2.3.4) from https://pypi.org/project/papermill/

But both report back as papermill 2.3.4?
Sorry, if that wasn't evident from my description, I debugged this for 2 days.

@uranusjr
Copy link
Member

The version installed with pip (22.0) is papermill (1.1.16) from pypi.org/project/papermill-nb-runner

What does this mean? papermill and papermill-nb-runner are different packages; pip 22.0 installs papermill 2.3.4, and after installation it reports the installed papermill version as 2.3.4, which is correct. Since papermill-nb-runner is a different pacakge from pip’s perspective, it having version 1.1.16 has nothing to do with papermill’s version. From pip’s perspective, everything is correct and consistent. If this version scheme is incorrect from papermill’s perspective, papermill needs to implement additional logic for it, not pip.

@uranusjr
Copy link
Member

I would suggest perhaps bringing the issue up to papermill maintainers (or papermill-nb-runner? I am not familiar with the scosystem around this area) first and see how they can provide better insights on the situation.

@DanielHabenicht
Copy link
Author

DanielHabenicht commented Jan 31, 2022

The version installed with pip (22.0) is papermill (1.1.16) from pypi.org/project/papermill-nb-runner

What does this mean? papermill and papermill-nb-runner are different packages; pip 22.0 installs papermill 2.3.4, and after installation it reports the installed papermill version as 2.3.4, which is correct. Since papermill-nb-runner is a different pacakge from pip’s perspective, it having version 1.1.16 has nothing to do with papermill’s version. From pip’s perspective, everything is correct and consistent. If this version scheme is incorrect from papermill’s perspective, papermill needs to implement additional logic for it, not pip.

Well, both are available via the cli after installation.

If I install pip install papermill ipykernel papermill-nb-runner with pip version 22.0 the cli returns:

> papermill --version
1.1.16 from /opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/site-packages/papermill/cli.py (3.10.0)

If I do the same with pip version 21.3.1 it returns:

> papermill --version
2.3.4 from /opt/hostedtoolcache/Python/3.10.0/x64/lib/python3.10/site-packages/papermill/cli.py (3.10.0)

Which is both to be expected because I installed two packages which have the same cli name and they are conflicting.

But changing which of them gets to rule over the other seems inconsistent.
And that (for me) has something to do with how pip is installing these packages?

@uranusjr
Copy link
Member

So the problem is you are intentionally installing two packages that overwrite each other, and you want to control which overwrites which? I would say please don’t do that, but if you insist, you can do pip install papermill and then pip install papermill-nb-runner to ensure the latter overwrites former.

@pfmoore
Copy link
Member

pfmoore commented Jan 31, 2022

Having two packages (papermill and papermill-nb-runner) both trying to install "the same thing" (I'm being vague here because like @uranusjr I don't know much about papermill or the ecosystem around it) is not really supported by anything in the packaging ecosystem (at best, you'll get errors that one package is trying to overwrite something installed by another, at worst you'll get weird interactions like you describe).

But changing which of them gets to rule over the other seems inconsistent.

There is no guarantee about what order pip installs stuff, and it can change arbitrarily. Unless 2 packages conflict with each other, that will make no difference. That's what I mean by saying that packages installing the same thing isn't supported...

And that (for me) has something to do with how pip is installing these packages?

Pip makes assumptions that these packages violate. Those assumptions might not be written down anywhere (I honestly don't know) but they are very fundamental to the packaging ecosystem - at about the same level as "two packages can't have the same name".

@DanielHabenicht
Copy link
Author

Ok, nice of you to take the time to explain. Thanks!

So the problem is you are intentionally installing two packages that overwrite each other, and you want to control which overwrites which? I would say please don’t do that, but if you insist, you can do pip install papermill and then pip install papermill-nb-runner to ensure the latter overwrites former.

No, I wasn't aware that I still had the old dependency and it only started crashing with pip version 22.0.
Of course, now I have removed one of the packages. :)
I just thought that it might be an issue because there really is no safeguard for doing the same error again and then wasting time debugging it. (also, it seemed deterministic before, so at least something changed in pip that surfaced this problem)

ip makes assumptions that these packages violate. Those assumptions might not be written down anywhere (I honestly don't know) but they are very fundamental to the packaging ecosystem - at about the same level as "two packages can't have the same name".

Would it be good to disallow packages from using the same cli-name? Or at least issue a warning on install if they overwrite each other? I haven't found an issue regarding that topic.

@uranusjr
Copy link
Member

Would it be good to disallow packages from using the same cli-name? Or at least issue a warning on install if they overwrite each other?

I think there’s a general issue floating around somewhere about doing something when anything clashes during installation (including cli files, Python modules, etc.) between two packages. But feel free to open a new issue if you can’t find one, we can always close one of them when we spot duplicates.

@DanielHabenicht
Copy link
Author

Yeah I think I found it: #4625

@DanielHabenicht
Copy link
Author

DanielHabenicht commented Jan 31, 2022

Well noticing the hardly made progress of the other issue I opened one just for the CLI issue.
Thanks again and have a wonderful day!
You can decide if it is substantially differing from the other.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 3, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
resolution: wrong project Should be reported elsewhere type: bug A confirmed bug or unintended behavior
Projects
None yet
Development

No branches or pull requests

3 participants