jason810496 opened a new pull request, #71151: URL: https://github.com/apache/airflow/pull/71151
## Why The [Language SDK conformance spec](https://github.com/apache/airflow/blob/main/contributing-docs/30_new_language_sdk.rst) (#70717) defines which TaskInstance states and capabilities a Language SDK may declare, but nothing lets an SDK say what it actually supports. This PR makes that support machine-readable and generates the docs from it. ## How ``` conformance.Capabilities <- the only file you edit (java-sdk/.../conformance/Capabilities.kt) | | generate: ./gradlew :sdk:dumpCapabilities | hook: check-java-sdk-capabilities-in-sync v java-sdk/generated/lang-sdk/capabilities.json | | render: scripts/ci/prek/lang_sdk_compat_matrix.py | hook: update-java-sdk-readme-matrix | +--> java-sdk/README.md (contributor-facing) | +--> java-sdk/sdk/module.md (Dokka module doc -> the published API reference) | +--> airflow-core/docs/authoring-and-scheduling/language-sdks/index.rst (consolidated cross-SDK matrix — TODO, not generated yet) ``` Both hooks *regenerate* their target and exit non-zero when it was stale, so a drifted table fails the build and the fix is to re-stage the regenerated file. A capability landing in the runtime becomes a one-line edit to the Kotlin constant instead of three tables to update by hand. ## Verification <img width="1512" height="830" alt="Screenshot 2026-08-05 at 1 24 37 PM" src="https://github.com/user-attachments/assets/1291386f-dc5f-4412-ac1e-707942a09a60" /> --- ##### Was generative AI tooling used to co-author this PR? - [X] Yes — Claude Code (Opus 4.8) Generated-by: Claude Code (Opus 4.8) following [the guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
