Skip to content

Fix schedule args for Airflow 3#413

Merged
pankajastro merged 3 commits into
mainfrom
fix_schedule
Jun 27, 2025
Merged

Fix schedule args for Airflow 3#413
pankajastro merged 3 commits into
mainfrom
fix_schedule

Conversation

@pankajastro

@pankajastro pankajastro commented May 30, 2025

Copy link
Copy Markdown
Contributor

Closes: #399
Documentation PR: #424

This PR adds support for handling the schedule parameter across various types of scheduling formats in DAG configuration. The changes in this PR is only apply to Airflow 3 users.

For detailed usage examples and documentation, please refer to:
#424

@codecov-commenter

codecov-commenter commented May 30, 2025

Copy link
Copy Markdown

Codecov Report

Attention: Patch coverage is 92.64706% with 5 lines in your changes missing coverage. Please review.

Project coverage is 94.85%. Comparing base (4ca608b) to head (27fd6ee).

Files with missing lines Patch % Lines
dagfactory/dagbuilder.py 91.93% 5 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #413      +/-   ##
==========================================
- Coverage   95.04%   94.85%   -0.20%     
==========================================
  Files          11       11              
  Lines         949     1011      +62     
==========================================
+ Hits          902      959      +57     
- Misses         47       52       +5     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment thread dagfactory/dagbuilder.py Outdated
@pankajastro pankajastro marked this pull request as ready for review June 19, 2025 06:02
@pankajastro pankajastro requested a review from a team as a code owner June 19, 2025 06:02
@pankajastro pankajastro force-pushed the fix_schedule branch 2 times, most recently from 8ddc009 to c9821ed Compare June 23, 2025 07:58

@tatiana tatiana left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's really exciting to see all the new scheduling support in DAG Factory, @pankajastro , while still being backwards compatible. Excellent work! I left some comments inline.

Comment thread tests/test_dagbuilder.py Outdated
Comment thread dagfactory/dagbuilder.py Outdated
Comment thread dagfactory/dagbuilder.py Outdated
Comment thread dagfactory/dagbuilder.py Outdated
@pankajastro pankajastro force-pushed the fix_schedule branch 2 times, most recently from 143767e to 30eadfc Compare June 25, 2025 08:19
@pankajastro pankajastro requested a review from tatiana June 26, 2025 08:38

@tatiana tatiana left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks great, thanks a lot, @pankajastro !

@pankajastro pankajastro merged commit b8c45e8 into main Jun 27, 2025
64 checks passed
@pankajastro pankajastro deleted the fix_schedule branch June 27, 2025 11:42
pankajastro added a commit that referenced this pull request Jun 27, 2025
While working on [PR
#413](#413), I noticed
that the schedule parameter is currently inconsistent and lacks clear
documentation. It's difficult to determine what formats are supported
without diving into the codebase.

This PR proposes changes to make the schedule configuration more
predictable, consistent, and easier to understand for users.
@pankajastro pankajastro mentioned this pull request Jun 27, 2025
@pankajastro pankajastro changed the title Fix schedule for AF3 Fix schedule args for Airflow 3 Jul 8, 2025
pankajastro added a commit that referenced this pull request Jul 14, 2025
## [0.23.0] - 2025-07-14

### Breaking Change

- Drop Airflow 2.2 Support by @pankajastro in
[#388](#388)
- Drop Python 3.8 support by @pankajastro in
[#435](#435)
- Drop Airflow 2.3 Support by @pankajastro in
[#456](#456)

### Airflow 3 Support

- Add tools for Dag-factory Airflow3 testing by @pankajastro in
[#395](#395)
- Fix schedule args for Airflow 3 by @pankajastro in
[#413](#413)
- Fix import path for BranchPythonOperator, PythonOperator and
PythonSensor by @pankajastro in
[#414](#414)
- Add scheduling docs for Airflow 3 by @pankajastro in
[#424](#424)
- Enable Airflow 3 tests in CI by @pankajastro in
[#436](#436)
- Add env AUTO_CONVERT_TO_AF3 in Dockerfile by @pankajastro in
[#455](#455)
- Validate DAG's on Airflow 3 by @pankajastro in
[#457](#457)
- Refactor schedule to use the Python object @pankajastro in
[#458](#458)
- Fix CI and import issues for Airflow 3 compatibility @pankajastro in
[#463](#463)

### Added

- Add support for defining inlets by @IvanSviridov in
[#380](#380)
- Add HttpOperator JSON serialization support with tests by @a-chumagin
in [#382](#382)
- Add support for custom Python object by @pankajastro in
[#444](#444)
- Support env var in default by @gyli in
[#452](#452)
- Pass default arguments via dictionary in .py file by @jroachgolf84 in
[#465](#465)

### Fixed

- Remediated ``default`` behavior, added documentation by @jroachgolf84
in [#378](#378)
- Upgrade `apache-airflow-providers-cncf-kubernetes` provider by
@pankajastro in
[#407](#407)
- Include error message trace in exception by @pankajastro in
[#408](#408)

### Docs

- Remove Unreleased heading section from the CHANGELOG.md by @pankajkoti
in [#365](#365)
- Add Documentation for Conditional Dataset Scheduling with dag-factory
by @ErickSeo in
[#367](#367)
- Add copy right in docs footer by @pankajastro in
[#371](#371)
- Updating docs for callbacks by @jroachgolf84 in
[#375](#375)
- Add stable/latest version in docs by @pankajastro in
[#391](#391)
- Migrate old content to new documentation structure by @pankajastro in
[#393](#393)
- Update Airflow supported version 2.3+ in docs by @pankajastro in
[#412](#412)
- Doc: Add step to fork repo in contributing guide by @pankajastro in
[#427](#427)
- Add setting CONFIG_ROOT_DIR in the contribution doc by @gyli in
[#432](#432)
- Add DAG example showcasing runtime params usage by @pankajastro in
[#449](#449)
- Add jinja2 template example by @pankajastro in
[#450](#450)

### Others

- Add Scraf Pixels for telemetry by @pankajastro in
[#373](#373)
- feat: bumped http provider versions to 2.0+ by @a-chumagin in
[#389](#389)
- Add --verbosity debug in astro-cli cmd by @pankajastro in
[#390](#390)
- Add missing Python file for dynamic task example by @pankajastro in
[#392](#392)
- Pin apache-airflow-providers-cncf-kubernetes<10.4.2 by @pankajastro in
[#400](#400)
- Add script to check version and tag by @pankajastro in
[#395](#394)
- Assert DagRunState in integration test by @pankajastro in
[#415](#415)
- Move to uv for package management by @jlaneve in
[#419](#419)
- Install uv in CI by @jlaneve in
[#421](#421)
- Bump astral-sh/setup-uv from 5 to 6 by @dependabot in
[#423](#423)
- Add Airflow 2.11 in test matrix by @pankajastro in
[#425](#425)
- fix example_dag_factory.yml typo causing catchup: false to not be
respected by @RNHTTR in
[#431](#431)
- Remove expandvars in utils.get_python_callable by @gyli in
[#440](#440)
- Delete unused img folder by @pankajastro in
[#446](#446)
- Clean print statement by @pankajastro
[#447](#447)
- Add hatch to uv dev dependencies by @gyli in
[#453](#453)
- Add Authorize Job in CI by @pankajastro in
[#460](#460)
- Remove PyPI token for releasing packages by @tatiana in
[#461](#461)
- Change CI on trigger event to pull_request from pull_request_target by
@pankajkoti in
[#464](#464)
- Update cicd.yaml: Use pull_request for authorize as we don't have
pull_request_target event configured by @pankajkoti in
[#466](#466)
- Add environment for pypi publish job by @pankajastro in
[#478](#478)
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.

Fix schedule and schedule_interval logic for airflow3 support

4 participants