Skip to content

Conversation

ntBre
Copy link
Contributor

@ntBre ntBre commented Sep 4, 2025

  • Stabilize airflow3-suggested-update (AIR311)
  • Stabilize airflow3-suggested-to-move-to-provider (AIR312)
  • Stabilize airflow3-removal (AIR301)
  • Stabilize airflow3-moved-to-provider (AIR302)
  • Stabilize airflow-dag-no-schedule-argument (AIR002)

I put this all in one PR to make it easier to double check with @Lee-W before we merge this. I also made a few minor documentation changes and updated one error message that I want to make sure are okay. But for the most part this just moves the rules from RuleGroup::Preview to RuleGroup::Stable!

Fixes #17749

@ntBre ntBre added this to the v0.13 milestone Sep 4, 2025
@ntBre ntBre added the rule Implementing or modifying a lint rule label Sep 4, 2025
Copy link
Contributor

github-actions bot commented Sep 4, 2025

ruff-ecosystem results

Linter (stable)

ℹ️ ecosystem check detected linter changes. (+2532 -0 violations, +0 -0 fixes in 1 projects; 54 projects unchanged)

apache/airflow (+2532 -0 violations, +0 -0 fixes)

ruff check --no-cache --exit-zero --ignore RUF9 --no-fix --output-format concise --no-preview --select ALL

+ airflow-core/src/airflow/api_fastapi/core_api/routes/public/connections.py:115:17: AIR311 `airflow.models.Connection` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
+ airflow-core/src/airflow/api_fastapi/core_api/routes/public/connections.py:125:26: AIR311 `airflow.models.Connection` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
+ airflow-core/src/airflow/api_fastapi/core_api/routes/public/connections.py:154:18: AIR311 `airflow.models.Connection` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
+ airflow-core/src/airflow/api_fastapi/core_api/routes/public/connections.py:193:17: AIR311 `airflow.models.Connection` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
+ airflow-core/src/airflow/api_fastapi/core_api/routes/public/connections.py:193:52: AIR311 `airflow.models.Connection` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
+ airflow-core/src/airflow/api_fastapi/core_api/routes/public/connections.py:232:16: AIR311 `airflow.models.Connection` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
+ airflow-core/src/airflow/api_fastapi/core_api/routes/public/connections.py:72:40: AIR311 `airflow.models.Connection` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
+ airflow-core/src/airflow/api_fastapi/core_api/routes/public/connections.py:92:40: AIR311 `airflow.models.Connection` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
+ airflow-core/src/airflow/api_fastapi/core_api/security.py:244:21: AIR311 `airflow.models.Connection` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
+ airflow-core/src/airflow/api_fastapi/core_api/security.py:281:21: AIR311 `airflow.models.Variable` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
+ airflow-core/src/airflow/cli/commands/connection_command.py:114:37: AIR311 `airflow.models.Connection` is removed in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
... 2298 additional changes omitted for rule AIR311
+ airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_xcom.py:406:15: AIR002 `DAG` or `@dag` should have an explicit `schedule` argument
+ airflow-core/tests/unit/dag_processing/test_collection.py:360:15: AIR002 `DAG` or `@dag` should have an explicit `schedule` argument
+ airflow-core/tests/unit/dag_processing/test_collection.py:444:15: AIR002 `DAG` or `@dag` should have an explicit `schedule` argument
+ airflow-core/tests/unit/dag_processing/test_collection.py:469:15: AIR002 `DAG` or `@dag` should have an explicit `schedule` argument
+ airflow-core/tests/unit/dag_processing/test_collection.py:683:15: AIR002 `DAG` or `@dag` should have an explicit `schedule` argument
+ airflow-core/tests/unit/dag_processing/test_collection.py:726:15: AIR002 `DAG` or `@dag` should have an explicit `schedule` argument
+ airflow-core/tests/unit/dag_processing/test_processor.py:1006:14: AIR002 `DAG` or `@dag` should have an explicit `schedule` argument
+ airflow-core/tests/unit/dag_processing/test_processor.py:1054:14: AIR002 `DAG` or `@dag` should have an explicit `schedule` argument
+ airflow-core/tests/unit/dag_processing/test_processor.py:1097:14: AIR002 `DAG` or `@dag` should have an explicit `schedule` argument
+ airflow-core/tests/unit/dag_processing/test_processor.py:1157:14: AIR002 `DAG` or `@dag` should have an explicit `schedule` argument
+ airflow-core/tests/unit/dag_processing/test_processor.py:1217:14: AIR002 `DAG` or `@dag` should have an explicit `schedule` argument
... 193 additional changes omitted for rule AIR002
+ dev/airflow_perf/dags/perf_dag_1.py:41:10: AIR302 `airflow.operators.bash_operator.BashOperator` is moved into `standard` provider in Airflow 3.0;
+ dev/airflow_perf/dags/perf_dag_1.py:48:12: AIR302 `airflow.operators.bash_operator.BashOperator` is moved into `standard` provider in Airflow 3.0;
+ dev/airflow_perf/scheduler_dag_execution_timing.py:255:10: AIR301 `airflow.utils.db.create_session` is removed in Airflow 3.0
+ dev/airflow_perf/scheduler_dag_execution_timing.py:302:18: AIR301 `airflow.utils.db.create_session` is removed in Airflow 3.0
+ performance/src/performance_dags/performance_dag/performance_dag.py:100:13: AIR312 `airflow.operators.bash.BashOperator` is deprecated and moved into `standard` provider in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
+ performance/src/performance_dags/performance_dag/performance_dag.py:116:13: AIR312 `airflow.operators.python.PythonOperator` is deprecated and moved into `standard` provider in Airflow 3.0; It still works in Airflow 3.0 but is expected to be removed in a future version.
+ performance/src/performance_dags/performance_dag/performance_dag.py:249:9: AIR301 [*] `schedule_interval` is removed in Airflow 3.0
+ providers/alibaba/tests/unit/alibaba/cloud/log/test_oss_task_handler.py:189:67: AIR301 `filename_template` is removed in Airflow 3.0
+ providers/amazon/tests/unit/amazon/aws/log/test_cloudwatch_task_handler.py:421:13: AIR301 `filename_template` is removed in Airflow 3.0
+ providers/amazon/tests/unit/amazon/aws/log/test_s3_task_handler.py:349:70: AIR301 `filename_template` is removed in Airflow 3.0
+ providers/common/compat/src/airflow/providers/common/compat/lineage/hook.py:39:32: AIR301 [*] `airflow.lineage.hook.DatasetLineageInfo` is removed in Airflow 3.0
+ providers/common/compat/src/airflow/providers/common/compat/lineage/hook.py:39:5: AIR301 [*] `airflow.lineage.hook.DatasetLineageInfo` is removed in Airflow 3.0
+ providers/common/compat/src/airflow/providers/common/compat/lineage/hook.py:63:17: AIR301 [*] `airflow.lineage.hook.DatasetLineageInfo` is removed in Airflow 3.0
+ providers/common/compat/src/airflow/providers/common/compat/lineage/hook.py:67:17: AIR301 [*] `airflow.lineage.hook.DatasetLineageInfo` is removed in Airflow 3.0
+ providers/elasticsearch/tests/unit/elasticsearch/log/test_es_task_handler.py:885:13: AIR301 `filename_template` is removed in Airflow 3.0
... 7 additional changes omitted for rule AIR301
... 2495 additional changes omitted for project

Changes by rule (5 rules affected)

code total + violation - violation + fix - fix
AIR311 2308 2308 0 0 0
AIR002 203 203 0 0 0
AIR301 17 17 0 0 0
AIR302 2 2 0 0 0
AIR312 2 2 0 0 0

Linter (preview)

✅ ecosystem check detected no linter changes.

@ntBre ntBre marked this pull request as ready for review September 4, 2025 19:59
@ntBre ntBre linked an issue Sep 4, 2025 that may be closed by this pull request
@Lee-W
Copy link
Contributor

Lee-W commented Sep 5, 2025

also kinda wonder if the description here will also be updated. Thanks!

image

@ntBre
Copy link
Contributor Author

ntBre commented Sep 5, 2025

The documentation on the website is all generated from the docstrings and message implementations, so that should update to reflect whatever we change here after the release. Hmm, but it doesn't look like the AIR002 entry in that table updated after the patch release today. I'll look into that too.

@Lee-W
Copy link
Contributor

Lee-W commented Sep 5, 2025

I think AIR302, AIR312 should probably be updated as well 🤔 let me know if there's anything I can help

@ntBre
Copy link
Contributor Author

ntBre commented Sep 5, 2025

The docs website should now be up to date! There was just a temporary issue in the release deployment yesterday.

@ntBre ntBre merged commit 1630ee3 into brent/0.13.0 Sep 8, 2025
35 checks passed
@ntBre ntBre deleted the brent/airflow branch September 8, 2025 14:01
@ntBre ntBre mentioned this pull request Sep 8, 2025
2 tasks
ntBre added a commit that referenced this pull request Sep 8, 2025
- **Stabilize `airflow3-suggested-update` (`AIR311`)**
- **Stabilize `airflow3-suggested-to-move-to-provider` (`AIR312`)**
- **Stabilize `airflow3-removal` (`AIR301`)**
- **Stabilize `airflow3-moved-to-provider` (`AIR302`)**
- **Stabilize `airflow-dag-no-schedule-argument` (`AIR002`)**

I put this all in one PR to make it easier to double check with @Lee-W
before we merge this. I also made a few minor documentation changes and
updated one error message that I want to make sure are okay. But for the
most part this just moves the rules from `RuleGroup::Preview` to
`RuleGroup::Stable`!

Fixes #17749
ntBre added a commit that referenced this pull request Sep 10, 2025
- **Stabilize `airflow3-suggested-update` (`AIR311`)**
- **Stabilize `airflow3-suggested-to-move-to-provider` (`AIR312`)**
- **Stabilize `airflow3-removal` (`AIR301`)**
- **Stabilize `airflow3-moved-to-provider` (`AIR302`)**
- **Stabilize `airflow-dag-no-schedule-argument` (`AIR002`)**

I put this all in one PR to make it easier to double check with @Lee-W
before we merge this. I also made a few minor documentation changes and
updated one error message that I want to make sure are okay. But for the
most part this just moves the rules from `RuleGroup::Preview` to
`RuleGroup::Stable`!

Fixes #17749
ntBre added a commit that referenced this pull request Sep 10, 2025
- **Stabilize `airflow3-suggested-update` (`AIR311`)**
- **Stabilize `airflow3-suggested-to-move-to-provider` (`AIR312`)**
- **Stabilize `airflow3-removal` (`AIR301`)**
- **Stabilize `airflow3-moved-to-provider` (`AIR302`)**
- **Stabilize `airflow-dag-no-schedule-argument` (`AIR002`)**

I put this all in one PR to make it easier to double check with @Lee-W
before we merge this. I also made a few minor documentation changes and
updated one error message that I want to make sure are okay. But for the
most part this just moves the rules from `RuleGroup::Preview` to
`RuleGroup::Stable`!

Fixes #17749
ntBre added a commit that referenced this pull request Sep 10, 2025
- **Stabilize `airflow3-suggested-update` (`AIR311`)**
- **Stabilize `airflow3-suggested-to-move-to-provider` (`AIR312`)**
- **Stabilize `airflow3-removal` (`AIR301`)**
- **Stabilize `airflow3-moved-to-provider` (`AIR302`)**
- **Stabilize `airflow-dag-no-schedule-argument` (`AIR002`)**

I put this all in one PR to make it easier to double check with @Lee-W
before we merge this. I also made a few minor documentation changes and
updated one error message that I want to make sure are okay. But for the
most part this just moves the rules from `RuleGroup::Preview` to
`RuleGroup::Stable`!

Fixes #17749
dcreager added a commit that referenced this pull request Sep 10, 2025
* main: (26 commits)
  Ignore deprecated rules unless selected by exact code (#20167)
  Stabilize adding future import via config option (#20277)
  [`flake8-errmsg`] Stabilize extending `raw-string-in-exception` (`EM101`) to support byte strings (#20273)
  Stabilize the remaining Airflow rules (#20250)
  [`flake8-bugbear`] Stabilize support for non-context-manager calls in `assert-raises-exception` (`B017`) (#20274)
  [`flake8-commas`] Stabilize support for trailing comma checks in type parameter lists (`COM812`, `COM819`) (#20275)
  [`pygrep_hooks`] Stabilize using`AsyncMock` methods in `invalid-mock-access` (`PGH005`) (#20272)
  Stabilize new strategy for classifying imports as first party (#20268)
  [`pylint`] Stabilize ignoring `__init__.py` for `useless-import-alias` (`PLC0414`) (#20271)
  [`pylint`] Stabilize adding U+061C to `bidirectional-unicode` (`PLE2502`) (#20276)
  [`flake8-simplify`] Stabilize fix safety of `multiple-with-statements` (`SIM117`) (#20270)
  Stabilize `pytest-raises-ambiguous-pattern` (`RUF043`) (#20253)
  Stabilize `f-string-number-format` (`FURB116`) (#20247)
  [`pyupgrade`] Remove `non-pep604-isinstance` (`UP038`) (#19156)
  [`pandas-vet`] Remove `pandas-df-variable-name` (`PD901`) (#19223)
  Remove deprecated macOS config file discovery (#19210)
  Stabilize `redundant-none-literal` (`PYI061`) (#20236)
  Stabilize `generic-not-last-base-class` (`PYI059`) (#20246)
  Stabilize `useless-class-metaclass-type` (`UP050`) (#20230)
  Stabilize `os-symlink` (`PTH211`) (#20229)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rule Implementing or modifying a lint rule

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Consider stabilizing Airflow 3.0 migration rules

3 participants