Skip to content

Add a Retry Policies category to the provider registry - #70499

Merged
Lee-W merged 4 commits into
apache:mainfrom
astronomer:registry-retry-policy-category
Jul 31, 2026
Merged

Add a Retry Policies category to the provider registry#70499
Lee-W merged 4 commits into
apache:mainfrom
astronomer:registry-retry-policy-category

Conversation

@Lee-W

@Lee-W Lee-W commented Jul 27, 2026

Copy link
Copy Markdown
Member

Why

RetryPolicy is a Dag-author-facing pluggable component (task-sdk AIP-105) with a concrete implementation, common-ai's LLMRetryPolicy, but it had no presence in the provider registry -- no module type to classify it under and no provider.yaml section to declare it, so it was undiscoverable when browsing the registry.

What

Make it searchable in the registry

image
Was generative AI tooling used to co-author this PR?
  • Yes (please specify the tool below)

Generated-by: [Claude] following the guidelines


  • Read the Pull Request Guidelines for more information. Note: commit author/co-author name and email in commits become permanently public when merged.
  • For fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
  • When adding dependency, check compliance with the ASF 3rd Party License Policy.
  • For significant user-facing changes create newsfragment: {pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.

Comment thread registry/src/_data/types.json
Comment thread airflow-core/src/airflow/provider.yaml.schema.json
Comment thread dev/registry/registry_tools/types.py
@Lee-W
Lee-W force-pushed the registry-retry-policy-category branch from 6fbf8b8 to 98a9f9d Compare July 29, 2026 07:06

@potiuk potiuk left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks — coherent end-to-end addition: schema, registry tooling, provider data, site data/styling, and a validation check all move together, which is what makes a new registry category actually usable rather than half-wired.

I verified the references resolve rather than assuming: airflow.sdk.definitions.retry_policy.RetryPolicy exists (the ABC at line 92), and providers/common/ai/policies/retry.py contains LLMRetryPolicy(RetryPolicy), matching the declared suffixes: ["RetryPolicy"]. So the registry entry describes something real.

Adding retry-policies to the duplicate-detection list alongside the other categories is easy to forget and you didn't — good.

One observation inline about the directory convention.


Drafted-by: Claude Code (Opus 5); reviewed by @potiuk before posting

Comment thread scripts/in_container/run_provider_yaml_files_check.py

@amoghrajesh amoghrajesh 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.

LGTM thanks @Lee-W

Lee-W added 4 commits July 31, 2026 12:57
RetryPolicy is a Dag-author-facing pluggable component (task-sdk
AIP-105) with a concrete implementation, common-ai's LLMRetryPolicy,
but it had no presence in the provider registry -- no module type to
classify it under and no provider.yaml section to declare it, so it
was undiscoverable when browsing the registry.
The new registry module type shipped without a color token, so its badge fell
through to the unstyled base rule and rendered as plain text next to the
colored pills for every other type.
The provider.yaml validator had no knowledge of the new retry-policies
section, so two mistakes passed CI silently: a typo in a python-modules path
yielded an empty category instead of an error, and a provider could ship a
RetryPolicy subclass without declaring it.

Module-path completeness is deliberately not asserted for this section --
parse_module_data's glob assumes the directory is named after the resource
type, which does not hold for retry policies.
The next person adding a registry category is likely to copy this check
rather than the standard glob-based one, without realising that the
layout divergence is what makes a bespoke check necessary here. Stating
the assumption parse_module_data makes, and that retry policies depart
from it deliberately, gives that reader the reason rather than just the
observation.
@Lee-W
Lee-W force-pushed the registry-retry-policy-category branch from 98a9f9d to eab70e8 Compare July 31, 2026 04:57
@Lee-W
Lee-W merged commit fbac2f5 into apache:main Jul 31, 2026
156 checks passed
@Lee-W
Lee-W deleted the registry-retry-policy-category branch July 31, 2026 06:41
@github-project-automation github-project-automation Bot moved this from Backlog to Done in Airflow Registry Jul 31, 2026
@github-actions

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 fbac2f5 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

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants