Warn instead of failing on missing 3rd-party doc inventories#63630
Conversation
bugraoz93
left a comment
There was a problem hiding this comment.
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 :) |
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.
f3d6148 to
169c5fd
Compare
Backport failed to create: v3-1-test. View the failure log Run detailsNote: As of Merging PRs targeted for Airflow 3.X In matter of doubt please ask in #release-management Slack channel.
You can attempt to backport this manually by running: cherry_picker afda438 v3-1-testThis should apply the commit to the v3-1-test branch and leave the commit in conflict state marking After you have resolved the conflicts, you can continue the backport process by running: cherry_picker --continueIf you don't have cherry-picker installed, see the installation guide. |
…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>
…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>
…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)
* 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.
…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.
…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)
…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.
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 — theseinventories are for cross-references to external docs and their temporary
unavailability should not block the build.
Changes:
.missing_third_party_inventoriesmarker file is written for CI detectioninternal-airflow-ci-cdwhen inventories are missingNew 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-buildno longer deletes it)--ignore-missing-inventories— workflow dispatch input for publish-docsFiles changed:
fetch_inventories.py— warn-and-continue logic, marker filebuild_docs.py— new CLI flagsdoc_build_params.py— new fields and arg passingdeveloper_commands.py— new CLI flags, updated clean-build behaviorworkflow_commands.py—--ignore-missing-inventoriesoptionci-image-checks.yml— fixed stash key/condition, Slack notificationci-amd-arm.yml— pass SLACK_BOT_TOKEN secretpublish-docs-to-s3.yml— inventory cache stash, fail flag, workflow inputWas generative AI tooling used to co-author this PR?
Generated-by: Claude Code (Claude Opus 4.6) following the guidelines