Skip to content

Warn instead of failing on missing 3rd-party doc inventories#63630

Merged
potiuk merged 3 commits into
apache:mainfrom
potiuk:resilient-doc-inventory-handling
Mar 15, 2026
Merged

Warn instead of failing on missing 3rd-party doc inventories#63630
potiuk merged 3 commits into
apache:mainfrom
potiuk:resilient-doc-inventory-handling

Conversation

@potiuk

@potiuk potiuk commented Mar 15, 2026

Copy link
Copy Markdown
Member

Third-party Sphinx intersphinx inventories (e.g., Pandas) are sometimes
temporarily unavailable. Previously, any download failure terminated the
entire doc build with SystemExit(1). This is too aggressive — these
inventories are for cross-references to external docs and their temporary
unavailability should not block the build.

Changes:

  • Missing 3rd-party inventories now produce warnings instead of failing
  • If a cached version exists, it is used with a warning
  • A .missing_third_party_inventories marker file is written for CI detection
  • Canary builds send Slack warnings to internal-airflow-ci-cd when inventories are missing
  • Publishing workflow fails by default on missing inventories but has an opt-out flag

New flags:

  • --fail-on-missing-third-party-inventories — opt-in to fail on missing 3rd-party inventories
  • --clean-inventory-cache — separate flag to clean inventory cache (--clean-build no longer deletes it)
  • --ignore-missing-inventories — workflow dispatch input for publish-docs

Files changed:

  • fetch_inventories.py — warn-and-continue logic, marker file
  • build_docs.py — new CLI flags
  • doc_build_params.py — new fields and arg passing
  • developer_commands.py — new CLI flags, updated clean-build behavior
  • workflow_commands.py--ignore-missing-inventories option
  • ci-image-checks.yml — fixed stash key/condition, Slack notification
  • ci-amd-arm.yml — pass SLACK_BOT_TOKEN secret
  • publish-docs-to-s3.yml — inventory cache stash, fail flag, workflow input

Was generative AI tooling used to co-author this PR?
  • Yes — Claude Code (Claude Opus 4.6)

Generated-by: Claude Code (Claude Opus 4.6) following the guidelines

Comment thread contributing-docs/11_documentation_building.rst

@bugraoz93 bugraoz93 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Awesome! This was making CI flaky for two days adn possible more in the future

@potiuk

potiuk commented Mar 15, 2026

Copy link
Copy Markdown
Member Author

Awesome! This was making CI flaky for two days adn possible more in the future

🤞 ... Still some small issues with CI but hopefully the last one will fix it :)

potiuk added 3 commits March 15, 2026 13:53
Third-party Sphinx intersphinx inventories (e.g., Pandas) are sometimes
temporarily unavailable. Previously, any download failure terminated the
entire doc build. Now missing 3rd-party inventories produce warnings and
fall back to cached versions when available. A marker file is written for
CI to detect missing inventories and send Slack notifications on canary
builds. Publishing workflows fail by default but can opt out.

- Add --fail-on-missing-third-party-inventories flag (default: off)
- Add --clean-inventory-cache flag (--clean-build no longer deletes cache)
- Cache inventories via stash action in CI and publish workflows
- Send Slack warning on canary builds when inventories are missing
Document the new --clean-inventory-cache, --fail-on-missing-third-party-inventories,
and --ignore-missing-inventories flags in the contributing docs, Breeze developer
tasks, and release management docs.
When a third-party inventory file doesn't exist in the cache,
skip it from the Sphinx intersphinx_mapping instead of referencing
a non-existent file. This prevents Sphinx build errors when
third-party inventory downloads fail.
@potiuk potiuk force-pushed the resilient-doc-inventory-handling branch from f3d6148 to 169c5fd Compare March 15, 2026 12:53
@potiuk potiuk merged commit afda438 into apache:main Mar 15, 2026
128 checks passed
@potiuk potiuk deleted the resilient-doc-inventory-handling branch March 15, 2026 13:32
@github-actions

Copy link
Copy Markdown
Contributor

Backport failed to create: v3-1-test. View the failure log Run details

Note: As of Merging PRs targeted for Airflow 3.X
the committer who merges the PR is responsible for backporting the PRs that are bug fixes (generally speaking) to the maintenance branches.

In matter of doubt please ask in #release-management Slack channel.

Status Branch Result
v3-1-test Commit Link

You can attempt to backport this manually by running:

cherry_picker afda438 v3-1-test

This should apply the commit to the v3-1-test branch and leave the commit in conflict state marking
the files that need manual conflict resolution.

