Skip to content

v1.0.0a2

Pre-release
Pre-release

Choose a tag to compare

@pankajastro pankajastro released this 11 Aug 14:33

[1.0.0a2] - 2025-08-11

Breaking Changes

  • Airflow providers are now optional dependencies by @pankajastro in #486
    • Previously, dag-factory enforced the installation of apache-airflow-providers-http and apache-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 install dag-factory with extras like dag-factory[all], dag-factory[kubernetes], etc.
  • Removed clean_dags function 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 setting AIRFLOW__DAG_PROCESSOR__REFRESH_INTERVAL.
  • Remove schedule_interval parameter from DAG configuration YAML by @viiccwen in #503
    • Use schedule parameter instead of schedule_interval.
  • Change DagFactory class access to private by @pankajastro in #509
    • The import path from dagfactory import DagFactory has been removed.
    • The class DagFactory has been renamed to _DagFactory.
    • The generate_dags method of DagFactory has been renamed to _generate_dags.
  • Remove Inconsistent Parameters for Airflow Consistent by @pankajastro in #512
    • Removed dagrun_timeout_sec from dag param.
    • Removed retry_delay_sec, sla_secs from default_args.
    • Removed accepting execution_timeout as integer.
    • Removed execution_timeout_secs, sla_secs and execution_delta_secs from task param.
  • 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.
  • Consolidate !and, !or, !join, and and or key in YAML DAG configuration by @pankajastro in #525
    • Use __and__, __or__ and join__ instead
  • Remove custom parsing for DAG parameter timetable by @pankajastro in #533
    • Use the __type__ annotation for the timetable parameter.
  • Rename parameter of load_yaml_dags and _DagFactory to reflect behaviour by @pankajastro in #546
    • Rename config to config_dict
    • Rename default_args_config_path to defaults_config_path
    • Rename default_args_config_dict to defaults_config_dict

Added

  • Support dag-level arguments in global defaults by @gyli in #480
  • Support *args in custom Python object by @pankajastro in #484
  • Support tasks and task_groups as lists by @pankajkoti in #487
  • Support overriding defaults.yml based on the directory hierarchy by @tatiana in #500
  • Introduced DAG Factory CLI by @tatiana in #510
  • Added lint command 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_params contain schedule before operating on it by @pankajkoti in #488
  • Fix start_date, end_date at the DAG level by @pankajastro in #495
  • Allow execution_timeout in default_args by @pankajastro in #501
  • Capture Telemetry DNS gaierror and handle it gracefully by @tatiana in #544

Docs

Other Changes