Composer-Airflow リポジトリ

リポジトリについて

Composer-Airflow リポジトリは、パッチ適用済みの Apache Airflow コードを含む読み取り専用リポジトリです。これは、リファレンスとして使用することも、ローカルでのテストと開発に使用することもできます。

Cloud Composer はパッチ適用済みの Airflow のバージョンを使用するため、Cloud Composer にある特定のバージョンの Apache Airflow は、上流の対応する Airflow のバージョンと常に完全一致するとは限りません。このリポジトリには、Cloud Composer で使用されるすべてのパッチ適用済み Airflow バージョンのコードが含まれています。Cloud Composer にある Airflow のバージョンについては、Cloud Composer のバージョン リストをご覧ください。

貢献

このコードは Apache Airflow のフォークではありません。このリポジトリにあるコードは Apache Airflow リポジトリから直接取得されますが、通常の Apache Airflow リリースとは異なるタイムラインで行われます。このコードベースに貢献する場合は、ここで行わないでください。pull リクエストはこのリポジトリで受け入れられないため、代わりに Airflow に直接提供する必要があります。

問題とサポート

このリポジトリにあるコードに問題がある場合は、Airflow のバグの報告手順に沿って対応してください。Cloud Composer に問題がある場合は、Cloud Composer のサポート チャネルをご利用ください。

リポジトリには、Cloud Composer で利用可能な Airflow のバージョンごとに 1 つのブランチがあります。Cloud Composer では、すべてのバージョンの Airflow がサポートされているわけではありません。バージョン サポートについては、Cloud Composer のバージョニングをご覧ください。

ユースケース

お使いの Cloud Composer のバージョンの Airflow リポジトリからの commit ですか?

composer-airflow リポジトリの commit SHA1 はアップストリーム Airflow リポジトリの commit SHA1 に対応していません。つまり、特定の commit を検索するには、対応する commit メッセージを返します。

現在、GitHub UI を使用して、デフォルト ブランチ以外のブランチで commit メッセージを検索することはできませんが、git CLI を使用すると検索できます。このリポジトリ内の特定の commit を検索するには、git がインストールされている必要があります。

  1. 次のコマンドを使用して、リポジトリのクローンを作成しリポジトリ ディレクトリに移動します。
    git clone git@github.com:GoogleCloudPlatform/composer-airflow.git && cd composer-airflow
  2. commit メッセージを検索します。

    git log --source --grep="COMMIT_MESSAGE" --all

    ここで

    • --source は、commit が見つかったブランチを示します
    • --grep は、ログを検索するメッセージを git に指示します
    • --all は、すべてのブランチを検索するように git に指示します。
  3. ブランチは、すべての結果の最初の行の commit ハッシュの横にあります。コマンドが commit を返した場合は、それが Cloud Composer のバージョンであることを意味します。また、環境内の Airflow のバージョンがブランチのバージョンよりも新しい場合、その commit はお使いの環境の Airflow バージョンで使用されます。

たとえば、「GPL 依存関係で明示的な選択を行う」という commit メッセージを検索する場合、コマンドは次のようになります。

    git log --source --grep="Force explicit choice on GPL dependency" --all

一致する commit がある場合、結果は次のようになります(複数存在することがあります)。

commit 64ff1089e30e80b08bf5155edd9e49f5293ebbe4 refs/heads/<strong>1.10.2</strong>
Author: example_airflow_committer <example_airflow_committer@users.noreply.github.com>
Date:   Wed Aug 1 11:25:31 2018 +0200

    [AIRFLOW-2817] Force explicit choice on GPL dependency (#3660)

    By default one of Apache Airflow's dependencies pulls in a GPL
    library. Airflow should not install (and upgrade) without an explicit choice.

    This is part of the Apache requirements as we cannot depend on Category X
    software.

    (cherry picked from commit c37fc0b6ba19e3fe5656ae37cef9b59cef3c29e8)
    Signed-off-by: Example Airflow Committer  <example_airflow_committer@users.noreply.github.com>
    (cherry picked from commit b39e4532d9d1086c60b31553d08972bcc68df641)
    Signed-off-by: Example Airflow Committer  <example_airflow_committer@users.noreply.github.com>
    GitOrigin-RevId: cefcf4c61f64be3792cbfed509b82a9eb4cc47be

現在利用しているバージョンの Composer で、この Operator はどのように見えますか?

providers パッケージを使用していない場合

特定の演算子のファイルパス(GoogleCloudStorageCreateBucketOperator など)がわかっている場合は、GitHub UI か CLI を使用してそのファイルパスに移動します。

ファイルパスがわからない場合は、次のコマンドで検索できます。

    git grep GoogleCloudStorageCreateBucketOperator

文字列(この場合は演算子名)があるファイルのリストが出力されます。そのリストから該当するファイルに移動して、その内容をさらに調べます。

airflow/contrib/operators/gcs_operator.py:class GoogleCloudStorageCreateBucketOperator(BaseOperator):
airflow/contrib/operators/gcs_operator.py:            CreateBucket = GoogleCloudStorageCreateBucketOperator(
airflow/contrib/operators/gcs_operator.py:        super(GoogleCloudStorageCreateBucketOperator, self).__init__(*args, **kwargs)
docs/code.rst:.. autoclass:: airflow.contrib.operators.gcs_operator.GoogleCloudStorageCreateBucketOperator
docs/integration.rst:- :ref:`GoogleCloudStorageCreateBucketOperator` : Creates a new cloud storage bucket.
docs/integration.rst:.. _GoogleCloudStorageCreateBucketOperator:
docs/integration.rst:GoogleCloudStorageCreateBucketOperator
docs/integration.rst:.. autoclass:: airflow.contrib.operators.gcs_operator.GoogleCloudStorageCreateBucketOperator
tests/contrib/operators/test_gcs_operator.py:from airflow.contrib.operators.gcs_operator import GoogleCloudStorageCreateBucketOperator
tests/contrib/operators/test_gcs_operator.py:        operator = GoogleCloudStorageCreateBucketOperator(

providers パッケージを使用している場合

特定のバージョンの Airflow 1.10.x 以降では、特定のオペレータと付随するコードが「バックポート プロバイダ パッケージ」(Airflow 1.10.x)または「プロバイダ パッケージ」(Airflow 2.0 以降) と呼ばれる PyPI パッケージのコア Airflow とは別にパッケージ化およびリリースされます。Cloud Composer のバックポート プロバイダの詳細については、Cloud Composer のバックポート プロバイダのドキュメントをご覧ください。

これらのパッケージの特定のバージョンは、Cloud Composer にデフォルトでインストールされています。ご使用の環境にインストールされているバージョンを確認するには、バージョン リストの「Python 3 用 PyPI パッケージ」列を確認します。

特定のリリースの演算子のコードを表示するには:

GitHub UI

  1. アップストリーム Airflow リポジトリに移動します。
  2. ページ上部の GitHub 検索バーに、検索する特定の演算子の名前を入力します。
  3. 複数のファイルが返された場合は、airflow/providers で始まるパスのコードファイルをクリックします。たとえば、GoogleCloudStorageCreateBucketOperator を検索する場合は airflow/providers/google/cloud/operators/gcs.py を選択します。
  4. ブランチ セレクタをクリックすると、[ブランチ/タグを切り替える] プルダウン リストが開きます。
  5. [タグ] タブをクリックします。
  6. providers パッケージの場合は、次を入力して、プロバイダの名前とバージョンを
    providers-PROVIDER_NAME/PROVIDER_VERSION
    リスト内のプルダウン(PROVIDER_NAME はプロバイダの名前、PROVIDER_VERSION は検索するバージョンの名前です)。たとえば、apache-airflow-providers-google パッケージのバージョン 4.0.0 を確認するには、providers-google/4.0.0 を検索します。
  7. backport-providers パッケージの場合、次を検索します。
    backport-providers-PROVIDER_VERSION
    ドロップダウンリストの検索バー。たとえば、apache-airflow-backport-providers-google パッケージのバージョン 2021.3.3 を確認するには、backport-providers-2021.3.3 を検索します。
  8. クエリに一致する結果をクリックします。
  9. 画面上のコードは、まさにその演算子のバージョンで実行されているものです。[履歴] をクリックすると、現時点までの commit の履歴を確認できます。

git CLI

  1. アップストリーム Airflow リポジトリのクローンを作成します。
  2. providers パッケージの場合は、次のコマンドを実行します。
    git checkout providers-PROVIDER_NAME/PROVIDER_VERSION
    ここで、PROVIDER_NAME はプロバイダの名前、PROVIDER_VERSION は探しているバージョンの名前です。たとえば、apache-airflow-providers-google パッケージのバージョン 4.0.0 を確認するには、git checkout providers-google/4.0.0 を実行します。
  3. backport-providers パッケージの場合は、次のコマンドを実行します。
    git checkout backport-providers-PROVIDER_VERSION
    ドロップダウンリストの検索バー。たとえば、apache-airflow-backport-providers-google パッケージのバージョン 2021.3.3 を確認するには、git checkout backport-providers-2021.3.3 を実行します。

次に、providers パッケージを使用していない場合の手順を行います。