Skip to content

Docs: add Apache Airflow® trademark on first prominent mention#2624

Merged
pankajkoti merged 4 commits into
mainfrom
style-guide-airflow-trademark
May 4, 2026
Merged

Docs: add Apache Airflow® trademark on first prominent mention#2624
pankajkoti merged 4 commits into
mainfrom
style-guide-airflow-trademark

Conversation

@pankajkoti
Copy link
Copy Markdown
Contributor

Description

Apply the ASF trademark guide to the docs:

"The first and most prominent mentions must use the full form: 'Apache Hadoop®'.
Later in each specific document you may use the bare form of the name… as best
suits your writing style."
https://www.apache.org/foundation/marks/guide

Per the lightweight style guide proposed in #2460:

  • Upgrade the first prose mention of Airflow per page to
    `Apache Airflow® <https://airflow.apache.org/>`_.
  • Rewrite section headings containing Airflow to Apache Airflow®. RST
    underline lengths are recomputed to match the new heading text; underline
    characters are left unchanged (header-character normalization is a separate
    PR).
  • Subsequent in-prose mentions stay as plain Airflow.
  • Code identifiers, env vars, package names like apache-airflow, and URLs are
    not touched.

This is a tighter scope than the trademark slice of #2462 — only the
ASF-policy-required mentions are upgraded, rather than every Airflow reference
in body prose.

Related Issue(s)

Refs #2460

Breaking Change?

No. Documentation only.

Checklist

  • I have made corresponding changes to the documentation (if required)
  • I have added tests that prove my fix is effective or that my feature works

Copilot AI review requested due to automatic review settings April 30, 2026 11:28
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Aligns the documentation set with ASF trademark guidance by ensuring the first prominent mention of Airflow in each page uses the trademarked “Apache Airflow®” form (and, for prose, links to the official project site).

Changes:

  • Updates first in-prose mentions of Airflow to Apache Airflow® <https://airflow.apache.org/>_ across docs pages.
  • Renames section headings containing “Airflow” to “Apache Airflow®” and recalculates RST underline lengths.
  • Keeps later mentions as “Airflow” and avoids touching code identifiers/package names/URLs.

Reviewed changes