After you have resolved the conflicts, you can continue the backport process by running:

cherry_picker --continue

If you don't have cherry-picker installed, see the installation guide.

potiuk added a commit that referenced this pull request Mar 15, 2026
…ies (#63630)

* Warn instead of failing on missing 3rd-party doc inventories

Third-party Sphinx intersphinx inventories (e.g., Pandas) are sometimes
temporarily unavailable. Previously, any download failure terminated the
entire doc build. Now missing 3rd-party inventories produce warnings and
fall back to cached versions when available. A marker file is written for
CI to detect missing inventories and send Slack notifications on canary
builds. Publishing workflows fail by default but can opt out.

- Add --fail-on-missing-third-party-inventories flag (default: off)
- Add --clean-inventory-cache flag (--clean-build no longer deletes cache)
- Cache inventories via stash action in CI and publish workflows
- Send Slack warning on canary builds when inventories are missing

* Add documentation for inventory cache handling options

Document the new --clean-inventory-cache, --fail-on-missing-third-party-inventories,
and --ignore-missing-inventories flags in the contributing docs, Breeze developer
tasks, and release management docs.

* Skip missing third-party inventories in intersphinx mapping

When a third-party inventory file doesn't exist in the cache,
skip it from the Sphinx intersphinx_mapping instead of referencing
a non-existent file. This prevents Sphinx build errors when
third-party inventory downloads fail.
(cherry picked from commit afda438)

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
potiuk added a commit that referenced this pull request Mar 15, 2026
…ies (#63630)

* Warn instead of failing on missing 3rd-party doc inventories

Third-party Sphinx intersphinx inventories (e.g., Pandas) are sometimes
temporarily unavailable. Previously, any download failure terminated the
entire doc build. Now missing 3rd-party inventories produce warnings and
fall back to cached versions when available. A marker file is written for
CI to detect missing inventories and send Slack notifications on canary
builds. Publishing workflows fail by default but can opt out.

- Add --fail-on-missing-third-party-inventories flag (default: off)
- Add --clean-inventory-cache flag (--clean-build no longer deletes cache)
- Cache inventories via stash action in CI and publish workflows
- Send Slack warning on canary builds when inventories are missing

* Add documentation for inventory cache handling options

Document the new --clean-inventory-cache, --fail-on-missing-third-party-inventories,
and --ignore-missing-inventories flags in the contributing docs, Breeze developer
tasks, and release management docs.

* Skip missing third-party inventories in intersphinx mapping

When a third-party inventory file doesn't exist in the cache,
skip it from the Sphinx intersphinx_mapping instead of referencing
a non-existent file. This prevents Sphinx build errors when
third-party inventory downloads fail.
(cherry picked from commit afda438)

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
potiuk added a commit that referenced this pull request Mar 15, 2026
…ies (#63630) (#63646)

* Warn instead of failing on missing 3rd-party doc inventories

Third-party Sphinx intersphinx inventories (e.g., Pandas) are sometimes
temporarily unavailable. Previously, any download failure terminated the
entire doc build. Now missing 3rd-party inventories produce warnings and
fall back to cached versions when available. A marker file is written for
CI to detect missing inventories and send Slack notifications on canary
builds. Publishing workflows fail by default but can opt out.

- Add --fail-on-missing-third-party-inventories flag (default: off)
- Add --clean-inventory-cache flag (--clean-build no longer deletes cache)
- Cache inventories via stash action in CI and publish workflows
- Send Slack warning on canary builds when inventories are missing

* Add documentation for inventory cache handling options

Document the new --clean-inventory-cache, --fail-on-missing-third-party-inventories,
and --ignore-missing-inventories flags in the contributing docs, Breeze developer
tasks, and release management docs.

* Skip missing third-party inventories in intersphinx mapping

When a third-party inventory file doesn't exist in the cache,
skip it from the Sphinx intersphinx_mapping instead of referencing
a non-existent file. This prevents Sphinx build errors when
third-party inventory downloads fail.
(cherry picked from commit afda438)
vincbeck pushed a commit that referenced this pull request Mar 16, 2026
* Warn instead of failing on missing 3rd-party doc inventories

Third-party Sphinx intersphinx inventories (e.g., Pandas) are sometimes
temporarily unavailable. Previously, any download failure terminated the
entire doc build. Now missing 3rd-party inventories produce warnings and
fall back to cached versions when available. A marker file is written for
CI to detect missing inventories and send Slack notifications on canary
builds. Publishing workflows fail by default but can opt out.

- Add --fail-on-missing-third-party-inventories flag (default: off)
- Add --clean-inventory-cache flag (--clean-build no longer deletes cache)
- Cache inventories via stash action in CI and publish workflows
- Send Slack warning on canary builds when inventories are missing

* Add documentation for inventory cache handling options

Document the new --clean-inventory-cache, --fail-on-missing-third-party-inventories,
and --ignore-missing-inventories flags in the contributing docs, Breeze developer
tasks, and release management docs.

* Skip missing third-party inventories in intersphinx mapping

When a third-party inventory file doesn't exist in the cache,
skip it from the Sphinx intersphinx_mapping instead of referencing
a non-existent file. This prevents Sphinx build errors when
third-party inventory downloads fail.
fat-catTW pushed a commit to fat-catTW/airflow that referenced this pull request Mar 22, 2026
…63630)

* Warn instead of failing on missing 3rd-party doc inventories

Third-party Sphinx intersphinx inventories (e.g., Pandas) are sometimes
temporarily unavailable. Previously, any download failure terminated the
entire doc build. Now missing 3rd-party inventories produce warnings and
fall back to cached versions when available. A marker file is written for
CI to detect missing inventories and send Slack notifications on canary
builds. Publishing workflows fail by default but can opt out.

- Add --fail-on-missing-third-party-inventories flag (default: off)
- Add --clean-inventory-cache flag (--clean-build no longer deletes cache)
- Cache inventories via stash action in CI and publish workflows
- Send Slack warning on canary builds when inventories are missing

* Add documentation for inventory cache handling options

Document the new --clean-inventory-cache, --fail-on-missing-third-party-inventories,
and --ignore-missing-inventories flags in the contributing docs, Breeze developer
tasks, and release management docs.

* Skip missing third-party inventories in intersphinx mapping

When a third-party inventory file doesn't exist in the cache,
skip it from the Sphinx intersphinx_mapping instead of referencing
a non-existent file. This prevents Sphinx build errors when
third-party inventory downloads fail.
vatsrahul1001 pushed a commit that referenced this pull request Mar 25, 2026
…ies (#63630) (#63646)

* Warn instead of failing on missing 3rd-party doc inventories

Third-party Sphinx intersphinx inventories (e.g., Pandas) are sometimes
temporarily unavailable. Previously, any download failure terminated the
entire doc build. Now missing 3rd-party inventories produce warnings and
fall back to cached versions when available. A marker file is written for
CI to detect missing inventories and send Slack notifications on canary
builds. Publishing workflows fail by default but can opt out.

- Add --fail-on-missing-third-party-inventories flag (default: off)
- Add --clean-inventory-cache flag (--clean-build no longer deletes cache)
- Cache inventories via stash action in CI and publish workflows
- Send Slack warning on canary builds when inventories are missing

* Add documentation for inventory cache handling options

Document the new --clean-inventory-cache, --fail-on-missing-third-party-inventories,
and --ignore-missing-inventories flags in the contributing docs, Breeze developer
tasks, and release management docs.

* Skip missing third-party inventories in intersphinx mapping

When a third-party inventory file doesn't exist in the cache,
skip it from the Sphinx intersphinx_mapping instead of referencing
a non-existent file. This prevents Sphinx build errors when
third-party inventory downloads fail.
(cherry picked from commit afda438)
abhijeets25012-tech pushed a commit to abhijeets25012-tech/airflow that referenced this pull request Apr 9, 2026
…63630)

* Warn instead of failing on missing 3rd-party doc inventories

Third-party Sphinx intersphinx inventories (e.g., Pandas) are sometimes
temporarily unavailable. Previously, any download failure terminated the
entire doc build. Now missing 3rd-party inventories produce warnings and
fall back to cached versions when available. A marker file is written for
CI to detect missing inventories and send Slack notifications on canary
builds. Publishing workflows fail by default but can opt out.

- Add --fail-on-missing-third-party-inventories flag (default: off)
- Add --clean-inventory-cache flag (--clean-build no longer deletes cache)
- Cache inventories via stash action in CI and publish workflows
- Send Slack warning on canary builds when inventories are missing

* Add documentation for inventory cache handling options

Document the new --clean-inventory-cache, --fail-on-missing-third-party-inventories,
and --ignore-missing-inventories flags in the contributing docs, Breeze developer
tasks, and release management docs.

* Skip missing third-party inventories in intersphinx mapping

When a third-party inventory file doesn't exist in the cache,
skip it from the Sphinx intersphinx_mapping instead of referencing
a non-existent file. This prevents Sphinx build errors when
third-party inventory downloads fail.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants