You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by ka...@apache.org on 2021/02/08 22:00:23 UTC

[airflow] branch v1-10-stable updated: Use Tabular Format for the List of Upgrade Check Rules (#14139)

This is an automated email from the ASF dual-hosted git repository.

kaxilnaik pushed a commit to branch v1-10-stable
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/v1-10-stable by this push:
     new 7410dc9  Use Tabular Format for the List of Upgrade Check Rules (#14139)
7410dc9 is described below

commit 7410dc908a1935e533859a4ae469377de1a7dc05
Author: Kaxil Naik <ka...@gmail.com>
AuthorDate: Mon Feb 8 22:00:13 2021 +0000

    Use Tabular Format for the List of Upgrade Check Rules (#14139)
    
    closes https://github.com/apache/airflow/issues/13858
    
    **Before**:
    
    ```
    ❯ airflow upgrade_check --list
    
    Upgrade Checks:
    - VersionCheckRule: Check for latest versions of apache-airflow and checker
    - AirflowMacroPluginRemovedRule: Remove airflow.AirflowMacroPlugin class
    - BaseOperatorMetaclassRule: Ensure users are not using custom metaclasses in custom operators
    - ChainBetweenDAGAndOperatorNotAllowedRule: Chain between DAG and operator not allowed.
    - ConnTypeIsNotNullableRule: Connection.conn_type is not nullable
    - CustomExecutorsRequireFullPathRule: Custom Executors now require full path
    - DatabaseVersionCheckRule: Check versions of PostgreSQL, MySQL, and SQLite to ease upgrade to Airflow 2.0
    - DbApiRule: Hooks that run DB functions must inherit from DBApiHook
    - FernetEnabledRule: Fernet is enabled by default
    - GCPServiceAccountKeyRule: GCP service account key deprecation
    - HostnameCallable: Unify hostname_callable option in core section
    - ImportChangesRule: Changes in import paths of hooks, operators, sensors and others
    - LegacyUIDeprecated: Legacy UI is deprecated by default
    - LoggingConfigurationRule: Logging configuration has been moved to new section
    - MesosExecutorRemovedRule: Removal of Mesos Executor
    - NoAdditionalArgsInOperatorsRule: No additional argument allowed in BaseOperator.
    - PodTemplateFileRule: Users must set a kubernetes.pod_template_file value
    - SendGridEmailerMovedRule: SendGrid email uses old airflow.contrib module
    - SparkJDBCOperatorConnIdRule: Check Spark JDBC Operator default connection name
    - TaskHandlersMovedRule: Changes in import path of remote task handlers
    - UniqueConnIdRule: Connection.conn_id is not unique
    ```
    
    **After**:
    ```
    ❯ airflow upgrade_check --list
    
    Rule Name                                 Description
    ----------------------------------------  ------------------------------------------------------------------------------
    VersionCheckRule                          Check for latest versions of apache-airflow and checker
    AirflowMacroPluginRemovedRule             Remove airflow.AirflowMacroPlugin class
    BaseOperatorMetaclassRule                 Ensure users are not using custom metaclasses in custom operators
    ChainBetweenDAGAndOperatorNotAllowedRule  Chain between DAG and operator not allowed.
    ConnTypeIsNotNullableRule                 Connection.conn_type is not nullable
    CustomExecutorsRequireFullPathRule        Custom Executors now require full path
    DatabaseVersionCheckRule                  Check versions of PostgreSQL, MySQL, and SQLite to ease upgrade to Airflow 2.0
    DbApiRule                                 Hooks that run DB functions must inherit from DBApiHook
    FernetEnabledRule                         Fernet is enabled by default
    GCPServiceAccountKeyRule                  GCP service account key deprecation
    HostnameCallable                          Unify hostname_callable option in core section
    ImportChangesRule                         Changes in import paths of hooks, operators, sensors and others
    LegacyUIDeprecated                        Legacy UI is deprecated by default
    LoggingConfigurationRule                  Logging configuration has been moved to new section
    MesosExecutorRemovedRule                  Removal of Mesos Executor
    NoAdditionalArgsInOperatorsRule           No additional argument allowed in BaseOperator.
    PodTemplateFileRule                       Users must set a kubernetes.pod_template_file value
    SendGridEmailerMovedRule                  SendGrid email uses old airflow.contrib module
    SparkJDBCOperatorConnIdRule               Check Spark JDBC Operator default connection name
    TaskHandlersMovedRule                     Changes in import path of remote task handlers
    UniqueConnIdRule                          Connection.conn_id is not unique
    
    ```
---
 airflow/upgrade/checker.py | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/airflow/upgrade/checker.py b/airflow/upgrade/checker.py
index 889b0f4..fead361 100644
--- a/airflow/upgrade/checker.py
+++ b/airflow/upgrade/checker.py
@@ -19,6 +19,7 @@ from __future__ import absolute_import
 import argparse
 import logging
 import sys
+from tabulate import tabulate
 from typing import List
 
 from airflow.upgrade.formatters import BaseFormatter
@@ -43,10 +44,11 @@ def check_upgrade(formatter, rules):
 
 def list_checks():
     print()
-    print("Upgrade Checks:")
-    for rule in ALL_RULES:
-        rule_name = rule.__class__.__name__
-        print("- {}: {}".format(rule_name, rule.title))
+    rules = (
+        (rule.__class__.__name__, rule.title)
+        for rule in ALL_RULES
+    )
+    print(tabulate(rules, headers=["Rule Name", "Description"]))
     print()