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

Problem with lacking hashes for pipenv with custom index url #4885

Closed
HenrikPoulsen opened this issue Nov 29, 2021 · 10 comments · Fixed by #4908
Closed

Problem with lacking hashes for pipenv with custom index url #4885

HenrikPoulsen opened this issue Nov 29, 2021 · 10 comments · Fixed by #4908
Labels
Type: Bug 🐛 This issue is a bug.

Comments

@HenrikPoulsen
Copy link

Issue description

Since some version after pipenv 2021.5.29 it seems the lockfile behavior has changed regarding the hashes that get written to the file.
I use Renovate to create PRs for updated dependencies. And since a couple of weeks the repo started to get lockfiles produced that were missing windows hashes for dependencies.
Specifically it updates from aiohttp 3.8.0 to 3.8.1 and it ends up only including two hashes for it in the lockfile after it is done.
When CI then tries to run the windows unit tests on that PR it fails, due to the hashes it is looking for is not present in the lockfile.

I have noticed that this only happens if I have a custom index-url in the Pipfile, which in my case points to an artifactory instance we use.

Expected result

Lockfile should be updated with all available hashes so crossplatform pipenv install is successful

Actual result

I get this error message on windows after it pip installs using the lockfile that renovate has created:

An error occurred while installing aiohttp==3.8.1; python_version >= '3.6' --hash=sha256:fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578 --hash=sha256:2e5d962cf7e1d426aa0e528a7e198658cdc8aa4fe87f781d039ad75dcd52c516! Will try again.

It only includes 2 hashes instead of the 70+ as on the older pipenv version
This is the verbose output of when it doesn't work:

ubuntu@d7c59f82d09e:/data$ pipenv --version
pipenv, version 2021.11.23
ubuntu@d7c59f82d09e:/data$ pipenv --rm
Removing virtualenv (/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2)...
ubuntu@d7c59f82d09e:/data$ pipenv install --verbose
Using python: None
Path to python: /usr/local/python/3.9.9/bin/python3.9
Creating a virtualenv for this project...
Pipfile: /data/Pipfile
Using /usr/local/python/3.9.9/bin/python3.9 (3.9.9) to create virtualenv...
⠸ Creating virtual environment...created virtual environment CPython3.9.9.final.0-64 in 183ms
  creator CPython3Posix(dest=/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/ubuntu/.local/share/virtualenv)
    added seed packages: pip==21.3.1, setuptools==58.3.0, wheel==0.37.0
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

✔ Successfully created virtual environment!
Virtualenv location: /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2
Pipfile.lock not found, creating...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
Reporter.starting()
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting()
Reporter.adding_requirement(SpecifierRequirement('aiohttp==3.8.1'), None)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('aiohttp==3.8.1'), None)
Reporter.starting_round(0)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(0)
Reporter.adding_requirement(SpecifierRequirement('attrs>=17.3.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('attrs>=17.3.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
Reporter.adding_requirement(SpecifierRequirement('multidict<7.0,>=4.5'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('multidict<7.0,>=4.5'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
Reporter.adding_requirement(SpecifierRequirement('charset-normalizer<3.0,>=2.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('charset-normalizer<3.0,>=2.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
Reporter.adding_requirement(SpecifierRequirement('frozenlist>=1.1.1'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('frozenlist>=1.1.1'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
Reporter.adding_requirement(SpecifierRequirement('yarl<2.0,>=1.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('yarl<2.0,>=1.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
Reporter.adding_requirement(SpecifierRequirement('async-timeout<5.0,>=4.0.0a3'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('async-timeout<5.0,>=4.0.0a3'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
Reporter.adding_requirement(SpecifierRequirement('aiosignal>=1.1.2'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('aiosignal>=1.1.2'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))
Reporter.ending_round(0, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(0, state)
Reporter.starting_round(1)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(1)
Reporter.adding_requirement(SpecifierRequirement('frozenlist>=1.1.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/3b/87/fe94898f2d44a93a35d5aa74671ed28094d80753a1113d68b799fab6dc22/aiosignal-1.2.0-py3-none-any.whl#sha256=26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a (from https//someartifactory/api/pypi/pypi/simple/aiosignal/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('frozenlist>=1.1.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/3b/87/fe94898f2d44a93a35d5aa74671ed28094d80753a1113d68b799fab6dc22/aiosignal-1.2.0-py3-none-any.whl#sha256=26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a (from https//someartifactory/api/pypi/pypi/simple/aiosignal/) (requires-python:>=3.6)'))
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/3b/87/fe94898f2d44a93a35d5aa74671ed28094d80753a1113d68b799fab6dc22/aiosignal-1.2.0-py3-none-any.whl#sha256=26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a (from https//someartifactory/api/pypi/pypi/simple/aiosignal/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/3b/87/fe94898f2d44a93a35d5aa74671ed28094d80753a1113d68b799fab6dc22/aiosignal-1.2.0-py3-none-any.whl#sha256=26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a (from https//someartifactory/api/pypi/pypi/simple/aiosignal/) (requires-python:>=3.6)'))
Reporter.ending_round(1, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(1, state)
Reporter.starting_round(2)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(2)
Reporter.adding_requirement(SpecifierRequirement('typing-extensions>=3.6.5'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/41/4a/2ca8802045b6df8dd25a0f8f7c216808e9e3bff2809efe4a36cc99d35cca/async_timeout-4.0.1-py3-none-any.whl#sha256=a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690 (from https//someartifactory/api/pypi/pypi/simple/async-timeout/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('typing-extensions>=3.6.5'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/41/4a/2ca8802045b6df8dd25a0f8f7c216808e9e3bff2809efe4a36cc99d35cca/async_timeout-4.0.1-py3-none-any.whl#sha256=a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690 (from https//someartifactory/api/pypi/pypi/simple/async-timeout/) (requires-python:>=3.6)'))
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/41/4a/2ca8802045b6df8dd25a0f8f7c216808e9e3bff2809efe4a36cc99d35cca/async_timeout-4.0.1-py3-none-any.whl#sha256=a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690 (from https//someartifactory/api/pypi/pypi/simple/async-timeout/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/41/4a/2ca8802045b6df8dd25a0f8f7c216808e9e3bff2809efe4a36cc99d35cca/async_timeout-4.0.1-py3-none-any.whl#sha256=a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690 (from https//someartifactory/api/pypi/pypi/simple/async-timeout/) (requires-python:>=3.6)'))
Reporter.ending_round(2, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(2, state)
Reporter.starting_round(3)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(3)
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/20/a9/ba6f1cd1a1517ff022b35acd6a7e4246371dfab08b8e42b829b6d07913cc/attrs-21.2.0-py2.py3-none-any.whl#sha256=149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1 (from https//someartifactory/api/pypi/pypi/simple/attrs/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/20/a9/ba6f1cd1a1517ff022b35acd6a7e4246371dfab08b8e42b829b6d07913cc/attrs-21.2.0-py2.py3-none-any.whl#sha256=149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1 (from https//someartifactory/api/pypi/pypi/simple/attrs/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*)'))
Reporter.ending_round(3, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(3, state)
Reporter.starting_round(4)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(4)
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/c8/27/141554fc0f42c05dd318fbb0be0e3e018da686544a3ff452762e49ccac58/charset_normalizer-2.0.8-py3-none-any.whl#sha256=83fcdeb225499d6344c8f7f34684c2981270beacc32ede2e669e94f7fa544405 (from https//someartifactory/api/pypi/pypi/simple/charset-normalizer/) (requires-python:>=3.5.0)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/c8/27/141554fc0f42c05dd318fbb0be0e3e018da686544a3ff452762e49ccac58/charset_normalizer-2.0.8-py3-none-any.whl#sha256=83fcdeb225499d6344c8f7f34684c2981270beacc32ede2e669e94f7fa544405 (from https//someartifactory/api/pypi/pypi/simple/charset-normalizer/) (requires-python:>=3.5.0)'))
Reporter.ending_round(4, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(4, state)
Reporter.starting_round(5)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(5)
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/7d/f1/cfdc5c52af9e79a388acc441df235a74e596fded86836679f0c860d58fe7/frozenlist-1.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=1fef737fd1388f9b93bba8808c5f63058113c10f4e3c0763ced68431773f72f9 (from https//someartifactory/api/pypi/pypi/simple/frozenlist/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/7d/f1/cfdc5c52af9e79a388acc441df235a74e596fded86836679f0c860d58fe7/frozenlist-1.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=1fef737fd1388f9b93bba8808c5f63058113c10f4e3c0763ced68431773f72f9 (from https//someartifactory/api/pypi/pypi/simple/frozenlist/) (requires-python:>=3.6)'))
Reporter.ending_round(5, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(5, state)
Reporter.starting_round(6)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(6)
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/51/e3/dc667b9fc5d6bfde185b3a6d8788279f897090cefb808dda8e6ff8e7dbeb/multidict-5.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=93de39267c4c676c9ebb2057e98a8138bade0d806aad4d864322eee0803140a0 (from https//someartifactory/api/pypi/pypi/simple/multidict/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/51/e3/dc667b9fc5d6bfde185b3a6d8788279f897090cefb808dda8e6ff8e7dbeb/multidict-5.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=93de39267c4c676c9ebb2057e98a8138bade0d806aad4d864322eee0803140a0 (from https//someartifactory/api/pypi/pypi/simple/multidict/) (requires-python:>=3.6)'))
Reporter.ending_round(6, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(6, state)
Reporter.starting_round(7)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(7)
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/17/61/32c3ab8951142e061587d957226b5683d1387fb22d95b4f69186d92616d1/typing_extensions-4.0.0-py3-none-any.whl#sha256=829704698b22e13ec9eaf959122315eabb370b0884400e9818334d8b677023d9 (from https//someartifactory/api/pypi/pypi/simple/typing-extensions/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/17/61/32c3ab8951142e061587d957226b5683d1387fb22d95b4f69186d92616d1/typing_extensions-4.0.0-py3-none-any.whl#sha256=829704698b22e13ec9eaf959122315eabb370b0884400e9818334d8b677023d9 (from https//someartifactory/api/pypi/pypi/simple/typing-extensions/) (requires-python:>=3.6)'))
Reporter.ending_round(7, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(7, state)
Reporter.starting_round(8)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(8)
Reporter.adding_requirement(SpecifierRequirement('idna>=2.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('idna>=2.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)'))
Reporter.adding_requirement(SpecifierRequirement('multidict>=4.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.adding_requirement(SpecifierRequirement('multidict>=4.0'), LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)'))
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)'))
Reporter.ending_round(8, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(8, state)
Reporter.starting_round(9)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(9)
Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/04/a2/d918dcd22354d8958fe113e1a3630137e0fc8b44859ade3063982eacd2a4/idna-3.3-py3-none-any.whl#sha256=84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff (from https//someartifactory/api/pypi/pypi/simple/idna/) (requires-python:>=3.5)'))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.pinning(LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/04/a2/d918dcd22354d8958fe113e1a3630137e0fc8b44859ade3063982eacd2a4/idna-3.3-py3-none-any.whl#sha256=84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff (from https//someartifactory/api/pypi/pypi/simple/idna/) (requires-python:>=3.5)'))
Reporter.ending_round(9, state)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending_round(9, state)
Reporter.starting_round(10)
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.starting_round(10)
Reporter.ending(State(mapping=OrderedDict([('aiohttp', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)')), ('aiosignal', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/3b/87/fe94898f2d44a93a35d5aa74671ed28094d80753a1113d68b799fab6dc22/aiosignal-1.2.0-py3-none-any.whl#sha256=26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a (from https//someartifactory/api/pypi/pypi/simple/aiosignal/) (requires-python:>=3.6)')), ('async-timeout', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/41/4a/2ca8802045b6df8dd25a0f8f7c216808e9e3bff2809efe4a36cc99d35cca/async_timeout-4.0.1-py3-none-any.whl#sha256=a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690 (from https//someartifactory/api/pypi/pypi/simple/async-timeout/) (requires-python:>=3.6)')), ('attrs', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/20/a9/ba6f1cd1a1517ff022b35acd6a7e4246371dfab08b8e42b829b6d07913cc/attrs-21.2.0-py2.py3-none-any.whl#sha256=149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1 (from https//someartifactory/api/pypi/pypi/simple/attrs/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*)')), ('charset-normalizer', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/c8/27/141554fc0f42c05dd318fbb0be0e3e018da686544a3ff452762e49ccac58/charset_normalizer-2.0.8-py3-none-any.whl#sha256=83fcdeb225499d6344c8f7f34684c2981270beacc32ede2e669e94f7fa544405 (from https//someartifactory/api/pypi/pypi/simple/charset-normalizer/) (requires-python:>=3.5.0)')), ('frozenlist', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/7d/f1/cfdc5c52af9e79a388acc441df235a74e596fded86836679f0c860d58fe7/frozenlist-1.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=1fef737fd1388f9b93bba8808c5f63058113c10f4e3c0763ced68431773f72f9 (from https//someartifactory/api/pypi/pypi/simple/frozenlist/) (requires-python:>=3.6)')), ('multidict', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/51/e3/dc667b9fc5d6bfde185b3a6d8788279f897090cefb808dda8e6ff8e7dbeb/multidict-5.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=93de39267c4c676c9ebb2057e98a8138bade0d806aad4d864322eee0803140a0 (from https//someartifactory/api/pypi/pypi/simple/multidict/) (requires-python:>=3.6)')), ('typing-extensions', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/17/61/32c3ab8951142e061587d957226b5683d1387fb22d95b4f69186d92616d1/typing_extensions-4.0.0-py3-none-any.whl#sha256=829704698b22e13ec9eaf959122315eabb370b0884400e9818334d8b677023d9 (from https//someartifactory/api/pypi/pypi/simple/typing-extensions/) (requires-python:>=3.6)')), ('yarl', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)')), ('idna', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/04/a2/d918dcd22354d8958fe113e1a3630137e0fc8b44859ade3063982eacd2a4/idna-3.3-py3-none-any.whl#sha256=84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff (from https//someartifactory/api/pypi/pypi/simple/idna/) (requires-python:>=3.5)'))]), criteria={'aiohttp': Criterion((SpecifierRequirement('aiohttp==3.8.1'), via=None)), 'attrs': Criterion((SpecifierRequirement('attrs>=17.3.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'multidict': Criterion((SpecifierRequirement('multidict<7.0,>=4.5'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)')), (SpecifierRequirement('multidict>=4.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)'))), 'charset-normalizer': Criterion((SpecifierRequirement('charset-normalizer<3.0,>=2.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'frozenlist': Criterion((SpecifierRequirement('frozenlist>=1.1.1'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)')), (SpecifierRequirement('frozenlist>=1.1.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/3b/87/fe94898f2d44a93a35d5aa74671ed28094d80753a1113d68b799fab6dc22/aiosignal-1.2.0-py3-none-any.whl#sha256=26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a (from https//someartifactory/api/pypi/pypi/simple/aiosignal/) (requires-python:>=3.6)'))), 'yarl': Criterion((SpecifierRequirement('yarl<2.0,>=1.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'async-timeout': Criterion((SpecifierRequirement('async-timeout<5.0,>=4.0.0a3'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'aiosignal': Criterion((SpecifierRequirement('aiosignal>=1.1.2'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'typing-extensions': Criterion((SpecifierRequirement('typing-extensions>=3.6.5'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/41/4a/2ca8802045b6df8dd25a0f8f7c216808e9e3bff2809efe4a36cc99d35cca/async_timeout-4.0.1-py3-none-any.whl#sha256=a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690 (from https//someartifactory/api/pypi/pypi/simple/async-timeout/) (requires-python:>=3.6)'))), 'idna': Criterion((SpecifierRequirement('idna>=2.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)')))}))
INFO:pipenv.patched.notpip._internal.resolution.resolvelib.reporter:Reporter.ending(State(mapping=OrderedDict([('aiohttp', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)')), ('aiosignal', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/3b/87/fe94898f2d44a93a35d5aa74671ed28094d80753a1113d68b799fab6dc22/aiosignal-1.2.0-py3-none-any.whl#sha256=26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a (from https//someartifactory/api/pypi/pypi/simple/aiosignal/) (requires-python:>=3.6)')), ('async-timeout', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/41/4a/2ca8802045b6df8dd25a0f8f7c216808e9e3bff2809efe4a36cc99d35cca/async_timeout-4.0.1-py3-none-any.whl#sha256=a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690 (from https//someartifactory/api/pypi/pypi/simple/async-timeout/) (requires-python:>=3.6)')), ('attrs', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/20/a9/ba6f1cd1a1517ff022b35acd6a7e4246371dfab08b8e42b829b6d07913cc/attrs-21.2.0-py2.py3-none-any.whl#sha256=149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1 (from https//someartifactory/api/pypi/pypi/simple/attrs/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*)')), ('charset-normalizer', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/c8/27/141554fc0f42c05dd318fbb0be0e3e018da686544a3ff452762e49ccac58/charset_normalizer-2.0.8-py3-none-any.whl#sha256=83fcdeb225499d6344c8f7f34684c2981270beacc32ede2e669e94f7fa544405 (from https//someartifactory/api/pypi/pypi/simple/charset-normalizer/) (requires-python:>=3.5.0)')), ('frozenlist', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/7d/f1/cfdc5c52af9e79a388acc441df235a74e596fded86836679f0c860d58fe7/frozenlist-1.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=1fef737fd1388f9b93bba8808c5f63058113c10f4e3c0763ced68431773f72f9 (from https//someartifactory/api/pypi/pypi/simple/frozenlist/) (requires-python:>=3.6)')), ('multidict', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/51/e3/dc667b9fc5d6bfde185b3a6d8788279f897090cefb808dda8e6ff8e7dbeb/multidict-5.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=93de39267c4c676c9ebb2057e98a8138bade0d806aad4d864322eee0803140a0 (from https//someartifactory/api/pypi/pypi/simple/multidict/) (requires-python:>=3.6)')), ('typing-extensions', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/17/61/32c3ab8951142e061587d957226b5683d1387fb22d95b4f69186d92616d1/typing_extensions-4.0.0-py3-none-any.whl#sha256=829704698b22e13ec9eaf959122315eabb370b0884400e9818334d8b677023d9 (from https//someartifactory/api/pypi/pypi/simple/typing-extensions/) (requires-python:>=3.6)')), ('yarl', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)')), ('idna', LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/04/a2/d918dcd22354d8958fe113e1a3630137e0fc8b44859ade3063982eacd2a4/idna-3.3-py3-none-any.whl#sha256=84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff (from https//someartifactory/api/pypi/pypi/simple/idna/) (requires-python:>=3.5)'))]), criteria={'aiohttp': Criterion((SpecifierRequirement('aiohttp==3.8.1'), via=None)), 'attrs': Criterion((SpecifierRequirement('attrs>=17.3.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'multidict': Criterion((SpecifierRequirement('multidict<7.0,>=4.5'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)')), (SpecifierRequirement('multidict>=4.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)'))), 'charset-normalizer': Criterion((SpecifierRequirement('charset-normalizer<3.0,>=2.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'frozenlist': Criterion((SpecifierRequirement('frozenlist>=1.1.1'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)')), (SpecifierRequirement('frozenlist>=1.1.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/3b/87/fe94898f2d44a93a35d5aa74671ed28094d80753a1113d68b799fab6dc22/aiosignal-1.2.0-py3-none-any.whl#sha256=26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a (from https//someartifactory/api/pypi/pypi/simple/aiosignal/) (requires-python:>=3.6)'))), 'yarl': Criterion((SpecifierRequirement('yarl<2.0,>=1.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'async-timeout': Criterion((SpecifierRequirement('async-timeout<5.0,>=4.0.0a3'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'aiosignal': Criterion((SpecifierRequirement('aiosignal>=1.1.2'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd (from https//someartifactory/api/pypi/pypi/simple/aiohttp/) (requires-python:>=3.6)'))), 'typing-extensions': Criterion((SpecifierRequirement('typing-extensions>=3.6.5'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/41/4a/2ca8802045b6df8dd25a0f8f7c216808e9e3bff2809efe4a36cc99d35cca/async_timeout-4.0.1-py3-none-any.whl#sha256=a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690 (from https//someartifactory/api/pypi/pypi/simple/async-timeout/) (requires-python:>=3.6)'))), 'idna': Criterion((SpecifierRequirement('idna>=2.0'), via=LinkCandidate('https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl#sha256=f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 (from https//someartifactory/api/pypi/pypi/simple/yarl/) (requires-python:>=3.6)')))}))
⠋ Locking...
✔ Success!
Updated Pipfile.lock (80b28e)!
Installing dependencies from Pipfile.lock (80b28e)...
Writing supplied requirement line to temporary file: 'aiohttp==3.8.1 --hash=sha256:fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578 --hash=sha256:d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd'
Installing 'aiohttp'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-etaxvvjo-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
Writing supplied requirement line to temporary file: "aiosignal==1.2.0; python_version >= '3.6' --hash=sha256:26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a --hash=sha256:78ed67db6c7b7ced4f98e495e572106d5c432a93e1ddd1bf475e1dc05f5b7df2"
Installing 'aiosignal'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-r_ysw2rc-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
Writing supplied requirement line to temporary file: "async-timeout==4.0.1; python_version >= '3.6' --hash=sha256:a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690 --hash=sha256:b930cb161a39042f9222f6efb7301399c87eeab394727ec5437924a36d6eef51"
Installing 'async-timeout'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-bd02p628-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
Writing supplied requirement line to temporary file: "attrs==21.2.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' --hash=sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1 --hash=sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"
Installing 'attrs'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-4612xm51-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
Writing supplied requirement line to temporary file: "charset-normalizer==2.0.8; python_version >= '3.5' --hash=sha256:735e240d9a8506778cd7a453d97e817e536bb1fc29f4f6961ce297b9c7a917b0 --hash=sha256:83fcdeb225499d6344c8f7f34684c2981270beacc32ede2e669e94f7fa544405"
Installing 'charset-normalizer'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-umbhnkro-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
Writing supplied requirement line to temporary file: "frozenlist==1.2.0; python_version >= '3.6' --hash=sha256:1fef737fd1388f9b93bba8808c5f63058113c10f4e3c0763ced68431773f72f9 --hash=sha256:68201be60ac56aff972dc18085800b6ee07973c49103a8aba669dee3d71079de"
Installing 'frozenlist'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-r5rph6_7-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
Writing supplied requirement line to temporary file: "idna==3.3; python_version >= '3.5' --hash=sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff --hash=sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"
Installing 'idna'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-d6bguty1-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
Writing supplied requirement line to temporary file: "multidict==5.2.0; python_version >= '3.6' --hash=sha256:0dd1c93edb444b33ba2274b66f63def8a327d607c6c790772f448a53b6ea59ce --hash=sha256:93de39267c4c676c9ebb2057e98a8138bade0d806aad4d864322eee0803140a0"
Installing 'multidict'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-47sd48pi-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting aiohttp==3.8.1
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/e9/13/21e7f1d0d1932b321cdeaea01d5008285dac3b088af855c5c3d8714dba7b/aiohttp-3.8.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.2 MB)
Installing collected packages: aiohttp
Successfully installed aiohttp-3.8.1
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting aiosignal==1.2.0
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/3b/87/fe94898f2d44a93a35d5aa74671ed28094d80753a1113d68b799fab6dc22/aiosignal-1.2.0-py3-none-any.whl (8.2 kB)
Installing collected packages: aiosignal
Successfully installed aiosignal-1.2.0
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting async-timeout==4.0.1
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/41/4a/2ca8802045b6df8dd25a0f8f7c216808e9e3bff2809efe4a36cc99d35cca/async_timeout-4.0.1-py3-none-any.whl (5.7 kB)
Installing collected packages: async-timeout
Successfully installed async-timeout-4.0.1
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting attrs==21.2.0
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/20/a9/ba6f1cd1a1517ff022b35acd6a7e4246371dfab08b8e42b829b6d07913cc/attrs-21.2.0-py2.py3-none-any.whl (53 kB)
Installing collected packages: attrs
Successfully installed attrs-21.2.0
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting charset-normalizer==2.0.8
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/c8/27/141554fc0f42c05dd318fbb0be0e3e018da686544a3ff452762e49ccac58/charset_normalizer-2.0.8-py3-none-any.whl (39 kB)
Installing collected packages: charset-normalizer
  changing mode of /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/normalizer to 755
Successfully installed charset-normalizer-2.0.8
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting frozenlist==1.2.0
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/7d/f1/cfdc5c52af9e79a388acc441df235a74e596fded86836679f0c860d58fe7/frozenlist-1.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (203 kB)
Installing collected packages: frozenlist
Successfully installed frozenlist-1.2.0
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting idna==3.3
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/04/a2/d918dcd22354d8958fe113e1a3630137e0fc8b44859ade3063982eacd2a4/idna-3.3-py3-none-any.whl (61 kB)
Installing collected packages: idna
Successfully installed idna-3.3
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting multidict==5.2.0
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/51/e3/dc667b9fc5d6bfde185b3a6d8788279f897090cefb808dda8e6ff8e7dbeb/multidict-5.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (174 kB)
Installing collected packages: multidict
Successfully installed multidict-5.2.0
Writing supplied requirement line to temporary file: "typing-extensions==4.0.0; python_version >= '3.6' --hash=sha256:829704698b22e13ec9eaf959122315eabb370b0884400e9818334d8b677023d9 --hash=sha256:2cdf80e4e04866a9b3689a51869016d36db0814d84b8d8a568d22781d45d27ed"
Installing 'typing-extensions'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-e3sr5w0i-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
Writing supplied requirement line to temporary file: "yarl==1.7.2; python_version >= '3.6' --hash=sha256:f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794 --hash=sha256:45399b46d60c253327a460e99856752009fcee5f5d3c80b2f7c0cae1c38d56dd"
Installing 'yarl'
$ /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/bin/python -m pip install --verbose --upgrade --require-hashes --no-deps --exists-action=i -r /tmp/pipenv-jwsn6t8p-requirements/pipenv-rm5tr_31-requirement.txt -i https//someartifactory/api/pypi/pypi/simple
Using source directory: '/home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/src'
  �   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 10/10 — 00:00:02
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting typing-extensions==4.0.0
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/17/61/32c3ab8951142e061587d957226b5683d1387fb22d95b4f69186d92616d1/typing_extensions-4.0.0-py3-none-any.whl (22 kB)
Installing collected packages: typing-extensions
Successfully installed typing-extensions-4.0.0
Using pip 21.3.1 from /home/ubuntu/.local/share/virtualenvs/data-I7nS9QO2/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https//someartifactory/api/pypi/pypi/simple
Collecting yarl==1.7.2
  Using cached https//someartifactory/api/pypi/pypi/packages/packages/23/a3/c71c1b275066a72b22bb4fa88590f5197aaeef0fa00dfd6ad3b119deaf2c/yarl-1.7.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (304 kB)Installing collected packages: yarl
Successfully installed yarl-1.7.2
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.

Steps to replicate

  1. Use the pipfile listed at the bottom of the pipenv --support below here, modify the index-url to something that works for you
  2. For reproducing I used the renovate docker image, since I run on windows. So: docker run -it -v /folder/with/pipfile:/data --entrypoint /bin/bash renovate/python:3.9 use whatever you prefer
  3. run pip install pipenv
  4. run pip install
  5. Verify number of hashes in Pipfile.lock only has a couple of values in it

Observe that I was unable to reproduce this without the [[source]] section in the Pipfile


$ pipenv --support

Pipenv version: '2021.11.23'

Pipenv location: '/home/ubuntu/.local/lib/python3.9/site-packages/pipenv'

Python location: '/usr/local/python/3.9.9/bin/python3.9'

Python installations found:

  • 3.9.9: /usr/local/python/3.9.9/bin/python3.9
  • 3.9.9: /usr/local/python/3.9.9/bin/python3
  • 3.9.9: /usr/local/python/3.9.9/bin/python
  • 3.9.9: /usr/local/bin/python

PEP 508 Information:

{'implementation_name': 'cpython',
 'implementation_version': '3.9.9',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '5.10.60.1-microsoft-standard-WSL2',
 'platform_system': 'Linux',
 'platform_version': '#1 SMP Wed Aug 25 23:20:18 UTC 2021',
 'python_full_version': '3.9.9',
 'python_version': '3.9',
 'sys_platform': 'linux'}

System environment variables:

  • USER_ID
  • HOSTNAME
  • PWD
  • USER_NAME
  • HOME
  • USER_HOME
  • LANG
  • LS_COLORS
  • TERM
  • SHLVL
  • BASH_ENV
  • LC_ALL
  • PATH
  • DEBIAN_FRONTEND
  • BUILDPACK
  • OLDPWD
  • _
  • PIP_SHIMS_BASE_MODULE
  • PIP_DISABLE_PIP_VERSION_CHECK
  • PYTHONDONTWRITEBYTECODE
  • PIP_PYTHON_PATH
  • PYTHONFINDER_IGNORE_UNSUPPORTED

Pipenv–specific environment variables:

Debug–specific environment variables:

  • PATH: /home/ubuntu/.local/bin:/usr/local/python/3.9.9/bin:/home/ubuntu/bin:/home/ubuntu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • LANG: C.UTF-8
  • PWD: /data

Contents of Pipfile ('/data/Pipfile'):

[[source]]
url = "https//someartifactory/api/pypi/pypi/simple"
verify_ssl = true
name = "pypi"

[packages]
aiohttp = "==3.8.1"

Contents of Pipfile.lock ('/data/Pipfile.lock'):

{
    "_meta": {
        "hash": {
            "sha256": "124cf509d4d27ce063e7a4f1fe5faf9892b0896c8e84f4207b11663cc780b28e"
        },
        "pipfile-spec": 6,
        "requires": {},
        "sources": [
            {
                "name": "pypi",
                "url": "https//someartifactory/api/pypi/pypi/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "aiohttp": {
            "hashes": [
                "sha256:d15367ce87c8e9e09b0f989bfd72dc641bcd04ba091c68cd305312d00962addd",
                "sha256:fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578"
            ],
            "index": "pypi",
            "version": "==3.8.1"
        },
        "aiosignal": {
            "hashes": [
                "sha256:26e62109036cd181df6e6ad646f91f0dcfd05fe16d0cb924138ff2ab75d64e3a",
                "sha256:78ed67db6c7b7ced4f98e495e572106d5c432a93e1ddd1bf475e1dc05f5b7df2"
            ],
            "markers": "python_version >= '3.6'",
            "version": "==1.2.0"
        },
        "async-timeout": {
            "hashes": [
                "sha256:a22c0b311af23337eb05fcf05a8b51c3ea53729d46fb5460af62bee033cec690",
                "sha256:b930cb161a39042f9222f6efb7301399c87eeab394727ec5437924a36d6eef51"
            ],
            "markers": "python_version >= '3.6'",
            "version": "==4.0.1"
        },
        "attrs": {
            "hashes": [
                "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1",
                "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"
            ],
            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
            "version": "==21.2.0"
        },
        "charset-normalizer": {
            "hashes": [
                "sha256:735e240d9a8506778cd7a453d97e817e536bb1fc29f4f6961ce297b9c7a917b0",
                "sha256:83fcdeb225499d6344c8f7f34684c2981270beacc32ede2e669e94f7fa544405"
            ],
            "markers": "python_full_version >= '3.5.0'",
            "version": "==2.0.8"
        },
        "frozenlist": {
            "hashes": [
                "sha256:1fef737fd1388f9b93bba8808c5f63058113c10f4e3c0763ced68431773f72f9",
                "sha256:68201be60ac56aff972dc18085800b6ee07973c49103a8aba669dee3d71079de"
            ],
            "markers": "python_version >= '3.6'",
            "version": "==1.2.0"
        },
        "idna": {
            "hashes": [
                "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff",
                "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"
            ],
            "markers": "python_full_version >= '3.5.0'",
            "version": "==3.3"
        },
        "multidict": {
            "hashes": [
                "sha256:0dd1c93edb444b33ba2274b66f63def8a327d607c6c790772f448a53b6ea59ce",
                "sha256:93de39267c4c676c9ebb2057e98a8138bade0d806aad4d864322eee0803140a0"
            ],
            "markers": "python_version >= '3.6'",
            "version": "==5.2.0"
        },
        "typing-extensions": {
            "hashes": [
                "sha256:2cdf80e4e04866a9b3689a51869016d36db0814d84b8d8a568d22781d45d27ed",
                "sha256:829704698b22e13ec9eaf959122315eabb370b0884400e9818334d8b677023d9"
            ],
            "markers": "python_version >= '3.6'",
            "version": "==4.0.0"
        },
        "yarl": {
            "hashes": [
                "sha256:45399b46d60c253327a460e99856752009fcee5f5d3c80b2f7c0cae1c38d56dd",
                "sha256:f64394bd7ceef1237cc604b5a89bf748c95982a84bcd3c4bbeb40f685c810794"
            ],
            "markers": "python_version >= '3.6'",
            "version": "==1.7.2"
        }
    },
    "develop": {}
}
@matteius
Copy link
Member

I agree with this report and was looking for someone with the same report -- our lock file is 75% lighter after version 2021.5.29. I am currently diffing the code base to see if I can find any hints at what could be going on.

@matteius
Copy link
Member

However @HenrikPoulsen, I am still able to reproduce the issue without having the [[source]] section in the Pipfile so I think that is maybe unrelated. Unfortunately my example is a private Pipfile that I cannot share, but it seems to depend on the versions of things in the Pipfile. For example, after modifying just the version of 1/65 requirements and adding another requirement to the Pipfile, the lock file goes from missing 75% of requirements to appearing to be complete.

jfly added a commit to jfly/2022-01-pipenv-issue-4885-repro that referenced this issue Jan 6, 2022
It does seem to rely upon running a custom index. I'm using devpi for
that here.
jfly added a commit to jfly/2022-01-pipenv-issue-4885-repro that referenced this issue Jan 6, 2022
It does seem to rely upon running a custom index. I'm using devpi for
that here.
@jfly
Copy link
Contributor

jfly commented Jan 6, 2022

We're running into this as well. I've put together a repro here: https://github.com/jfly/pipenv-issue-4885-repro. Unlike @matteius but like @HenrikPoulsen, I needed to introduce an alternative Python package index to trigger the issue. So maybe @matteius is running into something different, or there are other ways to get this issue to rear its head.

I'll try to get a clone of pipenv running and see if I can git bisect my way to a problematic commit.

jfly added a commit to jfly/2022-01-pipenv-issue-4885-repro that referenced this issue Jan 6, 2022
It does seem to rely upon running a custom index. I'm using devpi for
that here.
@jfly
Copy link
Contributor

jfly commented Jan 6, 2022

So I bisected, and here's what I found:

  • d0fa43a is the last commit that does not have this problem
  • 49cb628 through 849fdc2 cannot be tested due to various bugs
  • edf9368 has this problem

That corresponds to this massive PR from @frostming: #4759, which definitely sounds suspicious. I'm not sure how much further I'll be able to take this investigation.

@jfly
Copy link
Contributor

jfly commented Jan 6, 2022

Ok, I've dug enough to confirm that 5ef5a59 is definitely where this broke.

Previous, working behavior (I'm looking at d0fa43a):

  1. actually_resolve_deps calls resolver.resolve_hashes:
    hashes = resolver.resolve_hashes()
  2. Resolver::resolve_hashes calls self.resolver.resolve_hashes:
    resolved_hashes = self.resolver.resolve_hashes(self.results)
  3. Piptools's Resolver::resolve_hashes finds all the hashes:
    def resolve_hashes(self, ireqs):
    """
    Finds acceptable hashes for all of the given InstallRequirements.
    """
    log.debug("")
    log.debug("Generating hashes:")
    with self.repository.allow_all_wheels():
    return {ireq: self.repository.get_hashes(ireq) for ireq in ireqs}

New, broken behavior (I'm looking at 3ab4763 here):

  1. actually_resolve_deps calls resolver.resolve_hashes:
    hashes = resolver.resolve_hashes()
  2. Resolver::resolve_hashes calls self.collect_hashes:
    self.hashes[ireq] = self.collect_hashes(ireq)

    3a. When using pypi.org collect_hashes goes into this pypi.org specific code block and calls _get_hashes_from_pypi, which finds all the hashes, regardless of the platform we're running on:

    pipenv/pipenv/utils.py

    Lines 945 to 951 in 3ab4763

    if any(
    "python.org" in source["url"] or "pypi.org" in source["url"]
    for source in self.sources
    ):
    hashes = self._get_hashes_from_pypi(ireq)
    if hashes:
    return hashes

    3b. When using a custom python package index collect_hashes calls self.finder.find_best_candidate, which only finds candidates that are installable on the current platform:

    pipenv/pipenv/utils.py

    Lines 953 to 959 in 3ab4763

    applicable_candidates = self.finder.find_best_candidate(
    ireq.name, ireq.specifier
    ).iter_applicable()
    return {
    self._get_hash_from_link(candidate.link)
    for candidate in applicable_candidates
    }

Unfortunately, this seems to be one of those situations where understanding why it used to work and why it doesn't work now doesn't seem to be enough information to fix the problem. I don't know why we moved away from piptools, but presumably that was for a good reason. Maybe the right fix is to change up this code to find all candidates, not just ones that could work on the current platform?

@frostming, I could really use some help here. Thanks!

@frostming
Copy link
Contributor

When using a custom python package index collect_hashes calls self.finder.find_best_candidate, which only finds candidates that are installable on the current platform.

This should be wrong, care to submit a fix for it? @jfly Thanks.

@jfly
Copy link
Contributor

jfly commented Jan 6, 2022

@frostming, I can give that a shot. I could use a little help getting started, though. My initial thought is to add a boolean parameter to find_best_candidate that tells it it's ok to find candidates that for other platforms (perhaps a only_for_current_platform parameter that defaults to true, and we can change it to False when collect_hashes runs). How does that sound?

@jfly
Copy link
Contributor

jfly commented Jan 6, 2022

Oh wait, I just realized I'm talking about changing vendored pip code. Is that an ok? Or do we prefer not to change that code?

@matteius
Copy link
Member

matteius commented Jan 7, 2022

@jfly This other issue #4866 was specifically what was causing the missing hashes in my case; Based on your research so far do you think this could be related to what you have found? #4866 (comment)

@matteius matteius added the Type: Bug 🐛 This issue is a bug. label Jan 7, 2022
jfly added a commit to jfly/pipenv that referenced this issue Jan 7, 2022
@jfly
Copy link
Contributor

jfly commented Jan 7, 2022

@matteius that sounds different. The bug I tracked down is definitely specific to when you're using a custom python package server.

wip-sync referenced this issue in NetBSD/pkgsrc-wip Jan 21, 2022
2022.1.8 (2022-01-08)
=====================

Bug Fixes
---------

- Remove the extra parentheses around the venv prompt.  `#4877 <https://github.com/pypa/pipenv/issues/4877>`_
- Fix a bug of installation fails when extra index url is given.  `#4881 <https://github.com/pypa/pipenv/issues/4881>`_
- Fix regression where lockfiles would only include the hashes for releases for the platform generating the lockfile  `#4885 <https://github.com/pypa/pipenv/issues/4885>`_
- Fix the index parsing to reject illegal requirements.txt.  `#4899 <https://github.com/pypa/pipenv/issues/4899>`_

2021.11.23 (2021-11-23)
=======================

Bug Fixes
---------

- Update ``charset-normalizer`` from ``2.0.3`` to ``2.0.7``, this fixes an import error on Python 3.6.  `#4865 <https://github.com/pypa/pipenv/issues/4865>`_
- Fix a bug of deleting a virtualenv that is not managed by Pipenv.  `#4867 <https://github.com/pypa/pipenv/issues/4867>`_
- Fix a bug that source is not added to ``Pipfile`` when index url is given with ``pipenv install``.  `#4873 <https://github.com/pypa/pipenv/issues/4873>`_

2021.11.15 (2021-11-15)
=======================

Bug Fixes
---------

- Return an empty dict when ``PIPENV_DONT_LOAD_ENV`` is set.  `#4851 <https://github.com/pypa/pipenv/issues/4851>`_
- Don't use ``sys.executable`` when inside an activated venv.  `#4852 <https://github.com/pypa/pipenv/issues/4852>`_

Vendored Libraries
------------------

- Drop the vendored ``jinja2`` dependency as it is not needed any more.  `#4858 <https://github.com/pypa/pipenv/issues/4858>`_
- Update ``click`` from ``8.0.1`` to ``8.0.3``, to fix a problem with bash completion.  `#4860 <https://github.com/pypa/pipenv/issues/4860>`_
- Drop unused vendor ``chardet``.  `#4862 <https://github.com/pypa/pipenv/issues/4862>`_

Improved Documentation
----------------------

- Fix the documentation to reflect the fact that special characters must be percent-encoded in the URL.  `#4856 <https://github.com/pypa/pipenv/issues/4856>`_

2021.11.9 (2021-11-09)
======================

Features & Improvements
-----------------------

- Replace ``click-completion`` with ``click``'s own completion implementation.  `#4786 <https://github.com/pypa/pipenv/issues/4786>`_

Bug Fixes
---------

- Fix a bug that ``pipenv run`` doesn't set environment variables correctly.  `#4831 <https://github.com/pypa/pipenv/issues/4831>`_
- Fix a bug that certifi can't be loaded within ``notpip``'s vendor library. This makes several objects of ``pip`` fail to be imported.  `#4833 <https://github.com/pypa/pipenv/issues/4833>`_
- Fix a bug that ``3.10.0`` can be found be python finder.  `#4837 <https://github.com/pypa/pipenv/issues/4837>`_

Vendored Libraries
------------------

- Update ``pythonfinder`` from ``1.2.8`` to ``1.2.9``.  `#4837 <https://github.com/pypa/pipenv/issues/4837>`_

2021.11.5.post0 (2021-11-05)
============================

Bug Fixes
---------

- Fix a regression that ``pipenv shell`` fails to start a subshell.  `#4828 <https://github.com/pypa/pipenv/issues/4828>`_
- Fix a regression that ``pip_shims`` object isn't imported correctly.  `#4829 <https://github.com/pypa/pipenv/issues/4829>`_

2021.11.5 (2021-11-05)
======================

Features & Improvements
-----------------------

- Avoid sharing states but create project objects on demand. So that most integration test cases are able to switch to a in-process execution method.  `#4757 <https://github.com/pypa/pipenv/issues/4757>`_
- Shell-quote ``pip`` commands when logging.  `#4760 <https://github.com/pypa/pipenv/issues/4760>`_

Bug Fixes
---------

- Ignore empty .venv in rood dir and create project name base virtual environment  `#4790 <https://github.com/pypa/pipenv/issues/4790>`_

Vendored Libraries
------------------

- Update vendored dependencies
  - ``attrs`` from ``20.3.0`` to ``21.2.0``
  - ``cerberus`` from ``1.3.2`` to ``1.3.4``
  - ``certifi`` from ``2020.11.8`` to ``2021.5.30``
  - ``chardet`` from ``3.0.4`` to ``4.0.0``
  - ``click`` from ``7.1.2`` to ``8.0.1``
  - ``distlib`` from ``0.3.1`` to ``0.3.2``
  - ``idna`` from ``2.10`` to ``3.2``
  - ``importlib-metadata`` from ``2.0.0`` to ``4.6.1``
  - ``importlib-resources`` from ``3.3.0`` to ``5.2.0``
  - ``jinja2`` from ``2.11.2`` to ``3.0.1``
  - ``markupsafe`` from ``1.1.1`` to ``2.0.1``
  - ``more-itertools`` from ``5.0.0`` to ``8.8.0``
  - ``packaging`` from ``20.8`` to ``21.0``
  - ``pep517`` from ``0.9.1`` to ``0.11.0``
  - ``pipdeptree`` from ``1.0.0`` to ``2.0.0``
  - ``ptyprocess`` from ``0.6.0`` to ``0.7.0``
  - ``python-dateutil`` from ``2.8.1`` to ``2.8.2``
  - ``python-dotenv`` from ``0.15.0`` to ``0.19.0``
  - ``pythonfinder`` from ``1.2.5`` to ``1.2.8``
  - ``requests`` from ``2.25.0`` to ``2.26.0``
  - ``shellingham`` from ``1.3.2`` to ``1.4.0``
  - ``six`` from ``1.15.0`` to ``1.16.0``
  - ``tomlkit`` from ``0.7.0`` to ``0.7.2``
  - ``urllib3`` from ``1.26.1`` to ``1.26.6``
  - ``zipp`` from ``1.2.0`` to ``3.5.0``

  Add new vendored dependencies
  - ``charset-normalizer 2.0.3``
  - ``termcolor 1.1.0``
  - ``tomli 1.1.0``
  - ``wheel 0.36.2``  `#4747 <https://github.com/pypa/pipenv/issues/4747>`_
- Drop the dependencies for Python 2.7 compatibility purpose.  `#4751 <https://github.com/pypa/pipenv/issues/4751>`_
- Switch the dependency resolver from ``pip-tools`` to `pip`.

  Update vendor libraries:
  - Update ``requirementslib`` from ``1.5.16`` to ``1.6.1``
  - Update ``pip-shims`` from ``0.5.6`` to ``0.6.0``
  - New vendor ``platformdirs 2.4.0``  `#4759 <https://github.com/pypa/pipenv/issues/4759>`_

Improved Documentation
----------------------

- remove prefixes on install commands for easy copy/pasting  `#4792 <https://github.com/pypa/pipenv/issues/4792>`_
- Officially drop support for Python 2.7 and Python 3.5.  `#4261 <https://github.com/pypa/pipenv/issues/4261>`_

2021.5.29 (2021-05-29)
======================

Bug Fixes
---------

- Fix a bug where passing --skip-lock when PIPFILE has no [SOURCE] section throws the error: "tomlkit.exceptions.NonExistentKey: 'Key "source" does not exist.'"  `#4141 <https://github.com/pypa/pipenv/issues/4141>`_
- Fix bug where environment wouldn't activate in paths containing & and $ symbols  `#4538 <https://github.com/pypa/pipenv/issues/4538>`_
- Fix a bug that ``importlib-metadata`` from the project's dependencies conflicts with that from ``pipenv``'s.  `#4549 <https://github.com/pypa/pipenv/issues/4549>`_
- Fix a bug where ``pep508checker.py`` did not expect double-digit Python minor versions (e.g. "3.10").  `#4602 <https://github.com/pypa/pipenv/issues/4602>`_
- Fix bug where environment wouldn't activate in paths containing () and [] symbols  `#4615 <https://github.com/pypa/pipenv/issues/4615>`_
- Fix bug preventing use of pipenv lock --pre  `#4642 <https://github.com/pypa/pipenv/issues/4642>`_

Vendored Libraries
------------------

- Update ``packaging`` from ``20.4`` to ``20.8``.  `#4591 <https://github.com/pypa/pipenv/issues/4591>`_

2020.11.15 (2020-11-15)
=======================

Features & Improvements
-----------------------

- Support expanding environment variables in requirement URLs.  `#3516 <https://github.com/pypa/pipenv/issues/3516>`_
- Show warning message when a dependency is skipped in locking due to the mismatch of its markers.  `#4346 <https://github.com/pypa/pipenv/issues/4346>`_

Bug Fixes
---------

- Fix a bug that executable scripts with leading backslash can't be executed via ``pipenv run``.  `#4368 <https://github.com/pypa/pipenv/issues/4368>`_
- Fix a bug that VCS dependencies always satisfy even if the ref has changed.  `#4387 <https://github.com/pypa/pipenv/issues/4387>`_
- Restrict the acceptable hash type to SHA256 only.  `#4517 <https://github.com/pypa/pipenv/issues/4517>`_
- Fix the output of ``pipenv scripts`` under Windows platform.  `#4523 <https://github.com/pypa/pipenv/issues/4523>`_
- Fix a bug that the resolver takes wrong section to validate constraints.  `#4527 <https://github.com/pypa/pipenv/issues/4527>`_

Vendored Libraries
------------------

- Update vendored dependencies:
    - ``colorama`` from ``0.4.3`` to ``0.4.4``
    - ``python-dotenv`` from ``0.10.3`` to ``0.15.0``
    - ``first`` from ``2.0.1`` to ``2.0.2``
    - ``iso8601`` from ``0.1.12`` to ``0.1.13``
    - ``parse`` from ``1.15.0`` to ``1.18.0``
    - ``pipdeptree`` from ``0.13.2`` to ``1.0.0``
    - ``requests`` from ``2.23.0`` to ``2.25.0``
    - ``idna`` from ``2.9`` to ``2.10``
    - ``urllib3`` from ``1.25.9`` to ``1.26.1``
    - ``certifi`` from ``2020.4.5.1`` to ``2020.11.8``
    - ``requirementslib`` from ``1.5.15`` to ``1.5.16``
    - ``attrs`` from ``19.3.0`` to ``20.3.0``
    - ``distlib`` from ``0.3.0`` to ``0.3.1``
    - ``packaging`` from ``20.3`` to ``20.4``
    - ``six`` from ``1.14.0`` to ``1.15.0``
    - ``semver`` from ``2.9.0`` to ``2.13.0``
    - ``toml`` from ``0.10.1`` to ``0.10.2``
    - ``cached-property`` from ``1.5.1`` to ``1.5.2``
    - ``yaspin`` from ``0.14.3`` to ``1.2.0``
    - ``resolvelib`` from ``0.3.0`` to ``0.5.2``
    - ``pep517`` from ``0.8.2`` to ``0.9.1``
    - ``zipp`` from ``0.6.0`` to ``1.2.0``
    - ``importlib-metadata`` from ``1.6.0`` to ``2.0.0``
    - ``importlib-resources`` from ``1.5.0`` to ``3.3.0``  `#4533 <https://github.com/pypa/pipenv/issues/4533>`_

Improved Documentation
----------------------

- Fix suggested pyenv setup to avoid using shimmed interpreter  `#4534 <https://github.com/pypa/pipenv/issues/4534>`_

2020.11.4 (2020-11-04)
======================

Features & Improvements
-----------------------

- Add a new command ``pipenv scripts`` to display shortcuts from Pipfile.  `#3686 <https://github.com/pypa/pipenv/issues/3686>`_
- Retrieve package file hash from URL to accelerate the locking process.  `#3827 <https://github.com/pypa/pipenv/issues/3827>`_
- Add the missing ``--system`` option to ``pipenv sync``.  `#4441 <https://github.com/pypa/pipenv/issues/4441>`_
- Add a new option pair ``--header/--no-header`` to ``pipenv lock`` command,
  which adds a header to the generated requirements.txt  `#4443 <https://github.com/pypa/pipenv/issues/4443>`_

Bug Fixes
---------

- Fix a bug that percent encoded characters will be unquoted incorrectly in the file URL.  `#4089 <https://github.com/pypa/pipenv/issues/4089>`_
- Fix a bug where setting PIPENV_PYTHON to file path breaks environment name  `#4225 <https://github.com/pypa/pipenv/issues/4225>`_
- Fix a bug that paths are not normalized before comparison.  `#4330 <https://github.com/pypa/pipenv/issues/4330>`_
- Handle Python major and minor versions correctly in Pipfile creation.  `#4379 <https://github.com/pypa/pipenv/issues/4379>`_
- Fix a bug that non-wheel file requirements can be resolved successfully.  `#4386 <https://github.com/pypa/pipenv/issues/4386>`_
- Fix a bug that ``pexept.exceptions.TIMEOUT`` is not caught correctly because of the wrong import path.  `#4424 <https://github.com/pypa/pipenv/issues/4424>`_
- Fix a bug that compound TOML table is not parsed correctly.  `#4433 <https://github.com/pypa/pipenv/issues/4433>`_
- Fix a bug that invalid Python paths from Windows registry break ``pipenv install``.  `#4436 <https://github.com/pypa/pipenv/issues/4436>`_
- Fix a bug that function calls in ``setup.py`` can't be parsed rightly.  `#4446 <https://github.com/pypa/pipenv/issues/4446>`_
- Fix a bug that dist-info inside ``venv`` directory will be mistaken as the editable package's metadata.  `#4480 <https://github.com/pypa/pipenv/issues/4480>`_
- Make the order of hashes in resolution result stable.  `#4513 <https://github.com/pypa/pipenv/issues/4513>`_

Vendored Libraries
------------------

- Update ``tomlkit`` from ``0.5.11`` to ``0.7.0``.  `#4433 <https://github.com/pypa/pipenv/issues/4433>`_
- Update ``requirementslib`` from ``1.5.13`` to ``1.5.14``.  `#4480 <https://github.com/pypa/pipenv/issues/4480>`_

Improved Documentation
----------------------

- Discourage homebrew installation in installation guides.  `#4013 <https://github.com/pypa/pipenv/issues/4013>`_
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Bug 🐛 This issue is a bug.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants