From 9473990c0ba9c3b7d1f39fac2df72bf3d5af5bb5 Mon Sep 17 00:00:00 2001 From: Johnny Wilson Dougherty Date: Thu, 16 Jul 2026 17:42:08 +0530 Subject: [PATCH] packaging: single-source the integrations extra via self-reference The integrations optional-dependency group re-listed the exact pins of the dagster/airflow/dbt extras, so a version bump in one of those could silently drift from integrations. Reference them instead (freshdata-cleaner[...]). Hatchling flattens the self-reference at build time, so the emitted Requires-Dist is byte-identical to the previous inline union -- no change to the install closure. twine check and tests/test_packaging.py pass. --- pyproject.toml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index e6ceb8b..db8f971 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -191,12 +191,10 @@ dbt = [ "dbt-core>=1.5.0", "sqlalchemy>=1.4", ] -integrations = [ - "dagster>=1.5.0", - "apache-airflow>=2.6.0", - "dbt-core>=1.5.0", - "sqlalchemy>=1.4", -] +# Convenience superset of the orchestration extras. References them instead of +# re-pinning so the versions stay single-sourced (a bump to `dagster`/`airflow`/ +# `dbt` can't silently drift from `integrations`). Same install closure. +integrations = ["freshdata-cleaner[dagster,airflow,dbt]"] # Optional streaming source connectors for micro-batch cleaning. The base # StreamingCleaner needs none of these; they are only required for the matching # `clean_kafka` / `clean_arrow_flight` helpers.