This is an automated email from the ASF dual-hosted git repository.
jason810496 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 7ae64e7ed62 Mark Lang-SDK ADRs 0003-0006 as Accepted (#70157)
7ae64e7ed62 is described below
commit 7ae64e7ed621d1c0df2752a3e912bf610b374d20
Author: Jason(Zhe-You) Liu <[email protected]>
AuthorDate: Sat Jul 25 13:30:46 2026 +0800
Mark Lang-SDK ADRs 0003-0006 as Accepted (#70157)
---
airflow-core/adr/lang-sdk/0003-pure-java-dags.md | 2 +-
airflow-core/adr/lang-sdk/0004-dag-parsing.md | 10 +++++-----
airflow-core/adr/lang-sdk/0005-coordinator-packaging.md | 12 ++++++------
airflow-core/adr/lang-sdk/0006-no-lang-sdk-source-display.md | 2 +-
4 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/airflow-core/adr/lang-sdk/0003-pure-java-dags.md
b/airflow-core/adr/lang-sdk/0003-pure-java-dags.md
index e02740a50a8..632e711f724 100644
--- a/airflow-core/adr/lang-sdk/0003-pure-java-dags.md
+++ b/airflow-core/adr/lang-sdk/0003-pure-java-dags.md
@@ -21,7 +21,7 @@
## Status
-Proposed
+Accepted
> **Note:** This ADR describes pure Java DAG authoring (entire DAGs written in
> Java without a
> Python file), which was removed from the scope of
diff --git a/airflow-core/adr/lang-sdk/0004-dag-parsing.md
b/airflow-core/adr/lang-sdk/0004-dag-parsing.md
index 564e237ea29..d4e85acde89 100644
--- a/airflow-core/adr/lang-sdk/0004-dag-parsing.md
+++ b/airflow-core/adr/lang-sdk/0004-dag-parsing.md
@@ -21,7 +21,7 @@
## Status
-Proposed
+Accepted
> **Note:** This ADR describes language-native DAG file parsing, which was
> removed from the
> scope of [AIP-108](https://cwiki.apache.org/confluence/x/pY4mGQ). Per
> AIP-108, Java tasks are
@@ -40,7 +40,7 @@ This ADR details the DAG parsing side of the coordinator
architecture described
### Extension Point: `BaseCoordinator`
-A single abstract base class — `BaseCoordinator` — handles both DAG parsing
and task execution. Concrete subclasses ship as standalone distributions
(`apache-airflow-coordinators-<lang>`) under the shared
`airflow.sdk.coordinators` namespace package; they are **not** Airflow
providers and are not registered through `provider.yaml`. For DAG parsing, a
subclass must implement two methods:
+A single abstract base class — `BaseCoordinator` — handles both DAG parsing
and task execution. Concrete subclasses ship as part of the Task SDK
(`apache-airflow-task-sdk`) under the shared `airflow.sdk.coordinators`
namespace package (see [ADR-0005](0005-coordinator-packaging.md)); they are
**not** Airflow providers and are not registered through `provider.yaml`. For
DAG parsing, a subclass must implement two methods:
| Method | Signature | Responsibility |
|---|---|---|
@@ -279,10 +279,10 @@ For DAG parsing, a new language provider needs:
**JavaCoordinator:**
-The Java SDK implements all DAG-parsing contracts in a single
`BaseCoordinator` subclass shipped as `apache-airflow-coordinators-java`:
+The Java SDK implements all DAG-parsing contracts in a single
`BaseCoordinator` subclass shipped in the Task SDK (`apache-airflow-task-sdk`):
```python
-# Distribution: apache-airflow-coordinators-java
+# Distribution: apache-airflow-task-sdk
# Module: airflow.sdk.coordinators.java.coordinator
class JavaCoordinator(BaseCoordinator):
def __init__(self, *, name, java_executable="java", jvm_args=None,
jdk_home=None):
@@ -408,7 +408,7 @@ Both share test cases defined in `test_dags.yaml`, ensuring
the Java SDK produce
## Consequences
-- The DAG file processor can be extended to any language without modifying
Airflow Core — only a `BaseCoordinator` subclass distributed as
`apache-airflow-coordinators-<lang>` plus an entry in `[sdk] coordinators` is
needed.
+- The DAG file processor can be extended to any language without modifying
Airflow Core — only a `BaseCoordinator` subclass (packaged per
[ADR-0005](0005-coordinator-packaging.md)) plus an entry in `[sdk]
coordinators` is needed.
- The language runtime must produce exact DagSerialization v3 JSON, requiring
cross-language validation infrastructure (e.g., `test_dags.yaml` +
`compare.py`).
- The base class absorbs all TCP/process plumbing, so language providers only
implement two methods for DAG parsing.
- The subprocess bridge adds latency and a process boundary; DAG parsing for
non-Python files is inherently slower than in-process Python parsing.
diff --git a/airflow-core/adr/lang-sdk/0005-coordinator-packaging.md
b/airflow-core/adr/lang-sdk/0005-coordinator-packaging.md
index 263b57a4fde..80a3e40fdba 100644
--- a/airflow-core/adr/lang-sdk/0005-coordinator-packaging.md
+++ b/airflow-core/adr/lang-sdk/0005-coordinator-packaging.md
@@ -21,13 +21,13 @@
## Status
-Proposed
+Accepted
-> **Note:** This ADR describes coordinator packaging as a standalone
distribution separate
-> from the Task SDK. The current plan is to ship coordinators as part of the
Task SDK
-> (`apache-airflow-task-sdk`); a separate distribution may be introduced later
once the
-> coordinator interface exits experimental status, but is not committed. This
document is
-> retained for reference if that split is revisited. Tracked operationally in
+> **Note:** An earlier revision of this ADR proposed coordinator packaging as
a standalone
+> distribution separate from the Task SDK. The accepted decision ships
coordinators as part
+> of the Task SDK (`apache-airflow-task-sdk`); a separate distribution may be
introduced
+> later once the coordinator interface exits experimental status, but is not
committed.
+> Tracked operationally in
> [apache/airflow#66451](https://github.com/apache/airflow/issues/66451).
## Context
diff --git a/airflow-core/adr/lang-sdk/0006-no-lang-sdk-source-display.md
b/airflow-core/adr/lang-sdk/0006-no-lang-sdk-source-display.md
index 1fe46c20db1..a3096c786ec 100644
--- a/airflow-core/adr/lang-sdk/0006-no-lang-sdk-source-display.md
+++ b/airflow-core/adr/lang-sdk/0006-no-lang-sdk-source-display.md
@@ -21,7 +21,7 @@
## Status
-Proposed
+Accepted
> **Note:** This ADR records a *negative* decision. It exists so that future
> feature requests
> or PRs proposing multi-file / multi-language source display for stub-backed
> Dags can be