v1.0.0a2
Pre-release
Pre-release
[1.0.0a2] - 2025-08-11
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
schedule_intervalparameter from DAG configuration YAML by @viiccwen in #503- Use
scheduleparameter instead ofschedule_interval.
- Use
- Change
DagFactoryclass access to private by @pankajastro in #509- The import path
from dagfactory import DagFactoryhas been removed. - The class
DagFactoryhas been renamed to_DagFactory. - The
generate_dagsmethod ofDagFactoryhas been renamed to_generate_dags.
- The import path
- 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
- Consolidate
!and,!or,!join,andandorkey in YAML DAG configuration by @pankajastro in #525- Use
__and__,__or__andjoin__instead
- Use
- Remove custom parsing for DAG parameter
timetableby @pankajastro in #533- Use the
__type__annotation for thetimetableparameter.
- Use the
- Rename parameter of
load_yaml_dagsand_DagFactoryto reflect behaviour by @pankajastro in #546- Rename
configtoconfig_dict - Rename
default_args_config_pathtodefaults_config_path - Rename
default_args_config_dicttodefaults_config_dict
- Rename
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 - Add convert CLI command to migrate from af2 to af3 by @tatiana in 539
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 - Capture Telemetry DNS gaierror and handle it gracefully by @tatiana in #544
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
- Add migration guide docs by @pankajastro in #532
- Docs: Fix rendering of note block by @pankajastro in #537
- Document the Asset example DAG by @pankajastro in #538
- Add docs for the CLI convert command by @tatiana in #541
- Add remaining breaking changes in migration guide by @pankajastro in #549
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
- Add pre-commit to update
uv.lockby @pankajastro in #514 - Remove
clean_dagsusage from object storage DAG by @pankajastro in #515 - Remove broad exceptions and catch more specific exceptions by @pankajastro in #519
- Add missing env in contributing doc by @pankajastro in #522
- Enhance PyPI Stats API error handling by @viiccwen in #535
- Update example to be Airflow 3 compatible by @tatiana in 540
- Remove AUTO_CONVERT_TO_AF3 from tests by @tatiana in #543
- Bump actions/download-artifact from 4 to 5 by @dependabot in #548