Copilot reviewed 56 out of 56 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
docs/reference/templates/profile_mapping.rst.jinja2 Update first Airflow mention in template
docs/reference/index.rst Update Airflow mention in configs list
docs/reference/configs/profile-config.rst Update first prose Airflow mention
docs/reference/configs/execution-config.rst Update first prose Airflow mention
docs/reference/configs/cosmos-conf.rst Update first prose Airflow mention
docs/policy/contributing.rst Update first prose Airflow mention
docs/policy/airflow3-compatibility.rst Update headings to Apache Airflow®
docs/optimize_performance/troubleshooting.rst Update first prose mention + heading
docs/optimize_performance/optimize_rendering.rst Update first prose Airflow mention
docs/optimize_performance/optimize_execution.rst Update first prose Airflow mention
docs/optimize_performance/memory_optimization.rst Update first prose Airflow mention
docs/optimize_performance/index.rst Update first prose Airflow mention
docs/guides/translate_dbt_to_airflow/testing-behavior.rst Update first prose Airflow mention
docs/guides/translate_dbt_to_airflow/selecting-excluding.rst Update first prose Airflow mention
docs/guides/translate_dbt_to_airflow/render-config.rst Update first prose Airflow mention
docs/guides/translate_dbt_to_airflow/managing-sources.rst Update first prose Airflow mention
docs/guides/translate_dbt_to_airflow/dag-customization.rst Update first prose mention + heading
docs/guides/run_dbt/operators/operator-args.rst Update prose mention + subsection heading
docs/guides/run_dbt/index.rst Update first prose Airflow mention
docs/guides/run_dbt/execution-modes.rst Update first prominent Airflow mention
docs/guides/run_dbt/customization/scheduling.rst Update first prose Airflow mention
docs/guides/run_dbt/customization/partial-parsing.rst Update first prose Airflow mention
docs/guides/run_dbt/customization/custom-airflow-properties.rst Update page heading to Apache Airflow®
docs/guides/run_dbt/container/watcher-kubernetes-execution-mode.rst Update first prose Airflow mention
docs/guides/run_dbt/container/kubernetes.rst Update first prose Airflow mention
docs/guides/run_dbt/container/gcp-cloud-run-job.rst Update prerequisite Airflow mention
docs/guides/run_dbt/container/docker.rst Update headings mentioning Airflow
docs/guides/run_dbt/container/azure-container-instance.rst Update prerequisite Airflow mention
docs/guides/run_dbt/container/aws-container-run-job.rst Update prominent Airflow mention
docs/guides/run_dbt/callbacks/callbacks.rst Update first prose Airflow mention
docs/guides/run_dbt/airflow-worker/watcher-execution-mode.rst Update prose mentions + headings
docs/guides/run_dbt/airflow-worker/local-execution-mode.rst Update first prose Airflow mention
docs/guides/run_dbt/airflow-worker/index.rst Update page heading + toctree caption
docs/guides/run_dbt/airflow-worker/cosmos-managed-venv.rst Update first prose Airflow mention
docs/guides/run_dbt/airflow-worker/async-execution-mode.rst Update first prominent/prose Airflow mention
docs/guides/multi_project/multi-project.rst Update prominent Airflow mention in list
docs/guides/index.rst Update first prose Airflow mention
docs/guides/dbt_setup/execution-modes-local-conflicts.rst Update heading to Apache Airflow®
docs/guides/dbt_setup/dbt-fusion.rst Update prose mention to Apache Airflow®
docs/guides/dbt_docs/hosting-docs.rst Update Airflow version headings
docs/guides/dbt_docs/generating-docs.rst Update first prose Airflow mention
docs/guides/cosmos_devex/task-display-name.rst Update first prose Airflow mention
docs/guides/cosmos_devex/lineage.rst Update first prominent Airflow mention
docs/guides/cosmos_devex/compiled-sql.rst Update first prose Airflow mention
docs/guides/connect_database/use-your-profiles-yml.rst Update first prose Airflow mention
docs/guides/connect_database/use-profile-mapping.rst Update first prose Airflow mention
docs/guides/connect_database/index.rst Update first prose Airflow mention
docs/getting_started/oss-quickstart.rst Update heading + first prose mention
docs/getting_started/open-source.rst Update heading + first prose mention
docs/getting_started/index.rst Update toctree entry titles mentioning Airflow
docs/getting_started/gcc.rst Update first prose Airflow mention
docs/getting_started/dbt-airflow-concepts.rst Update heading + first prose mention
docs/getting_started/core-concepts.rst Update heading mentioning Airflow
docs/getting_started/bring-your-own.rst Update first prose Airflow mention
docs/getting_started/astro.rst Update first prose Airflow mention
docs/getting_started/astro-cli-quickstart.rst Update prose mention + section heading

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/guides/cosmos_devex/task-display-name.rst Outdated
Comment thread docs/reference/configs/cosmos-conf.rst Outdated
Comment thread docs/guides/cosmos_devex/lineage.rst Outdated
Comment thread docs/guides/run_dbt/operators/operator-args.rst Outdated
Comment thread docs/guides/run_dbt/airflow-worker/async-execution-mode.rst Outdated
Comment thread docs/reference/configs/cosmos-conf.rst Outdated
Copilot AI review requested due to automatic review settings April 30, 2026 12:01
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Applies ASF trademark guidance across the documentation by updating the first prominent/prose mention of Airflow per page and adjusting headings to use the full trademarked name.

Changes:

  • Upgrades first in-prose mentions of Airflow to the linked trademark form Apache Airflow® <https://airflow.apache.org/>_ (per-page basis).
  • Rewrites section headings containing “Airflow” to “Apache Airflow®” and recomputes RST underline lengths.
  • Leaves subsequent mentions and code identifiers (package names, env vars, URLs, etc.) unchanged.

Reviewed changes

Copilot reviewed 56 out of 56 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
docs/reference/templates/profile_mapping.rst.jinja2 Uses linked trademark form for first Airflow prose mention in generated mapping docs.
docs/reference/index.rst Updates first prominent Airflow prose mention in the reference index.
docs/reference/configs/profile-config.rst Updates first prominent Airflow prose mention to linked trademark form.
docs/reference/configs/execution-config.rst Updates first prominent Airflow prose mention to linked trademark form.
docs/reference/configs/cosmos-conf.rst Updates first prominent Airflow prose mention to linked trademark form.
docs/policy/contributing.rst Updates first prominent Airflow prose mention to linked trademark form.
docs/policy/airflow3-compatibility.rst Updates headings to “Apache Airflow®” and adjusts underline lengths.
docs/optimize_performance/troubleshooting.rst Updates first prominent Airflow prose mention; updates Airflow headings.
docs/optimize_performance/optimize_rendering.rst Updates first prominent Airflow prose mention to linked trademark form.
docs/optimize_performance/optimize_execution.rst Updates Airflow prose mention to linked trademark form.
docs/optimize_performance/memory_optimization.rst Updates Airflow prose mention to linked trademark form.
docs/optimize_performance/index.rst Updates Airflow prose mention to linked trademark form.
docs/guides/translate_dbt_to_airflow/testing-behavior.rst Updates Airflow prose mention to linked trademark form.
docs/guides/translate_dbt_to_airflow/selecting-excluding.rst Updates Airflow prose mention to linked trademark form.
docs/guides/translate_dbt_to_airflow/render-config.rst Updates Airflow prose mention to linked trademark form.
docs/guides/translate_dbt_to_airflow/managing-sources.rst Updates Airflow prose mention to linked trademark form.
docs/guides/translate_dbt_to_airflow/dag-customization.rst Updates Airflow prose mention and Airflow-related heading.
docs/guides/run_dbt/operators/operator-args.rst Updates Airflow prose mention and “Airflow-related” heading text.
docs/guides/run_dbt/index.rst Updates Airflow prose mention to linked trademark form.
docs/guides/run_dbt/execution-modes.rst Updates Airflow prose mention to trademarked name (needs linked-first-mention consistency).
docs/guides/run_dbt/customization/scheduling.rst Updates first prominent Airflow prose mention to linked trademark form.
docs/guides/run_dbt/customization/partial-parsing.rst Updates Airflow prose mention to linked trademark form.
docs/guides/run_dbt/customization/custom-airflow-properties.rst Updates heading to “Apache Airflow® …” and adjusts underline.
docs/guides/run_dbt/container/watcher-kubernetes-execution-mode.rst Updates Airflow prose mention to linked trademark form.
docs/guides/run_dbt/container/kubernetes.rst Updates Airflow prose mention to linked trademark form.
docs/guides/run_dbt/container/gcp-cloud-run-job.rst Updates prerequisite “Airflow” item to linked trademark form.
docs/guides/run_dbt/container/docker.rst Updates Airflow prose mentions and procedure headings.
docs/guides/run_dbt/container/azure-container-instance.rst Updates prerequisite “Airflow” item to linked trademark form.
docs/guides/run_dbt/container/aws-container-run-job.rst Updates “Install Airflow …” step heading (needs linked-first-mention consistency).
docs/guides/run_dbt/callbacks/callbacks.rst Updates Airflow prose mention to linked trademark form.
docs/guides/run_dbt/airflow-worker/watcher-execution-mode.rst Updates Airflow prose mention and section headings.
docs/guides/run_dbt/airflow-worker/local-execution-mode.rst Updates Airflow prose mention to linked trademark form.
docs/guides/run_dbt/airflow-worker/index.rst Updates page heading/caption to “Apache Airflow®”.
docs/guides/run_dbt/airflow-worker/cosmos-managed-venv.rst Updates Airflow prose mention to linked trademark form.
docs/guides/run_dbt/airflow-worker/async-execution-mode.rst Updates heading and first prominent Airflow prose mention to linked trademark form.
docs/guides/multi_project/multi-project.rst Updates Airflow prose mention to trademarked name (needs linked-first-mention consistency).
docs/guides/index.rst Updates Airflow prose mention to linked trademark form.
docs/guides/dbt_setup/execution-modes-local-conflicts.rst Updates heading to “Apache Airflow® …” and adjusts underline.
docs/guides/dbt_setup/dbt-fusion.rst Updates Airflow prose mention to linked trademark form.
docs/guides/dbt_docs/hosting-docs.rst Updates headings referencing Airflow versions to “Apache Airflow® …”.
docs/guides/dbt_docs/generating-docs.rst Updates Airflow prose mention to linked trademark form.
docs/guides/cosmos_devex/task-display-name.rst Updates Airflow prose mention to linked trademark form.
docs/guides/cosmos_devex/lineage.rst Updates Airflow prose mention to linked trademark form.
docs/guides/cosmos_devex/compiled-sql.rst Updates Airflow UI mention to trademarked/link form.
docs/guides/connect_database/use-your-profiles-yml.rst Updates Airflow prose mention to linked trademark form.
docs/guides/connect_database/use-profile-mapping.rst Updates Airflow prose mention to linked trademark form.
docs/guides/connect_database/index.rst Updates Airflow prose mention to linked trademark form.
docs/getting_started/oss-quickstart.rst Updates heading and first prominent Airflow prose mention to linked trademark form.
docs/getting_started/open-source.rst Updates heading and first prominent Airflow prose mention to linked trademark form.
docs/getting_started/index.rst Updates toctree entry titles to “Apache Airflow® …”.
docs/getting_started/gcc.rst Updates Airflow prose mention to linked trademark form.
docs/getting_started/dbt-airflow-concepts.rst Updates heading and first prominent Airflow prose mention to linked trademark form.
docs/getting_started/core-concepts.rst Updates internal section heading to “Apache Airflow® …”.
docs/getting_started/bring-your-own.rst Updates Airflow prose mention to linked trademark form.
docs/getting_started/astro.rst Updates Airflow prose mention to linked trademark form.
docs/getting_started/astro-cli-quickstart.rst Updates Airflow prose mention and a heading to “Apache Airflow® …”.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/guides/run_dbt/container/aws-container-run-job.rst Outdated
Comment thread docs/guides/run_dbt/execution-modes.rst Outdated
Comment thread docs/guides/multi_project/multi-project.rst Outdated
Copy link
Copy Markdown
Collaborator

@tatiana tatiana left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for making our docs consistent with Apache AIrflow's requirements, @pankajkoti ! If you could address Copilot's feedback before merging, it would be great!

pankajkoti added 4 commits May 4, 2026 15:22
Per the ASF trademark guide, the first or most prominent mention of
the project must use the full form "Apache Airflow®". Subsequent
in-prose mentions may stay as the bare form "Airflow".

Apply that policy across docs by upgrading the first prose mention
per page (with a hyperlink to airflow.apache.org) and rewriting any
section heading that contains "Airflow" to "Apache Airflow®". RST
underline lengths are recomputed to match the new heading text;
underline characters are left unchanged.

Code identifiers, env vars, package names like apache-airflow, and
URLs are not touched.
- Pad RST underlines for Apache Airflow® headings to match the
  title's UTF-8 byte length, so renderers that count by bytes rather
  than characters do not warn about a too-short underline.
- Fix lineage.rst: link the first prominent Apache Airflow® mention
  by promoting the trademark itself into a hyperlink alongside the
  existing OpenLineage provider link.
- Fix task-display-name.rst: drop the stray space between the closing
  underscore of the trademark hyperlink and the following comma.
- Fix async-execution-mode.rst: rewrite the title and link the first
  prose mention of Apache Airflow® per the trademark policy.
