Skip to content

Add airflow-custom-provider skill - #261

Open
odaneau-astro wants to merge 4 commits into
mainfrom
skill/airflow-custom-provider
Open

Add airflow-custom-provider skill#261
odaneau-astro wants to merge 4 commits into
mainfrom
skill/airflow-custom-provider

Conversation

@odaneau-astro

@odaneau-astro odaneau-astro commented Sep 3, 2026

Copy link
Copy Markdown

Summary

  • Adds a skill for packaging a hook/operator/sensor as a pip-installable Airflow provider (get_provider_info(), the apache_airflow_provider entry point, custom connection types).

Test plan

  • Read through against the canonical template (astronomer/airflow-provider-sample) for drift
  • Spot-check the get_provider_info() / entry-point verification commands against a real provider install
  • Tested the skill end-to-end, generated a provider package, and ran astro dev init and astro dev startto confirm it installed cleanly.

odaneau-astro and others added 4 commits September 2, 2026 22:19
Covers packaging a hook/operator/sensor integration as an installable
Airflow provider: directory skeleton, the get_provider_info() contract
and apache_airflow_provider entry point, constraints that silently break
discovery or scheduler parsing, the wheel-build-and-astro-dev-start
verification loop, and when a provider package is warranted versus a
plain operator in a single DAG repo's include/ or plugins/.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Rewrites the skill against a fresh clone of astronomer/airflow-provider-sample
to confirm the package skeleton, get_provider_info() required fields, and
entry-point contract. Adds a decision table for provider package vs. a
lighter include/plugins operator, a UI connection-form snippet, and
af config providers/connections verification steps for the functional
testing loop.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Fixes an inverted/garbled rule about __init__ constructors, corrects
a cross-reference, and applies the Astronomer style guide (Latin
abbreviations, "repository" not "repo", "folder" not "directory") plus
a pass to remove AI-writing tells (em dashes, hollow intensifiers).
Manually followed the skill end to end (build a real provider, astro
dev init/start) and found the documented local-wheel step doesn't
work: the Astro Runtime image's ONBUILD chain installs requirements.txt
before it copies the wheel into the image, so a relative path in
requirements.txt fails with "Distribution not found". Fixes it with an
explicit Dockerfile RUN after FROM, verified against runtime:3.3-7.

Also adds the alternative path teams actually want for sharing a
provider: publish to public or private PyPI and reference it normally
in requirements.txt, including the Airflow-version-dependent
--index-url/--extra-index-url flag and a pointer to Astronomer's
private-package build-secret docs for keeping credentials out of git.
@odaneau-astro
odaneau-astro marked this pull request as ready for review September 5, 2026 14:21
@odaneau-astro
odaneau-astro requested review from a team, amoghrajesh, jlaneve and kaxil and removed request for amoghrajesh, jlaneve and kaxil September 5, 2026 14:22
@odaneau-astro odaneau-astro mentioned this pull request Sep 5, 2026
1 task
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.

1 participant