Skip to content

Required dependencies are pinned to old exact versions - please loosen or refresh them #43

@oakhan3

Description

@oakhan3

Describe the bug
Several of Chepy's dependencies are pinned to exact versions that are significantly out of date. This causes dependency conflicts when installing Chepy alongside other packages, and in some cases exposes users to known security vulnerabilities (notably PyJWT==1.7.1, released December 2018, which predates several CVEs in the 1.x line).

Package Pinned Version Released PyPI URL
emoji 2.0.0 Jul 16, 2022 https://pypi.org/project/emoji/2.0.0/
fire 0.7.1 Aug 16, 2025 https://pypi.org/project/fire/0.7.1/
jmespath 1.0.1 Jun 17, 2022 https://pypi.org/project/jmespath/1.0.1/
lz4 4.3.2 Dec 30, 2022 https://pypi.org/project/lz4/4.3.2/
msgpack 1.0.4 Jun 3, 2022 https://pypi.org/project/msgpack/1.0.4/
parsel 1.9.1 Apr 8, 2024 https://pypi.org/project/parsel/1.9.1/
passlib 1.7.4 Oct 8, 2020 https://pypi.org/project/passlib/1.7.4/
PGPy 0.6.0 Nov 24, 2022 https://pypi.org/project/PGPy/0.6.0/
pretty-errors 1.2.25 Nov 24, 2021 https://pypi.org/project/pretty-errors/1.2.25/
PyJWT 1.7.1 Dec 7, 2018 https://pypi.org/project/PyJWT/1.7.1/
pyOpenSSL 23.2.0 May 31, 2023 https://pypi.org/project/pyOpenSSL/23.2.0/

Expected behavior
Dependencies should use minimum version specifiers (e.g. pyjwt>=2.0.0) or at minimum a compatible release range (e.g. pyjwt~=2.8) rather than exact pins (==), unless there is a specific known incompatibility with newer versions. This allows pip to resolve a compatible set of packages without conflicts and keeps users on maintained, patched versions of dependencies.

Additional context
PyJWT==1.7.1 is of particular concern - the 1.x branch is unmaintained and has known vulnerabilities. The 2.x line has been stable since 2021. It would be worth either bumping to pyjwt>=2.0.0 or auditing whether the 1.x API surface is still required.

More broadly, using exact pins in install_requires (as opposed to a lockfile like requirements.txt) is generally considered an anti-pattern for libraries, as it makes Chepy difficult to use as a dependency in larger projects.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions