Skip to content

Pipenv 2022.10.25 does not appear to correctly prune obsolete dependencies #5456

Closed
@bootrecords

Description

Issue description

When updating packages in a Pipfile to versions that vendor away certain dependencies, these dependencies are not pruned from the Pipfile.lock

Expected result

The Pipfile.lock doesn't contain dependencies that are not listed in the Pipfile and not depended on by any (sub-)dependencies of listed packages, either. Pipenv version 2022.6.7 does this correctly.

Actual result

Obsoleted package dependencies remain in the Pipfile.lock

Steps to replicate

We start with a Pipfile containing

[packages]
pytest = "==7.1.2"
pytest-xdist = "==2.5.0"

The lock file generated with those dependencies contains, among others, py and pytest-forked. After updating the Pipfile's contents to

[packages]
pytest = "==7.2.0"
pytest-xdist = "==3.0.2"

and running pipenv lock, the packages mentioned above are still listed in the lock file, despite not being depended on any more by either package (as evidenced by pipenv graph).


$ pipenv --support

Pipenv version: '2022.10.25'

Pipenv location: '/usr/local/lib/python3.10/site-packages/pipenv'

Python location: '/usr/local/bin/python'

OS Name: 'posix'

User pip version: '22.3'

user Python installations found:

  • 3.10.5: /usr/local/bin/python
  • 3.10.5: /usr/local/bin/python3
  • 3.9.2: /usr/bin/python3.9
  • 3.9.2: /usr/bin/python3

PEP 508 Information:

{'implementation_name': 'cpython',
 'implementation_version': '3.10.5',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '5.15.0-10052-tuxedo',
 'platform_system': 'Linux',
 'platform_version': '#58tux1 SMP Thu Oct 20 16:29:39 UTC 2022',
 'python_full_version': '3.10.5',
 'python_version': '3.10',
 'sys_platform': 'linux'}

System environment variables:

  • SHELL
  • COLORTERM
  • TERM_PROGRAM_VERSION
  • HOSTNAME
  • PYTHON_VERSION
  • SSH_AUTH_SOCK
  • REMOTE_CONTAINERS_IPC
  • PWD
  • PYTHON_SETUPTOOLS_VERSION
  • HOME
  • LANG
  • REMOTE_CONTAINERS
  • GPG_KEY
  • PYTHONPATH
  • TERM
  • REMOTE_CONTAINERS_SOCKETS
  • SHLVL
  • PYTHON_PIP_VERSION
  • PYTHON_GET_PIP_SHA256
  • PYTHON_GET_PIP_URL
  • BROWSER
  • PATH
  • PIP_NO_CACHE_DIR
  • TERM_PROGRAM
  • VSCODE_IPC_HOOK_CLI
  • _
  • PIP_DISABLE_PIP_VERSION_CHECK
  • PIP_PYTHON_PATH
  • PYTHONDONTWRITEBYTECODE
  • PYTHONFINDER_IGNORE_UNSUPPORTED

Pipenv–specific environment variables:

Debug–specific environment variables:

  • PATH: /vscode/vscode-server/bin/linux-x64/8fa188b2b301d36553cbc9ce1b0a146ccb93351f/bin/remote-cli:/root/.local/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • SHELL: /bin/bash
  • LANG: C.UTF-8
  • PWD: /workspaces/pipenv-break

Contents of Pipfile ('/workspaces/pipenv-break/Pipfile'):

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
pytest = "==7.2.0"
pytest-xdist = "==3.0.2"

[requires]
python_version = "3.10"

[pipenv]
allow_prereleases = true

Contents of Pipfile.lock ('/workspaces/pipenv-break/Pipfile.lock'):

{
    "_meta": {
        "hash": {
            "sha256": "513621fbfbc31236089e939f4c8c8079530cf7a18514d593e9cfece60d5c947f"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.10"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "attrs": {
            "hashes": [
                "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6",
                "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"
            ],
            "markers": "python_version >= '3.5'",
            "version": "==22.1.0"
        },
        "exceptiongroup": {
            "hashes": [
                "sha256:4d6c0aa6dd825810941c792f53d7b8d71da26f5e5f84f20f9508e8f2d33b140a",
                "sha256:73866f7f842ede6cb1daa42c4af078e2035e5f7607f0e2c762cc51bb31bbe7b2"
            ],
            "markers": "python_version < '3.11'",
            "version": "==1.0.1"
        },
        "execnet": {
            "hashes": [
                "sha256:8f694f3ba9cc92cab508b152dcfe322153975c29bda272e2fd7f3f00f36e47c5",
                "sha256:a295f7cc774947aac58dde7fdc85f4aa00c42adf5d8f5468fc630c1acf30a142"
            ],
            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
            "version": "==1.9.0"
        },
        "iniconfig": {
            "hashes": [
                "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3",
                "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"
            ],
            "version": "==1.1.1"
        },
        "packaging": {
            "hashes": [
                "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb",
                "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"
            ],
            "markers": "python_version >= '3.6'",
            "version": "==21.3"
        },
        "pluggy": {
            "hashes": [
                "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159",
                "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"
            ],
            "markers": "python_version >= '3.6'",
            "version": "==1.0.0"
        },
        "py": {
            "hashes": [
                "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719",
                "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"
            ],
            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
            "version": "==1.11.0"
        },
        "pyparsing": {
            "hashes": [
                "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb",
                "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"
            ],
            "markers": "python_full_version >= '3.6.8'",
            "version": "==3.0.9"
        },
        "pytest": {
            "hashes": [
                "sha256:892f933d339f068883b6fd5a459f03d85bfcb355e4981e146d2c7616c21fef71",
                "sha256:c4014eb40e10f11f355ad4e3c2fb2c6c6d1919c73f3b5a433de4708202cade59"
            ],
            "index": "pypi",
            "version": "==7.2.0"
        },
        "pytest-forked": {
            "hashes": [
                "sha256:8b67587c8f98cbbadfdd804539ed5455b6ed03802203485dd2f53c1422d7440e",
                "sha256:bbbb6717efc886b9d64537b41fb1497cfaf3c9601276be8da2cccfea5a3c8ad8"
            ],
            "markers": "python_version >= '3.6'",
            "version": "==1.4.0"
        },
        "pytest-xdist": {
            "hashes": [
                "sha256:688da9b814370e891ba5de650c9327d1a9d861721a524eb917e620eec3e90291",
                "sha256:9feb9a18e1790696ea23e1434fa73b325ed4998b0e9fcb221f16fd1945e6df1b"
            ],
            "index": "pypi",
            "version": "==3.0.2"
        },
        "tomli": {
            "hashes": [
                "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
                "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"
            ],
            "markers": "python_version < '3.11'",
            "version": "==2.0.1"
        }
    },
    "develop": {}
}

Metadata

Assignees

Labels

Priority: HighThis item is high priority and should be resolved quickly.Type: Bug 🐛This issue is a bug.Type: RegressionThis issue is a regression of a previous behavior.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions