v1.0.0a1
Pre-release
Pre-release
[1.0.0a1] - 2025-08-01
Breaking Changes
- Airflow providers are now optional dependencies by @pankajastro in #486
- Previously,
dag-factoryenforced the installation ofapache-airflow-providers-httpandapache-airflow-providers-cncf-kubernetes. These Airflow providers dependencies are now optional. If your DAGs depend on these providers, you must install them manually. Alternatively, you can installdag-factorywith extras likedag-factory[all],dag-factory[kubernetes], etc.
- Previously,
- Removed
clean_dagsfunction by @pankajastro in #498- You no longer need to call
example_dag_factory.clean_dags(globals())in your DAG files. DAG cleanup is now controlled via the Airflow config settingAIRFLOW__DAG_PROCESSOR__REFRESH_INTERVAL.
- You no longer need to call
- Remove Inconsistent Parameters for Airflow Consistent by @pankajastro in #512
- Removed
dagrun_timeout_secfrom dag param. - Removed
retry_delay_sec,sla_secsfrom default_args. - Removed accepting
execution_timeoutas integer. - Removed
execution_timeout_secs,sla_secsandexecution_delta_secsfrom task param.
- Removed
- Remove custom parsing for Kubernetes object and refactor KPO to use
__type__syntax by @pankajastro in #523- The custom parsing for Kubernetes objects has been removed. You can no longer pass a custom YAML dictionary to DAG-Factory configuration unless accepted by the KubernetesPodOperator. We suggest you to use
__type__syntax to supply Kubernetes object in your YAML DAG. For an example KPO configuration, visit: KubernetesPodOperator Documentation.
- The custom parsing for Kubernetes objects has been removed. You can no longer pass a custom YAML dictionary to DAG-Factory configuration unless accepted by the KubernetesPodOperator. We suggest you to use
Added
- Support dag-level arguments in global defaults by @gyli in #480
- Support
*argsin custom Python object by @pankajastro in #484 - Support tasks and task_groups as lists by @pankajkoti in #487
- Support overriding
defaults.ymlbased on the directory hierarchy by @tatiana in #500 - Introduced DAG Factory CLI by @tatiana in #510
- Added
lintcommand to CLI by @tatiana in #513
Fixed
- Fix the Airflow version condition check to parse inlets/outlets syntax according to the dataset by @pankajastro in #485
- Ensure
dag_paramscontainschedulebefore operating on it by @pankajkoti in #488 - Fix
start_date,end_dateat the DAG level by @pankajastro in #495 - Allow
execution_timeoutindefault_argsby @pankajastro in #501
Docs
- Restore basic DAG example by @pankajastro in #483
- Replace the usages in example dags, tests and docs for tasks and taskgroups to be list by @pankajkoti in #492
- Update default documentation based on #500 by @tatiana in #504
- Add more examples for Custom Python object by @pankajastro in #506
- Add documentation for DAG Factory CLI by @tatiana in #511
- Add documentation and example YAMLs for task and task_group configuration formats by @pankajkoti in #530
Other Changes
- Improve unit tests to disregard
$AIRFLOW_HOMEby @tatiana in #490 - Resolve unpinned action reference error alerts raised by Zizmor by @pankajkoti in #493
- Resolve 'credential persistence through GitHub Actions artifacts' warnings from Zizmor by @pankajkoti in #494
- Resolve 'overly broad permissions' warnings from Zizmor by @pankajkoti in #496
- CI: Add GitHub CodeQL analysis workflow (
codeql.yml) by @pankajkoti in #497 - Fix deploy pages job missing credentials by @pankajkoti in #499
- Add the breaking changes to changelog by @pankajastro in #502
- Remove
clean_dagsusage from object storage DAG by @pankajastro in #515 - Add pre-commit to update
uv.lockby @pankajastro in #514 - Remove broad exceptions and catch more specific exceptions by @pankajastro in #519
- Add missing env in contributing doc by @pankajastro in #522