This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 6393b3515f Create pre-commit script to prevent creating FAB related
migrations in core Airflow (#35927)
6393b3515f is described below
commit 6393b3515fbb7aabb1613f61204686e89479a5a0
Author: Vincent <[email protected]>
AuthorDate: Tue Nov 28 18:19:30 2023 -0500
Create pre-commit script to prevent creating FAB related migrations in core
Airflow (#35927)
---
.pre-commit-config.yaml | 32 +++++++++++++++++++++++++
STATIC_CODE_CHECKS.rst | 2 ++
dev/breeze/src/airflow_breeze/pre_commit_ids.py | 1 +
images/breeze/output_static-checks.svg | 2 +-
images/breeze/output_static-checks.txt | 2 +-
5 files changed, 37 insertions(+), 2 deletions(-)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 77b8b60abc..09d8bd279a 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1018,6 +1018,38 @@ repos:
- "B301,B324,B403,B404,B603"
- "--severity-level"
- "high" # TODO: remove this line when we fix all the issues
+ - id: check-fab-migrations
+ language: pygrep
+ name: Check no migration is done on FAB related table
+ description: >
+ FAB tables are no longer used in core Airflow but in FAB provider.
+ As such, it is forbidden to create migrations related to FAB tables
in core Airflow.
+ Such migrations should be in FAB provider. To achieve this, a new
capability must be implemented:
+ support migrations for providers. In other words, providers need to
be able to specify migrations
+ so that, any FAB related migration (besides the legacy ones) is
defined in FAB provider.
+ See https://github.com/apache/airflow/issues/32210
+ entry: >
+ (?ix)
+ \bab_permission\b|
+ \bab_view_menu\b|
+ \bab_role\b|
+ \bab_permission_view\b|
+ \bab_permission_view_role\b|
+ \bab_user\b|
+ \bab_user_role\b|
+ \bab_register_user\b
+ pass_filenames: true
+ files: ^airflow/migrations/versions/.*\.py$
+ # These migrations contain FAB related changes but existed before
moving FAB auth manager
+ # to its own provider
+ exclude: >
+ (?ix)
+ ^airflow/migrations/versions/00.*\.py$|
+ ^airflow/migrations/versions/0106.*\.py$|
+ ^airflow/migrations/versions/0118.*\.py$|
+ ^airflow/migrations/versions/0119.*\.py$|
+ ^airflow/migrations/versions/0121.*\.py$|
+ ^airflow/migrations/versions/0124.*\.py$
## ADD MOST PRE-COMMITS ABOVE THAT LINE
# The below pre-commits are those requiring CI image to be built
- id: mypy-dev
diff --git a/STATIC_CODE_CHECKS.rst b/STATIC_CODE_CHECKS.rst
index b83cb64859..437bd48ffc 100644
--- a/STATIC_CODE_CHECKS.rst
+++ b/STATIC_CODE_CHECKS.rst
@@ -188,6 +188,8 @@ require Breeze Docker image to be built locally.
+-----------------------------------------------------------+--------------------------------------------------------------+---------+
| check-extras-order | Check order of
extras in Dockerfile | |
+-----------------------------------------------------------+--------------------------------------------------------------+---------+
+| check-fab-migrations | Check no
migration is done on FAB related table | |
++-----------------------------------------------------------+--------------------------------------------------------------+---------+
| check-for-inclusive-language | Check for
language that we do not accept as community | |
+-----------------------------------------------------------+--------------------------------------------------------------+---------+
| check-google-re2-as-dependency | Check google-re2
is declared as dependency when needed | |
diff --git a/dev/breeze/src/airflow_breeze/pre_commit_ids.py
b/dev/breeze/src/airflow_breeze/pre_commit_ids.py
index 8c20452835..252bbaa558 100644
--- a/dev/breeze/src/airflow_breeze/pre_commit_ids.py
+++ b/dev/breeze/src/airflow_breeze/pre_commit_ids.py
@@ -47,6 +47,7 @@ PRE_COMMIT_LIST = [
"check-executables-have-shebangs",
"check-extra-packages-references",
"check-extras-order",
+ "check-fab-migrations",
"check-for-inclusive-language",
"check-google-re2-as-dependency",
"check-hooks-apply",
diff --git a/images/breeze/output_static-checks.svg
b/images/breeze/output_static-checks.svg
index 2559034dec..f566259da0 100644
--- a/images/breeze/output_static-checks.svg
+++ b/images/breeze/output_static-checks.svg
@@ -311,7 +311,7 @@
</text><text class="breeze-static-checks-r5" x="0" y="361.6" textLength="12.2"
clip-path="url(#breeze-static-checks-line-14)">│</text><text
class="breeze-static-checks-r7" x="451.4" y="361.6" textLength="988.2"
clip-path="url(#breeze-static-checks-line-14)">check-daysago-import-from-utils | check-decorated-operator-implements-custom-name</text><text
class="breeze-static-checks-r5" x="1451.8" y="361.6" textLength="12.2"
clip-path="url(#breeze-static-checks-line-14)">│</text><tex [...]
</text><text class="breeze-static-checks-r5" x="0" y="386" textLength="12.2"
clip-path="url(#breeze-static-checks-line-15)">│</text><text
class="breeze-static-checks-r7" x="451.4" y="386" textLength="988.2"
clip-path="url(#breeze-static-checks-line-15)">| check-deferrable-default-value | check-docstring-param-types |                 </text><text
class="breeze-static-checks-r5" x="1451 [...]
</text><text class="breeze-static-checks-r5" x="0" y="410.4" textLength="12.2"
clip-path="url(#breeze-static-checks-line-16)">│</text><text
class="breeze-static-checks-r7" x="451.4" y="410.4" textLength="988.2"
clip-path="url(#breeze-static-checks-line-16)">check-example-dags-urls | check-executables-have-shebangs |                      </text><text
class="breeze-s [...]
-</text><text class="breeze-static-checks-r5" x="0" y="434.8" textLength="12.2"
clip-path="url(#breeze-static-checks-line-17)">│</text><text
class="breeze-static-checks-r7" x="451.4" y="434.8" textLength="988.2"
clip-path="url(#breeze-static-checks-line-17)">check-extra-packages-references | check-extras-order |                           </t
[...]
+</text><text class="breeze-static-checks-r5" x="0" y="434.8" textLength="12.2"
clip-path="url(#breeze-static-checks-line-17)">│</text><text
class="breeze-static-checks-r7" x="451.4" y="434.8" textLength="988.2"
clip-path="url(#breeze-static-checks-line-17)">check-extra-packages-references | check-extras-order | check-fab-migrations |    </text><text
class="breeze-static-checks-r5" x="1451.8" y="434.8" textLength="12.2"
clip-path="url(#breeze-s [...]
</text><text class="breeze-static-checks-r5" x="0" y="459.2" textLength="12.2"
clip-path="url(#breeze-static-checks-line-18)">│</text><text
class="breeze-static-checks-r7" x="451.4" y="459.2" textLength="988.2"
clip-path="url(#breeze-static-checks-line-18)">check-for-inclusive-language | check-google-re2-as-dependency | check-hooks-apply</text><text
class="breeze-static-checks-r5" x="1451.8" y="459.2" textLength="12.2"
clip-path="url(#breeze-static-checks-line-18)">│< [...]
</text><text class="breeze-static-checks-r5" x="0" y="483.6" textLength="12.2"
clip-path="url(#breeze-static-checks-line-19)">│</text><text
class="breeze-static-checks-r7" x="451.4" y="483.6" textLength="988.2"
clip-path="url(#breeze-static-checks-line-19)">| check-incorrect-use-of-LoggingMixin | check-init-decorator-arguments |         </text><text
class="breeze-static-checks-r5" x="1451.8" y="483.6" textLength="12.2" clip
[...]
</text><text class="breeze-static-checks-r5" x="0" y="508" textLength="12.2"
clip-path="url(#breeze-static-checks-line-20)">│</text><text
class="breeze-static-checks-r7" x="451.4" y="508" textLength="988.2"
clip-path="url(#breeze-static-checks-line-20)">check-lazy-logging | check-links-to-example-dags-do-not-use-hardcoded-versions | </text><text
class="breeze-static-checks-r5" x="1451.8" y="508" textLength="12.2"
clip-path="url(#breeze-static-checks-line-20)">│</text> [...]
diff --git a/images/breeze/output_static-checks.txt
b/images/breeze/output_static-checks.txt
index 4a583ee4e4..605983ca00 100644
--- a/images/breeze/output_static-checks.txt
+++ b/images/breeze/output_static-checks.txt
@@ -1 +1 @@
-51f4354ec1eaa5a77cfc3dfe43ef1faa
+26c037ac78063fdb0ff40832867e678d