Per the trademark policy, the first prose mention per page must be
linked. In three files, the first mention sits inside a bold span,
so split the bold to wrap the linked trademark and accept the slight
visual seam in exchange for policy-correct first mention.
Copilot AI review requested due to automatic review settings May 4, 2026 09:52
@pankajkoti pankajkoti force-pushed the style-guide-airflow-trademark branch from 435bab3 to 6cbed07 Compare May 4, 2026 09:52
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 56 out of 56 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@pankajkoti pankajkoti merged commit e3aa211 into main May 4, 2026
24 checks passed
@pankajkoti pankajkoti deleted the style-guide-airflow-trademark branch May 4, 2026 10:02
@pankajkoti pankajkoti self-assigned this May 5, 2026
@pankajkoti pankajkoti mentioned this pull request May 13, 2026
2 tasks
@tatiana tatiana added this to the Cosmos 1.14.2 milestone May 19, 2026
@tatiana tatiana mentioned this pull request May 20, 2026
22 tasks
tatiana added a commit that referenced this pull request May 21, 2026
## CHANGELOG entry

1.14.2 (2026-05-21)
-------------------

Behaviour Changes

These changes adjust observable behaviour of the
``ExecutionMode.WATCHER`` execution mode.
None of them breaks the public Cosmos API, but users relying on
undocumented internals
(graph wiring assertions, XCom backup Variable names, retry-on-recovery
semantics, or
retry log format) should review before upgrading.

* ``ExecutionMode.WATCHER`` + ``depends_on_past=True``: when the
producer task has
``depends_on_past=True`` (typically set via ``default_args``), the
producer-done gateway
task inside ``DbtTaskGroup`` is now wired downstream of every consumer
task, in addition
to the producer. This is required so that ``wait_for_downstream`` gating
behaves
correctly across DAG runs and the task group acts as a single unit that
must fully
succeed before the next run starts. Users with ``depends_on_past=False``
(the default)
  see no topology change. See #2615.
* ``ExecutionMode.WATCHER`` downstream retry on upstream recovery: dbt
models that were
skipped after an upstream-failure event are now retried in the same DAG
run when the
upstream task succeeds on retry. Previously these models remained
skipped for the run.
  See #2684.
* ``ExecutionMode.WATCHER`` consumer-retry log format: the consumer's
fallback ``dbt``
invocation no longer inherits the producer's internal ``--log-format
json`` flag, so
retry task logs now default to dbt's normal text format. Users who
relied on JSON output
in retry logs can opt in via ``operator_args={"dbt_cmd_flags":
["--log-format", "json"]}``.
  See #2713.
* ``ExecutionMode.WATCHER`` XCom-backup Variable key scheme: the
per-model XCom backup
Variable key now includes the full task-group path and sanitises
disallowed characters
(``+`` / ``:``) from ``run_id``. External monitoring or cleanup scripts
that match the
  old key pattern will need updating. See #2629 and #2683.

Bug Fixes

* Sanitize disallowed characters from XCom backup variable key by
@MichaelRBlack in #2629
* Prevent watcher producers from colliding on one XCom-backup key by
@tatiana in #2683
* Retry watcher downstream models on upstream-failure recovery by
@tatiana in #2684
* Fix ``ExecutionMode.WATCHER`` interaction with ``depends_on_past`` by
@johnhoran in #2615
* Strip ``--log-format`` from producer flags on watcher consumer retry
by @tatiana in #2713
* Fix duplicate ``deferrable`` kwarg in
``DbtRunAirflowAsyncBigqueryOperator`` by @pankajastro in #2616
* Fix dbt docs iframe ``src`` missing deployment path prefix by
@pankajastro in #2640
* Defer ``TaskInstance`` import in cluster policy to fix Sentry init
crash by @pankajastro in #2662
* Restore type hints broken by lazy imports in ``cosmos/__init__.py`` by
@pankajastro in #2647
* Fix ``ExecutionMode.WATCHER`` non-dbt stdout being suppressed from
logs by @pankajastro in #2654
* Fix test sensor retry behaviour in ``ExecutionMode.WATCHER`` by
@pankajkoti in #2658
* Fix watcher fallback selector for versioned dbt models by @pankajkoti
in #2659
* Break out of iframe from Airflow 2 dbt Docs 404 link by @pankajastro
in #2685

Docs

* Document source freshness aware execution for
``ExecutionMode.WATCHER`` by @pankajastro in #2617
* Add reference docs for ``DbtRunLocalOperator``,
``DbtTestLocalOperator``, ``DbtSnapshotLocalOperator`` and
``DbtBuildLocalOperator`` by @pankajastro in #2643
* Add watcher retry behaviour history documentation by @tatiana in #2600
* Add Apache Airflow® trademark on first prominent mention by
@pankajkoti in #2624
* Sentence-case section headings by @pankajkoti in #2630
* Use ``-`` for bullet points by @pankajkoti in #2631
* Drop decorative separator lines by @pankajkoti in #2632
* Normalize heading underlines in ``docs/guides/`` and
``docs/index.rst`` by @pankajkoti in #2664
* Fix broken cross-directory doc links by @pankajastro in #2694
* Fix broken external links in hand-written docs by @pankajastro in
#2696
* Document support for Airflow 3.2 in the compatibility policy by
@pankajastro in #2652
* Refresh the dbt/Airflow conflicts table to match the compatibility
policy by @pankajastro in #2653
* Document incremental model limitation for
``ExecutionMode.AIRFLOW_ASYNC`` by @pankajastro in #2642

Others

* Import ``ParamValidationError`` from ``airflow.sdk`` to silence
deprecation warning by @pankajastro in #2645
* Import ``DAG`` from ``airflow.sdk`` to silence deprecation warning by
@pankajastro in #2644
* Enforce docs style guide via pre-commit hook by @pankajkoti and
@tatiana in #2633
* Add Airflow 3.2 to the test matrix in ``CLAUDE.md`` by @pankajastro in
#2646
* Document the lazy-logging standard in ``CLAUDE.md`` by @pankajastro in
#2679
* Extract watcher XCom-key helpers and inline single-use bindings by
@pankajastro in #2673
* Remove leftover ``scripts/airflow3`` directory by @pankajastro in
#2661
* Fix ``altered_jaffle_shop`` seed-dep CTE references by @pankajastro in
#2690
* Skip Airflow 3.0 integration test stuck on
``example_watcher_with_freshness`` by @pankajastro in #2692
* Fix typo "constrantis" → "constraints" in tests env comment by
@pankajastro in #2669

## Summary

Drafts the **Cosmos 1.14.2** release. Latest alpha cut is **1.14.2a4** —
refreshed from `1.14.2a3` after maintainers (@pankajastro, @pankajkoti)
added 11 more PRs to the milestone:

- @pankajastro: #2646, #2652, #2653, #2661, #2669, #2673, #2679, #2690,
#2692
- @pankajkoti:  #2658, #2659

All 11 picks applied cleanly on top of the existing branch — no
additional manual conflict resolution needed.

