Skip to content

Document each provider's optional extras in its docs index#69478

Merged
kaxil merged 1 commit into
apache:mainfrom
astronomer:provider-docs-optional-extras
Jul 6, 2026
Merged

Document each provider's optional extras in its docs index#69478
kaxil merged 1 commit into
apache:mainfrom
astronomer:provider-docs-optional-extras

Conversation

@kaxil

@kaxil kaxil commented Jul 6, 2026

Copy link
Copy Markdown
Member

Summary

A provider's docs index page listed only cross-provider extras -- extras that install another Airflow provider -- under "Optional cross provider package dependencies". A provider's plain-PyPI optional extras had no rendering path in the docs at all.

For common-ai that left anthropic, bedrock, openai, mcp, code-mode, langchain, llamaindex, pdf, docx (and more) undocumented; for amazon, extras like aiobotocore, s3fs, and pandas.

This adds an "Optional dependencies" section to the provider index template that renders the full extras table, so every extra a provider declares in [project.optional-dependencies] is documented alongside its dependencies and a pip install pkg[extra] example.

Why this shape

The optional-dependencies table and its Jinja context (OPTIONAL_DEPENDENCIES, OPTIONAL_DEPENDENCIES_TABLE_RST) already existed and are already rendered by the PyPI README template (added in #55280). The docs-site index template was simply never given the section, so this reuses the exact same computed context -- no new data plumbing.

It sits alongside the existing "Optional cross provider package dependencies" table, which stays because it links out to the other providers' docs. This mirrors how the README already renders both tables.

Scope of the diff

The index template is shared, and the update-providers-build-files static check regenerates every provider's index.rst from it. So the section can't be scoped to one provider -- all index.rst files that gain a section have to be regenerated in the same PR to keep the check green. The 40 providers touched here are exactly those that declare optional extras; providers with none are unchanged. The change is purely additive (a new section), verified idempotent against the generator.

The provider docs index page only listed cross-provider extras (extras
that pull in another Airflow provider). A provider's plain-PyPI optional
extras -- common-ai's anthropic/openai/langchain, amazon's aiobotocore/
s3fs, and so on -- had no rendering path in the docs at all.

Render the already-computed optional-dependencies table in the provider
index template, mirroring what the PyPI README template already does.

The shared index template drives every provider's index.rst, and the
update-providers-build-files check regenerates them all, so this also
regenerates the index for every provider that declares optional extras.
@kaxil kaxil merged commit 62d451d into apache:main Jul 6, 2026
141 of 142 checks passed
@kaxil kaxil deleted the provider-docs-optional-extras branch July 6, 2026 18:12
@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Backport failed to create: v3-3-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-3-test Commit Link

You can attempt to backport this manually by running:

cherry_picker 62d451d v3-3-test

This should apply the commit to the v3-3-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.

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.

2 participants