关于代码库
Composer-Airflow 代码库是一个只读代码库,其中包含在 Cloud Composer 中运行的经过修补的 Apache Airflow 代码。它可以用作参考以及用于本地测试和开发。
Cloud Composer 中特定版本的 Apache Airflow 并不总是与上游 Airflow 中的相应版本完全匹配,因为 Cloud Composer 使用的是 Airflow 的修补版本。此代码库包含 Cloud Composer 中使用的每个 Airflow 修补版本的代码。如需了解 Cloud Composer 中找到的 Airflow 版本,请参阅 Cloud Composer 版本列表。
投稿
此代码不是 Apache Airflow 的分支,此代码库中的代码直接来自 Apache Airflow 代码库,但其时间轴与常规 Apache Airflow 版本不同。如果您想为此代码库做贡献,请不要在此处进行。此代码库不接受拉取请求,您应直接向 Airflow 贡献。
问题和支持
如果您在使用此代码库中的代码时遇到问题,请按照 Airflow 错误报告说明操作。如果您在使用 Cloud Composer 时遇到问题,请使用 Cloud Composer 支持渠道。
浏览代码库
对于 Cloud Composer 中可用的每个 Airflow 版本,此代码库都有一个分支。并非所有版本的 Airflow 都受 Cloud Composer 支持。如需了解版本支持,请参阅 Cloud Composer 版本控制。
使用场景
此提交是否来自我的 Cloud Composer 版本中的 Airflow 代码库?
composer-airflow 代码库中的提交 SHA1 与上游 Airflow 代码库中的提交 SHA1 不对应,这意味着搜索特定提交的最简单方法是搜索相应的提交消息。
目前,无法使用 GitHub 界面在默认分支以外的分支中搜索提交消息,但可以使用 git
CLI 执行此操作。如需在此代码库中搜索特定提交,您需要安装 git
。
- 使用以下命令克隆代码库并切换到代码库目录:
git clone git@github.com:GoogleCloudPlatform/composer-airflow.git && cd composer-airflow
搜索提交消息:
git log --source --grep="COMMIT_MESSAGE" --all
其中:
--source
显示在其中找到提交的分支--grep
告诉git
要在日志中搜索什么消息--all
指示git
搜索所有分支
分支位于每个结果第一行中的提交哈希值旁边。如果该命令返回提交,则表示该提交来自您的 Cloud Composer 版本。此外,如果您环境中的 Airflow 版本高于该分支版本,则该提交会在您环境的 Airflow 版本中使用。
例如,如果要搜索提交消息 "Force explicit choice on GPL dependency",则命令为:
git log --source --grep="Force explicit choice on GPL dependency" --all
如果有匹配的提交,则结果将如下所示(可能有多个结果)。
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
此 Operator 在我的 Composer 版本中是什么样的?
如果您不使用 providers
软件包
如果您知道特定 Operator(例如 GoogleCloudStorageCreateBucketOperator
)的文件路径,请使用 GitHub 界面或 CLI 导航到该路径。
如果您不知道其文件路径,可以使用以下命令进行搜索:
git grep GoogleCloudStorageCreateBucketOperator
输出是一个文件列表,可在其中找到字符串(在本例中为 Operator 名称)。从该列表导航到相应文件并进一步检查其内容。
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 的特定版本开始,某些 Operator 和随附的代码与 PyPI 软件包中的核心 Airflow 分开封装和发布,称为“向后移植提供程序软件包”(Airflow 1.10.x) 或“提供程序软件包”(Airflow 2.0 及更高版本)。如需详细了解 Cloud Composer 中的向后移植提供程序,请参阅 Cloud Composer 向后移植提供程序文档。
Cloud Composer 中默认安装这些软件包的特定版本。如需了解您的环境中安装的是哪个版本,请查看“适用于 Python 3 的 PyPI 软件包”版本列表的列中。
如需查看特定版本中 Operator 的代码,请执行以下操作:
GitHub 界面
- 转到上游 Airflow 代码库。
- 在页面顶部的 GitHub 搜索栏中输入要搜索的特定 Operator 的名称。
- 如果返回多个文件,请点击路径以
airflow/providers
开头的代码文件。例如,如果您搜索GoogleCloudStorageCreateBucketOperator
,请选择airflow/providers/google/cloud/operators/gcs.py
。 - 点击分支选择器,这会打开“Switch branches/tags”下拉列表。
- 点击“Tags”标签页。
- 对于
providers
软件包,请在下拉列表的搜索栏中输入以下内容,搜索提供程序的名称和版本: ,其中providers-PROVIDER_NAME/PROVIDER_VERSION
PROVIDER_NAME
是提供程序的名称,PROVIDER_VERSION
是要查找的版本的名称。例如,如果您想查看apache-airflow-providers-google
软件包的版本4.0.0
,应搜索providers-google/4.0.0
。 - 对于
backport-providers
软件包,请在下拉列表的搜索栏中搜索 。例如,如果您想查看backport-providers-PROVIDER_VERSION
apache-airflow-backport-providers-google
软件包的版本2021.3.3
,则需要搜索backport-providers-2021.3.3
。 - 点击与您的查询匹配的结果。
- 屏幕上的代码就是您的 Operator 版本中运行的代码。您还可以点击 History 查看到目前为止的提交历史记录。
git CLI
- 克隆上游 Airflow 代码库。
- 对于
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
。 - 对于
backport-providers
软件包,请运行以下命令 。例如,如果要查看git checkout backport-providers-PROVIDER_VERSION
apache-airflow-backport-providers-google
软件包的版本2021.3.3
,则运行git checkout backport-providers-2021.3.3
。
然后,按照如果您不使用 providers
软件包中的说明进行操作