**Excluded:** #2618 ("Improve glossary") — modifies
`docs/reference/glossary.rst`, which doesn't exist on `release-1.14`
(added on main by #2461, never backported). Deferred to 1.15.0.

33 PRs cherry-picked total (22 in the initial a3 cut + 11 in this a4
refresh); two PRs (#2575, #2618) deliberately held back as 1.15.0
content.

## Milestone

[Cosmos
1.14.2](https://github.com/astronomer/astronomer-cosmos/milestone/48) —
33 merged PRs across Bug Fixes, Docs, and Others.

## Inclusion provenance

| Path | PRs | Notes |
|---|---|---|
| **Originally in milestone — a3 cut (12)** | #2629, #2616, #2640,
#2662, #2654, #2683, #2684, #2615, #2694, #2696, #2645, #2644 | Assigned
by maintainers before the initial release-draft run |
| **Pulled in via closed-issue link — a3 cut (1)** | #2647 | Closes
milestone issue #2634 ("Typehinting broken with lazy imports") but the
PR itself was never assigned to the milestone — included via
`closedByPullRequestsReferences` |
| **Added during cherry-pick conflict resolution — a3 cut (9)** | #2631,
#2624, #2630, #2632, #2664, #2633, #2617, #2600, #2643 | Docs PRs whose
absence caused `release-1.14` ↔ `main` textual drift. #2631 caused
#2696's conflict; the rest were transitive dependencies (especially
#2664, on top of the bullet/heading/trademark sweeps). #2643 was added
to unblock #2664's operator-docs conflict |
| **Added to milestone after a3 — included in a4 (11)** | #2646, #2652,
#2653, #2658, #2659, #2661, #2669, #2673, #2679, #2690, #2692 | Added by
@pankajastro and @pankajkoti after the initial draft. All applied
cleanly on top of the a3 cherry-picks |
| **Deliberately excluded (2)** | #2575, #2618 | #2575: documents
`DbtDocsS3KubernetesOperator` with `.. versionadded:: 1.15.0` (already
in the `Cosmos 1.15.0` milestone). #2618: improves a glossary file that
doesn't exist on `release-1.14` (the stub was added by #2461, not
backported) |

### Manual conflict resolution

Cherry-picks that needed manual fix-up. Reviewers should double-check
the files listed below:

| PR | File(s) | Resolution |
|---|---|---|
| **#2664** | `docs/guides/dbt_docs/generating-docs.rst` | **Substantive
exclusion** — manually removed the entire `Upload to S3 from Kubernetes`
section (lines ~46–77 of the incoming diff) that documents
`DbtDocsS3KubernetesOperator` (1.15.0 feature, PR #2575). Kept HEAD (no
S3-from-Kubernetes section). |
| **#2664** |
`docs/guides/run_dbt/airflow-worker/watcher-execution-mode.rst` | Took
incoming side for "Example 1" / "Example 2" heading underlines (`++++`
style — matches #2664's normalization across the rest of the file). Also
took incoming for em-dash → colon ("Example 1 —" → "Example 1:"). |
| **#2664** | `docs/guides/run_dbt/operators/operators.rst` |
Auto-resolved once #2643 was cherry-picked first (added missing
Run/Test/Snapshot/Build operator reference docs that #2664 expected to
be present). |
| **#2633** |
`docs/guides/run_dbt/airflow-worker/watcher-execution-mode.rst` |
Initially took `'''` (Example 1/2 underlines) per #2633's incoming side
— this broke the file's heading hierarchy and prevented sphinx from
registering the `_watcher-source-freshness:` label, causing the docs
build to fail. **Fixed in a follow-up commit** by reverting to `+++` to
match main and the rest of the file's level-3 sections. |
| **#2617** |
`docs/guides/run_dbt/airflow-worker/watcher-execution-mode.rst` |
**Substantive trim** — #2617 documented both the 1.14.0 source-freshness
execution path AND the 1.15.0 `freshness_callback` override (which ships
with #2586, not in this release line). Removed the `literalinclude` of
`dev/dags/watcher_with_freshness_check.py` (1.15.0 example DAG, missing
on release-1.14) and the surrounding override section so the 1.14.2 docs
cover only what the 1.14.x line supports. Surfaced as a `-W`
(warnings-as-errors) docs build failure on the first CI run. |
| **#2684** | `cosmos/operators/_watcher/state.py` | Took incoming side
— added two new frozensets (`DBT_UPSTREAM_FAILURE_SKIP_EVENT_NAMES`,
`DBT_SOURCE_FRESHNESS_STALE_STATUSES`) at lines 28–37. HEAD had nothing;
incoming had the additions. |
| **#2615** | `tests/airflow/test_graph.py` | Took incoming side — added
two new tests at the end of the file:
`test_add_watcher_producer_task_passes_freshness_callback_via_setup_operator_args`
and `test_watcher_dependency_wiring`. HEAD had nothing; incoming had the
additions. |

All a4 cherry-picks (11) applied without manual intervention.

## Test plan

> Long-term goal: automate. For now, please pick the slice relevant to
your environment and report deviations as a comment on this PR.

### Watcher mode (Postgres)

- [x] @pankajkoti `example_watcher` (`dev/dags/example_watcher.py`) —
default watcher run; exercises **#2629** (XCom backup key sanitization
triggers on the `+` in any default Airflow run_id)
- [x] (@tatiana) **[NEW]** `example_watcher_xcom_collision`
(`dev/failed_dags/example_watcher_xcom_collision.py`) — validates
**#2683**
- [x] @tatiana **[NEW]** `example_watcher_recovers_skipped_downstream`
(`dev/failed_dags/example_watcher_recovers_skipped_downstream.py`) —
validates **#2684**
- [x] @tatiana `example_watcher` with `default_args={"depends_on_past":
True}` and ≥2 consecutive runs — validates **#2615** (manual edit; no
dedicated example DAG)
- [x] @pankajkoti watcher DAG with at least one model that has tests +
Airflow retries enabled on the test sensor — validates **#2658** (test
sensor retry path)
- [x] @pankajkoti watcher DAG referencing a versioned dbt model (e.g.
`models/foo_v2.sql`) and triggering the fallback selector path —
validates **#2659**

