This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch airflow-ctl/v0-1-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/airflow-ctl/v0-1-test by this
push:
new 81cf6c83257 [airflow-ctl/v0-1-test] Bump datamodel-code-generator pin
from 0.33.0 to 0.41.0 (#69854) (#70201)
81cf6c83257 is described below
commit 81cf6c83257dee4749432a138465066646cfa19b
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu Jul 30 11:59:10 2026 +0200
[airflow-ctl/v0-1-test] Bump datamodel-code-generator pin from 0.33.0 to
0.41.0 (#69854) (#70201)
The pin was stuck at 0.33.0 because later releases change how
use-default interacts with nullable/optional fields. Versions 0.42.2
through at least 0.67.0 widen JsonValue-backed fields to
JsonValue | None, and 0.57.0+ additionally drops the = None default
from nullable-optional fields, turning ~200 fields in the Task SDK
Execution API client and the airflow-ctl API client from optional
into required -- a breaking Pydantic v2 model-contract change.
0.41.0 is the newest release that still regenerates both clients with
a diff limited to the generator version-comment line (plus one benign
RootModel[list] -> RootModel[list[Any]] typing improvement in
airflow-ctl's generated.py), so it unblocks the dependency without
carrying either regression forward.
Closes the datamodel-code-generator item from #69616.
(cherry picked from commit 15a4478a99dba2c07d83c9ca3285c0b0b9bf855c)
Co-authored-by: hkr <[email protected]>
---
airflow-ctl/pyproject.toml | 2 +-
airflow-ctl/src/airflowctl/api/datamodels/auth_generated.py | 2 +-
airflow-ctl/src/airflowctl/api/datamodels/generated.py | 10 +++++-----
task-sdk/pyproject.toml | 2 +-
task-sdk/src/airflow/sdk/api/datamodels/_generated.py | 2 +-
uv.lock | 10 +++++-----
6 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/airflow-ctl/pyproject.toml b/airflow-ctl/pyproject.toml
index acca7520972..344eb42c9c9 100644
--- a/airflow-ctl/pyproject.toml
+++ b/airflow-ctl/pyproject.toml
@@ -149,7 +149,7 @@ dev = [
"apache-airflow-devel-common",
]
codegen = [
- "datamodel-code-generator[http]==0.33.0",
+ "datamodel-code-generator[http]==0.41.0",
"apache-airflow-devel-common"
]
diff --git a/airflow-ctl/src/airflowctl/api/datamodels/auth_generated.py
b/airflow-ctl/src/airflowctl/api/datamodels/auth_generated.py
index ec8d9c16b22..e8f12b9baef 100644
--- a/airflow-ctl/src/airflowctl/api/datamodels/auth_generated.py
+++ b/airflow-ctl/src/airflowctl/api/datamodels/auth_generated.py
@@ -1,6 +1,6 @@
# generated by datamodel-codegen:
# filename: v2-simple-auth-manager-generated.yaml
-# version: 0.33.0
+# version: 0.41.0
from __future__ import annotations
diff --git a/airflow-ctl/src/airflowctl/api/datamodels/generated.py
b/airflow-ctl/src/airflowctl/api/datamodels/generated.py
index f05fa65cf56..2d89d0c513b 100644
--- a/airflow-ctl/src/airflowctl/api/datamodels/generated.py
+++ b/airflow-ctl/src/airflowctl/api/datamodels/generated.py
@@ -1,6 +1,6 @@
# generated by datamodel-codegen:
# filename: v2-rest-api-generated.yaml
-# version: 0.33.0
+# version: 0.41.0
from __future__ import annotations
@@ -202,8 +202,8 @@ class BulkUpdateActionBulkDAGRunBody(BaseModel):
action_on_non_existence: BulkActionNotOnExistence | None = "fail"
-class TaskIds(RootModel[list]):
- root: Annotated[list, Field(max_length=2, min_length=2)]
+class TaskIds(RootModel[list[Any]]):
+ root: Annotated[list[Any], Field(max_length=2, min_length=2)]
class ClearTaskInstancesBody(BaseModel):
@@ -243,8 +243,8 @@ class ClearTaskInstancesBody(BaseModel):
note: Annotated[Note | None, Field(title="Note")] = None
-class Value(RootModel[list]):
- root: Annotated[list, Field(max_length=2, min_length=2, title="Value")]
+class Value(RootModel[list[Any]]):
+ root: Annotated[list[Any], Field(max_length=2, min_length=2,
title="Value")]
class ConfigOption(BaseModel):
diff --git a/task-sdk/pyproject.toml b/task-sdk/pyproject.toml
index 90dba8508d9..728e1b0c5c5 100644
--- a/task-sdk/pyproject.toml
+++ b/task-sdk/pyproject.toml
@@ -210,7 +210,7 @@ exclude_also = [
[dependency-groups]
codegen = [
- "datamodel-code-generator[http]==0.33.0",
+ "datamodel-code-generator[http]==0.41.0",
"openapi-spec-validator>=0.7.1",
"svcs>=25.1.0",
"rich>=13.6.0",
diff --git a/task-sdk/src/airflow/sdk/api/datamodels/_generated.py
b/task-sdk/src/airflow/sdk/api/datamodels/_generated.py
index e08f00562d3..8c1a45fb147 100644
--- a/task-sdk/src/airflow/sdk/api/datamodels/_generated.py
+++ b/task-sdk/src/airflow/sdk/api/datamodels/_generated.py
@@ -1,6 +1,6 @@
# generated by datamodel-codegen:
# filename: http://0.0.0.0:8080/execution/openapi.json
-# version: 0.33.0
+# version: 0.41.0
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
diff --git a/uv.lock b/uv.lock
index a7a98c70d06..8e1ebdf8365 100644
--- a/uv.lock
+++ b/uv.lock
@@ -2010,7 +2010,7 @@ provides-extras = ["dev"]
[package.metadata.requires-dev]
codegen = [
{ name = "apache-airflow-devel-common", editable = "devel-common" },
- { name = "datamodel-code-generator", extras = ["http"], specifier =
"==0.33.0" },
+ { name = "datamodel-code-generator", extras = ["http"], specifier =
"==0.41.0" },
]
dev = [
{ name = "apache-airflow-ctl", extras = ["dev"], editable = "airflow-ctl"
},
@@ -8210,7 +8210,7 @@ provides-extras = ["all", "datadog", "otel", "sentry",
"statsd"]
[package.metadata.requires-dev]
codegen = [
- { name = "datamodel-code-generator", extras = ["http"], specifier =
"==0.33.0" },
+ { name = "datamodel-code-generator", extras = ["http"], specifier =
"==0.41.0" },
{ name = "openapi-spec-validator", specifier = ">=0.7.1" },
{ name = "rich", specifier = ">=13.6.0" },
{ name = "svcs", specifier = ">=25.1.0" },
@@ -10300,7 +10300,7 @@ wheels = [
[[package]]
name = "datamodel-code-generator"
-version = "0.33.0"
+version = "0.41.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "argcomplete" },
@@ -10314,9 +10314,9 @@ dependencies = [
{ name = "pyyaml" },
{ name = "tomli", marker = "python_full_version < '3.12'" },
]
-sdist = { url =
"https://files.pythonhosted.org/packages/7d/a0/3f81c5c0c31d6f25f459e370e04553810f096e5dbd3cf7eda2a67709cd78/datamodel_code_generator-0.33.0.tar.gz",
hash =
"sha256:7635ef788201d69bd3e98ba88ce6afe479400dc2737fe9d5e21f87408f352c08", size
= 458695, upload-time = "2025-08-14T13:50:36.965Z" }
+sdist = { url =
"https://files.pythonhosted.org/packages/21/a0/f3a08b0e2068eae40a170c8485d0a68bfe54210df4b8a67ee4fe27bae681/datamodel_code_generator-0.41.0.tar.gz",
hash =
"sha256:f5ded2baab48488c09ce91c564e486dee9145029c53016f1befb732313d66411", size
= 473910, upload-time = "2025-12-05T16:50:19.049Z" }
wheels = [
- { url =
"https://files.pythonhosted.org/packages/3b/d0/acd7a19dad4dc4118d2b6ba06df9a4a3725729e91fa3f2c63a765d4e7d44/datamodel_code_generator-0.33.0-py3-none-any.whl",
hash =
"sha256:e229264aa612b2d5bb4901bcd6c520a799ae0d5c19262577a0f876eb48afaaa3", size
= 121148, upload-time = "2025-08-14T13:50:35.306Z" },
+ { url =
"https://files.pythonhosted.org/packages/e3/11/9cec012b7764443a7b03bf3725ea56481a3f6d45c363a15406d57d048cf9/datamodel_code_generator-0.41.0-py3-none-any.whl",
hash =
"sha256:02caf2372d298844d6080fe805770161cac9aa720f143f349cee6ca76b50e5bf", size
= 158701, upload-time = "2025-12-05T16:50:17.796Z" },
]
[package.optional-dependencies]