From 6f3e4d491648ec6b623fd53c3567cf0531f4634e Mon Sep 17 00:00:00 2001 From: David Cain Date: Fri, 6 Sep 2024 14:51:54 -0700 Subject: [PATCH] Stop pinning urllib3 (only done for testing dep) This fixes a problem where one cannot install `bioutils` into an environment where `urllib3` version 2 is being used. In other words, merely installing `bioutils` forces you to use `urllib3` version 1. There's a positive side effect too where installing `bioutils` no longer pulls in an unneeded dependency. Why are we pinning an unused dependency? ======================================== Previously, `vcrpy` (a test dependency) would not support urllib3 version 2. Tests would fail to run because of an attempted import of `urllib3.connectionpool.VerifiedHTTPSConnection` (not present in v2): https://github.com/biocommons/bioutils/issues/46#issuecomment-1535482771 To resolve the error, `urllib3` was pinned to version `1.26.*`: https://github.com/biocommons/bioutils/pull/49 This definitely worked, but `urllib3` is *not* directly used by the package, only indirectly used during testing. Why pin a transitive test-only dependency? ========================================== Unfortunately, the way that `urllib3` was pinned doesn't just affect CI for this repository, but affects *any* environment in which `bioutils` is installed. Specifically, `urllib3` will *always* be installed as a dependency (or possibly downgraded from v2) when you `pip install bioutils`! There are ways we could have pinned `urllib3` only in CI without affecting package dependencies, but that's not important anymore. Is the original problem solved? =============================== Yes! `vcrpy` version 4.3.1 (released in May of 2023) started supporting `urllib3` version 2! > Support urllib3 v1 and v2. NOTE: there is an issue running urllib3 v2 > on Python older than 3.10, so this is currently blocked in the > requirements. Hopefully we can resolve this situation in the future. > Thanks to shifqu, hartwork, jairhenrique, pquentin, and vEpiphyte for > your work on this. https://vcrpy.readthedocs.io/en/latest/changelog.html --- pyproject.toml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 02f4cef..32a54ce 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,6 @@ dynamic = ["version"] dependencies = [ "attrs", "requests", - "urllib3~=1.26", ] [project.optional-dependencies] @@ -74,8 +73,8 @@ doctest_optionflags = [ "NORMALIZE_WHITESPACE", ] markers = [ - "network: tests that require network connectivity", - "slow: slow tests that should be run infrequently", + "network: tests that require network connectivity", + "slow: slow tests that should be run infrequently", ] testpaths = [ "tests"