Skip to content

Commit c7c715f

Browse files
smackeseyclaude
authored andcommitted
Remove obsolete dependency pins (#21690)
## Summary & Motivation Remove obsolete upper-bound dependency pins across several packages. These pins were all stale — either referencing bugs that were fixed years ago, or tied to infrastructure that has since been upgraded. Also removes the `extensions/v1beta1` ingress template from the helm chart and its associated tests, since `extensions/v1beta1/Ingress` was removed from Kubernetes in 1.22 (August 2021). ### Pin removals | Package | Pin removed | Why it's safe | |---------|------------|---------------| | **dagster-helm** `[test]` | `kubernetes<22.6.0` → `>=31` | Pin was for k8s API version 1.19 compat. `dagster-k8s` already supports `kubernetes<36`, and `cloud-admin-panel` already requires `>=31`. | | **dagstermill** `[test]` | `tqdm<=4.48` → unpinned | Pin was for [tqdm#1049](tqdm/tqdm#1049) (2020 notebook compat bug, long fixed). `tqdm` isn't even imported in dagstermill. | | **dagster-ssh** `[test]` | `cryptography==2.6.1` removed, `pytest-sftpserver` bumped to `>=1.3.0` | `cryptography` 2.6.1 is from 2019. `pytest-sftpserver` doesn't depend on cryptography at all — the pin was a stale workaround. | | **dagster-sigma** `[test]` | `aiohttp<3.11` removed | `dagster-sigma` main deps already use `aiohttp` without a cap. The test pin conflicted with `dagster-cloud-backend`'s `aiohttp>=3.11.4`. | | **dagster-airlift** `[test]` | `fastapi<0.118` removed | Pin was for an [Airflow internal compat issue](apache/airflow#57769 (comment)). Latest fastapi (0.135+) requires `starlette>=0.46.0` with no upper bound, which is compatible with the rest of the workspace. | | **dagster-buildkite** | `urllib3<2` removed | Pin was for old BK base image lacking OpenSSL 1.1.1+ ([context](psf/requests#6432)). Current BK base image is from July 2024 and ships OpenSSL 3.x. | | **dagster-cloud-backend** `[tests]` | `botocore<1.32.1` removed | No comment explaining the pin. `boto3>=1.29.0` is already a main dep, which pulls in a matching botocore transitively. The upper bound was blocking `urllib3>=2` needed by `tableauserverclient`. | ### Helm chart cleanup - Removed `templates/ingress-v1beta1.yaml` — the `extensions/v1beta1/Ingress` API was removed from Kubernetes in 1.22 (August 2021). The v1 ingress template (`networking.k8s.io/v1`) remains. - Removed `ExtensionsV1beta1Ingress` test parametrizations from `test_ingress.py` since the model no longer exists in `kubernetes>=31`. ## Test Plan - Lockfile resolves successfully with all pins removed - These are all test/dev dependency changes — no impact on production package installs - Helm ingress tests still cover v1 ingress functionality --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Internal-RevId: 0b2ce9e54a9626b725354ce676fa81411200a5b4
1 parent c5e3be5 commit c7c715f

8 files changed

Lines changed: 15 additions & 182 deletions

File tree

.buildkite/dagster-buildkite/pyproject.toml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ dependencies = [
2020
"requests",
2121
"typing_extensions>=4.2",
2222
"pathspec",
23-
# Need this until we have OpenSSL 1.1.1+ available in BK base image
24-
# Context: https://github.com/psf/requests/issues/6432
25-
"urllib3<2",
2623
"pytest",
2724
]
2825

helm/dagster/schema/pyproject.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ dagster-helm = "schema.cli:main"
2525

2626
[project.optional-dependencies]
2727
test = [
28-
# remove pin once minimum supported kubernetes version is 1.19
29-
"kubernetes<22.6.0",
28+
"kubernetes>=31",
3029
"dagster",
3130
"dagster-aws",
3231
"dagster-azure",

helm/dagster/schema/schema_tests/test_ingress.py

Lines changed: 12 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,7 @@ def helm_template_function():
2626
# Parametrizing "webserver_field" here tests backcompat. `dagit` was the old field name.
2727
# This parametrization can be removed in 2.0.
2828
@pytest.mark.parametrize("webserver_field", ["dagsterWebserver", "dagit"])
29-
@pytest.mark.parametrize(
30-
argnames=["output", "model", "api_version"],
31-
argvalues=[
32-
(
33-
"templates/ingress-v1beta1.yaml",
34-
models.ExtensionsV1beta1Ingress,
35-
"extensions/v1beta1/Ingress",
36-
),
37-
(
38-
"templates/ingress.yaml",
39-
models.V1Ingress,
40-
"networking.k8s.io/v1/Ingress",
41-
),
42-
],
43-
)
44-
def test_ingress(template_function, webserver_field, output, model, api_version):
29+
def test_ingress(template_function, webserver_field):
4530
webserver_kwargs = {
4631
webserver_field: WebserverIngressConfiguration.construct(
4732
host="foobar.com",
@@ -58,11 +43,11 @@ def test_ingress(template_function, webserver_field, output, model, api_version)
5843
)
5944
}
6045

61-
template = template_function(output, model)
46+
template = template_function("templates/ingress.yaml", models.V1Ingress)
6247
helm_values = DagsterHelmValues.construct(
6348
ingress=Ingress.construct(
6449
enabled=True,
65-
apiVersion=api_version,
50+
apiVersion="networking.k8s.io/v1/Ingress",
6651
**webserver_kwargs, # type: ignore
6752
)
6853
)
@@ -80,27 +65,12 @@ def test_ingress(template_function, webserver_field, output, model, api_version)
8065
# Parametrizing "webserver_field" here tests backcompat. `dagit` was the old field name.
8166
# This parametrization can be removed in 2.0.
8267
@pytest.mark.parametrize("readonly_webserver_field", ["readOnlyDagsterWebserver", "readOnlyDagit"])
83-
@pytest.mark.parametrize(
84-
argnames=["output", "model", "api_version"],
85-
argvalues=[
86-
(
87-
"templates/ingress-v1beta1.yaml",
88-
models.ExtensionsV1beta1Ingress,
89-
"extensions/v1beta1/Ingress",
90-
),
91-
(
92-
"templates/ingress.yaml",
93-
models.V1Ingress,
94-
"networking.k8s.io/v1/Ingress",
95-
),
96-
],
97-
)
98-
def test_ingress_read_only(template_function, readonly_webserver_field, output, model, api_version):
99-
template = template_function(output, model)
68+
def test_ingress_read_only(template_function, readonly_webserver_field):
69+
template = template_function("templates/ingress.yaml", models.V1Ingress)
10070
helm_values = DagsterHelmValues.construct(
10171
ingress=Ingress.construct(
10272
enabled=True,
103-
apiVersion=api_version,
73+
apiVersion="networking.k8s.io/v1/Ingress",
10474
dagsterWebserver=WebserverIngressConfiguration.construct(
10575
host="foobar.com",
10676
path="bing",
@@ -139,23 +109,8 @@ def test_ingress_read_only(template_function, readonly_webserver_field, output,
139109
assert [rule.host for rule in ingress.spec.rules] == ["foobar.com", "dagster.io"]
140110

141111

142-
@pytest.mark.parametrize(
143-
argnames=["output", "model", "api_version"],
144-
argvalues=[
145-
(
146-
"templates/ingress-v1beta1.yaml",
147-
models.ExtensionsV1beta1Ingress,
148-
"extensions/v1beta1/Ingress",
149-
),
150-
(
151-
"templates/ingress.yaml",
152-
models.V1Ingress,
153-
"networking.k8s.io/v1/Ingress",
154-
),
155-
],
156-
)
157-
def test_ingress_tls(template_function, output, model, api_version):
158-
template = template_function(output, model)
112+
def test_ingress_tls(template_function):
113+
template = template_function("templates/ingress.yaml", models.V1Ingress)
159114
webserver_host = "webserver.com"
160115
webserver_readonly_host = "webserver-readonly.com"
161116
flower_host = "flower.com"
@@ -167,7 +122,7 @@ def test_ingress_tls(template_function, output, model, api_version):
167122
helm_values = DagsterHelmValues.construct(
168123
ingress=Ingress.construct(
169124
enabled=True,
170-
apiVersion=api_version,
125+
apiVersion="networking.k8s.io/v1/Ingress",
171126
dagsterWebserver=WebserverIngressConfiguration.construct(
172127
host=webserver_host,
173128
pathType=IngressPathType.IMPLEMENTATION_SPECIFIC,
@@ -209,27 +164,12 @@ def test_ingress_tls(template_function, output, model, api_version):
209164
assert flower_tls.secret_name == flower_tls_secret_name
210165

211166

212-
@pytest.mark.parametrize(
213-
argnames=["output", "model", "api_version"],
214-
argvalues=[
215-
(
216-
"templates/ingress-v1beta1.yaml",
217-
models.ExtensionsV1beta1Ingress,
218-
"extensions/v1beta1/Ingress",
219-
),
220-
(
221-
"templates/ingress.yaml",
222-
models.V1Ingress,
223-
"networking.k8s.io/v1/Ingress",
224-
),
225-
],
226-
)
227-
def test_ingress_labels(template_function, output, model, api_version):
228-
template = template_function(output, model)
167+
def test_ingress_labels(template_function):
168+
template = template_function("templates/ingress.yaml", models.V1Ingress)
229169
helm_values = DagsterHelmValues.construct(
230170
ingress=Ingress.construct(
231171
enabled=True,
232-
apiVersion=api_version,
172+
apiVersion="networking.k8s.io/v1/Ingress",
233173
dagsterWebserver=WebserverIngressConfiguration.construct(
234174
host="foobar.com",
235175
path="bing",

helm/dagster/templates/ingress-v1beta1.yaml

Lines changed: 0 additions & 100 deletions
This file was deleted.

python_modules/libraries/dagster-airlift/pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ test = [
7373
"pendulum>=3.0.0; python_version >= '3.12'",
7474
"flask-session<0.6.0",
7575
"connexion<3.0.0",
76-
"fastapi<0.118",
7776
"click",
7877
"structlog",
7978
]

python_modules/libraries/dagster-sigma/pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,4 @@ dagster-sigma = "dagster_sigma.cli:app"
3232
[project.optional-dependencies]
3333
test = [
3434
"aioresponses",
35-
"aiohttp<3.11",
3635
]

python_modules/libraries/dagster-ssh/pyproject.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,5 @@ Homepage = "https://github.com/dagster-io/dagster/tree/master/python_modules/lib
2828

2929
[project.optional-dependencies]
3030
test = [
31-
"cryptography==2.6.1",
32-
"pytest-sftpserver==1.2.0",
31+
"pytest-sftpserver>=1.3.0",
3332
]

python_modules/libraries/dagstermill/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,5 @@ dagstermill = "dagstermill.cli:main"
4141
test = [
4242
"matplotlib",
4343
"scikit-learn>=0.19.0",
44-
"tqdm<=4.48", # https://github.com/tqdm/tqdm/issues/1049
44+
"tqdm",
4545
]

0 commit comments

Comments
 (0)