### BigQuery (async)

- [x] @tatiana `simple_dag_async` (`dev/dags/simple_dag_async.py`) —
validates **#2616** (duplicate `deferrable` kwarg fix)

### dbt docs plugin

- [x] (@pankajkoti) `docs_dag` (`dev/dags/dbt_docs.py`) + open the
Cosmos dbt docs URL in the Airflow UI under a non-root deployment path —
validates **#2640** (iframe `src` deployment prefix)

### Cross-cutting scenarios (no dedicated DAG)

- [x] @pankajastro **#2662** — boot Airflow with Cosmos cluster policy +
Sentry init; verify no `TaskInstance`-import crash on startup
- [x] @pankajastro **#2654** — run a watcher DAG that prints non-dbt
stdout (e.g., Snowflake `externalbrowser` auth URL); confirm output
reaches task logs
- [x] (@pankajkoti) **#2647** — `mypy` / IDE inspection of `from cosmos
import DbtDag, ProjectConfig, ProfileConfig, RenderConfig,
ExecutionConfig` resolves attributes
- [x] @pankajastro **#2645, #2644** — boot Airflow 3 with `airflow.sdk`
available; no `ParamValidationError` / `DAG` deprecation warnings from
Cosmos imports
- [x] @pankajastro **#2673** — verify watcher XCom-key extraction left
no behavioural drift (run the existing watcher integration suite
end-to-end on Postgres + Airflow 2.10)

### Docs build (covers all docs PRs)

- [x] (@pankajkoti) `sphinx-build -W -b html docs docs/_build` succeeds
with no warnings (#2617, #2624, #2630, #2631, #2632, #2643, #2600,
#2664, #2694, #2696, #2652, #2653)

### Tooling

- [x] (@pankajkoti) `pre-commit run check-docs-style --all-files` passes
(#2633)

## Reviewer checklist

- [x] CHANGELOG section assignments reviewed
- [x] Entry wording reviewed
- [x] `cosmos/__init__.py` bumped to `1.14.2a4`
- [x] Cosmetic docs PRs (#2624, #2630, #2631, #2632, #2633, #2664)
confirmed acceptable in patch line
- [x] **Manual conflict resolutions** (table above) reviewed
file-by-file
- [x] Test plan executed on at least Postgres + one warehouse
- [x] Ready to mark non-draft

---------

Co-authored-by: Michael Black <4128408+MichaelRBlack@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Pankaj Singh <98807258+pankajastro@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Pankaj Koti <pankajkoti699@gmail.com>
Co-authored-by: John Horan <jhoran@zendesk.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
@tatiana
Copy link
Copy Markdown
Collaborator

tatiana commented May 21, 2026

🚀 Released in Cosmos 1.14.2 (PyPI).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants