Skip to content

Commit

Permalink
Stop pinning urllib3 (only done for testing dep)
Browse files Browse the repository at this point in the history
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):
#46 (comment)

To resolve the error, `urllib3` was pinned to version `1.26.*`:
#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
  • Loading branch information
DavidCain committed Sep 6, 2024
1 parent 453c1f1 commit a2773d3
Showing 1 changed file with 5 additions and 6 deletions.
11 changes: 5 additions & 6 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ dynamic = ["version", "optional-dependencies"]
dependencies = [
"attrs",
"requests",
"urllib3~=1.26",
]

[project.urls]
Expand All @@ -38,9 +37,9 @@ dependencies = [

[build-system]
requires = [
"setuptools >= 69.0",
"setuptools_scm[toml] >= 8.0"
]
"setuptools >= 69.0",
"setuptools_scm[toml] >= 8.0"
]
build-backend = "setuptools.build_meta"


Expand All @@ -58,8 +57,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"
Expand Down

0 comments on commit a2773d3

Please sign in to comment.