diff --git a/.circleci/config.yml b/.circleci/config.yml index c8dc8657..e188b889 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -874,7 +874,8 @@ workflows: name: build-2.0.0-buster airflow_version: 2.0.0 distribution_name: buster - dev_build: false + dev_build: true + extra_args: "--build-arg VERSION=$(curl https://pip.astronomer.io/simple/astronomer-certified/latest-2.0.0.build)" requires: - Need-Approval-2.0.0 - static-checks @@ -893,8 +894,8 @@ workflows: - push: name: push-2.0.0-buster tag: "2.0.0-buster" - dev_build: false - extra_tags: "2.0.0-buster-${CIRCLE_BUILD_NUM},2.0.0-7-buster" + dev_build: true + extra_tags: "2.0.0-buster-${CIRCLE_BUILD_NUM},2.0.0-8.dev-buster" context: - quay.io - docker.io @@ -908,8 +909,8 @@ workflows: - push: name: push-2.0.0-buster-onbuild tag: "2.0.0-buster-onbuild" - dev_build: false - extra_tags: "2.0.0-buster-onbuild-${CIRCLE_BUILD_NUM},2.0.0-7-buster-onbuild" + dev_build: true + extra_tags: "2.0.0-buster-onbuild-${CIRCLE_BUILD_NUM},2.0.0-8.dev-buster-onbuild" context: - quay.io - docker.io @@ -1001,7 +1002,8 @@ workflows: name: build-2.0.2-buster airflow_version: 2.0.2 distribution_name: buster - dev_build: false + dev_build: true + extra_args: "--build-arg VERSION=$(curl https://pip.astronomer.io/simple/astronomer-certified/latest-2.0.2.build)" requires: - Need-Approval-2.0.2 - static-checks @@ -1020,8 +1022,8 @@ workflows: - push: name: push-2.0.2-buster tag: "2.0.2-buster" - dev_build: false - extra_tags: "2.0.2-buster-${CIRCLE_BUILD_NUM},2.0.2-3-buster" + dev_build: true + extra_tags: "2.0.2-buster-${CIRCLE_BUILD_NUM},2.0.2-4.dev-buster" context: - quay.io - docker.io @@ -1035,8 +1037,8 @@ workflows: - push: name: push-2.0.2-buster-onbuild tag: "2.0.2-buster-onbuild" - dev_build: false - extra_tags: "2.0.2-buster-onbuild-${CIRCLE_BUILD_NUM},2.0.2-3-buster-onbuild" + dev_build: true + extra_tags: "2.0.2-buster-onbuild-${CIRCLE_BUILD_NUM},2.0.2-4.dev-buster-onbuild" context: - quay.io - docker.io @@ -1313,6 +1315,102 @@ workflows: only: - master jobs: + - build: + name: build-2.0.0-buster + airflow_version: 2.0.0 + distribution_name: buster + dev_build: true + extra_args: "--build-arg VERSION=$(curl https://pip.astronomer.io/simple/astronomer-certified/latest-2.0.0.build)" + - scan-trivy: + name: scan-trivy-2.0.0-buster-onbuild + airflow_version: 2.0.0 + distribution: buster + distribution_name: buster-onbuild + requires: + - build-2.0.0-buster + - test: + name: test-2.0.0-buster-images + tag: "2.0.0-buster" + requires: + - build-2.0.0-buster + - push: + name: push-2.0.0-buster + tag: "2.0.0-buster" + dev_build: true + extra_tags: "2.0.0-buster-${CIRCLE_BUILD_NUM}" + context: + - quay.io + - docker.io + requires: + - scan-trivy-2.0.0-buster-onbuild + - test-2.0.0-buster-images + filters: + branches: + only: + - master + - push: + name: push-2.0.0-buster-onbuild + tag: "2.0.0-buster-onbuild" + dev_build: true + extra_tags: "2.0.0-buster-onbuild-${CIRCLE_BUILD_NUM},2.0.0-8.dev-buster-onbuild" + context: + - quay.io + - docker.io + requires: + - scan-trivy-2.0.0-buster-onbuild + - test-2.0.0-buster-images + filters: + branches: + only: + - master + - build: + name: build-2.0.2-buster + airflow_version: 2.0.2 + distribution_name: buster + dev_build: true + extra_args: "--build-arg VERSION=$(curl https://pip.astronomer.io/simple/astronomer-certified/latest-2.0.2.build)" + - scan-trivy: + name: scan-trivy-2.0.2-buster-onbuild + airflow_version: 2.0.2 + distribution: buster + distribution_name: buster-onbuild + requires: + - build-2.0.2-buster + - test: + name: test-2.0.2-buster-images + tag: "2.0.2-buster" + requires: + - build-2.0.2-buster + - push: + name: push-2.0.2-buster + tag: "2.0.2-buster" + dev_build: true + extra_tags: "2.0.2-buster-${CIRCLE_BUILD_NUM}" + context: + - quay.io + - docker.io + requires: + - scan-trivy-2.0.2-buster-onbuild + - test-2.0.2-buster-images + filters: + branches: + only: + - master + - push: + name: push-2.0.2-buster-onbuild + tag: "2.0.2-buster-onbuild" + dev_build: true + extra_tags: "2.0.2-buster-onbuild-${CIRCLE_BUILD_NUM},2.0.2-4.dev-buster-onbuild" + context: + - quay.io + - docker.io + requires: + - scan-trivy-2.0.2-buster-onbuild + - test-2.0.2-buster-images + filters: + branches: + only: + - master - build: name: build-2.1.0-buster airflow_version: 2.1.0 diff --git a/.circleci/generate_circleci_config.py b/.circleci/generate_circleci_config.py index 14f68950..e8b0c5c0 100755 --- a/.circleci/generate_circleci_config.py +++ b/.circleci/generate_circleci_config.py @@ -16,8 +16,8 @@ ("1.10.12-4", ["alpine3.10", "buster"]), ("1.10.14-3", ["buster"]), ("1.10.15-2", ["buster"]), - ("2.0.0-7", ["buster"]), - ("2.0.2-3", ["buster"]), + ("2.0.0-8.dev", ["buster"]), + ("2.0.2-4.dev", ["buster"]), ("2.1.0-3.dev", ["buster"]), ("2.1.1-1.dev", ["buster"]), ]) diff --git a/2.0.0/CHANGELOG.md b/2.0.0/CHANGELOG.md index 0d6b8884..2d1fa52f 100644 --- a/2.0.0/CHANGELOG.md +++ b/2.0.0/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +Astronomer Certified 2.0.0-8.dev, TBC +---------------------------------------- + +## Bugfixes + +- Avoid recursing too deep when redacting logs (#16491) ([commit](https://github.com/astronomer/airflow/commit/5a7e9ee21)) +- Switch to built-in data structures in SecretsMasker (#16424) ([commit](https://github.com/astronomer/airflow/commit/ddcb07317)) +- Don't fail to log if we can't redact something (#16118) ([commit](https://github.com/astronomer/airflow/commit/41d4f9d6c)) +- Don't show stale Serialized DAGs if they are deleted in DB (#16368) ([commit](https://github.com/astronomer/airflow/commit/df68d5c06)) +- Fix Orphaned tasks stuck in CeleryExecutor as running (#16550) ([commit](https://github.com/astronomer/airflow/commit/9c76e8f6b)) +- Redact conn secrets in webserver logs (#16579) ([commit](https://github.com/astronomer/airflow/commit/55b836b31)) +- Don't crash attempting to mask secrets in dict with non-string keys (#16601) ([commit](https://github.com/astronomer/airflow/commit/bc82a2353)) +- Exclude ``yarn.lock`` from built Python wheel file (#16577) ([commit](https://github.com/astronomer/airflow/commit/d3c5f8e2c)) +- Add `passphrase` and `private_key` to default sensitive fileld names (#16392) ([commit](https://github.com/astronomer/airflow/commit/692dc1885)) +- Dockerfile: Add constraint for installed Airflow version (#274) ([commit](https://github.com/astronomer/ap-airflow/commit/60174ec)) +- Dockerfile: Upgrade Fab Security manager to 1.6.0 (#272) ([commit](https://github.com/astronomer/ap-airflow/commit/417fd5993982e49424fb427941552d0d42ed567e)) + Astronomer Certified 2.0.0-7, 2021-06-04 ---------------------------------------- diff --git a/2.0.0/buster/Dockerfile b/2.0.0/buster/Dockerfile index dabf18d0..6a613ea9 100644 --- a/2.0.0/buster/Dockerfile +++ b/2.0.0/buster/Dockerfile @@ -110,7 +110,7 @@ RUN apt-get update \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* -ARG VERSION="2.0.0-7" +ARG VERSION="2.0.0-8.*" ARG SUBMODULES="async,azure,amazon,celery,elasticsearch,google,password,cncf.kubernetes,mysql,postgres,redis,slack,ssh,statsd,virtualenv" ARG AIRFLOW_MODULE="astronomer_certified[${SUBMODULES}]==$VERSION" ARG AIRFLOW_VERSION="2.0.0" @@ -145,7 +145,7 @@ RUN apt-get update \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* -ARG VERSION="2.0.0-7" +ARG VERSION="2.0.0-8.*" ARG AIRFLOW_VERSION="2.0.0" LABEL io.astronomer.docker.airflow.version="${AIRFLOW_VERSION}" LABEL io.astronomer.docker.ac.version="${VERSION}" diff --git a/2.0.0/buster/build-time-pip-constraints.txt b/2.0.0/buster/build-time-pip-constraints.txt index c6a38e62..f1a295cf 100644 --- a/2.0.0/buster/build-time-pip-constraints.txt +++ b/2.0.0/buster/build-time-pip-constraints.txt @@ -4,21 +4,21 @@ adal==1.2.6 aiohttp==3.7.3 alembic==1.5.4 amqp==2.6.1 -apache-airflow-providers-amazon==1.1.0 -apache-airflow-providers-celery==1.0.1 +apache-airflow-providers-amazon==1!1.1.0 +apache-airflow-providers-celery==1!1.0.1 apache-airflow-providers-cncf-kubernetes==1!1.2.1 -apache-airflow-providers-elasticsearch==1.0.4 -apache-airflow-providers-ftp==1.0.1 -apache-airflow-providers-google==1.0.0 -apache-airflow-providers-http==1.1.0 -apache-airflow-providers-imap==1.0.1 -apache-airflow-providers-microsoft-azure==1.1.0 -apache-airflow-providers-mysql==1.0.1 -apache-airflow-providers-postgres==1.0.1 -apache-airflow-providers-redis==1.0.1 -apache-airflow-providers-slack==2.0.0 -apache-airflow-providers-sqlite==1.0.1 -apache-airflow-providers-ssh==1.1.0 +apache-airflow-providers-elasticsearch==1!1.0.4 +apache-airflow-providers-ftp==1!1.0.1 +apache-airflow-providers-google==1!1.0.0 +apache-airflow-providers-http==1!1.1.0 +apache-airflow-providers-imap==1!1.0.1 +apache-airflow-providers-microsoft-azure==1!1.1.0 +apache-airflow-providers-mysql==1!1.0.1 +apache-airflow-providers-postgres==1!1.0.1 +apache-airflow-providers-redis==1!1.0.1 +apache-airflow-providers-slack==1!2.0.0 +apache-airflow-providers-sqlite==1!1.0.1 +apache-airflow-providers-ssh==1!1.1.0 apispec==3.3.2 appdirs==1.4.4 argcomplete==1.12.2 diff --git a/2.0.2/CHANGELOG.md b/2.0.2/CHANGELOG.md index 0274dbb5..1fce6bec 100644 --- a/2.0.2/CHANGELOG.md +++ b/2.0.2/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +Astronomer Certified 2.0.2-4.dev, TBC +---------------------------------------- + +### Bugfixes + +- Avoid recursing too deep when redacting logs (#16491) ([commit](https://github.com/astronomer/airflow/commit/de563e385)) +- Switch to built-in data structures in SecretsMasker (#16424) ([commit](https://github.com/astronomer/airflow/commit/523bba07e)) +- Don't fail to log if we can't redact something (#16118) ([commit](https://github.com/astronomer/airflow/commit/ae0d11995)) +- Don't show stale Serialized DAGs if they are deleted in DB (#16368) ([commit](https://github.com/astronomer/airflow/commit/c95f6d96f)) +- Fix Orphaned tasks stuck in CeleryExecutor as running (#16550) ([commit](https://github.com/astronomer/airflow/commit/d44c223c1)) +- Redact conn secrets in webserver logs (#16579) ([commit](https://github.com/astronomer/airflow/commit/836803b64)) +- Don't crash attempting to mask secrets in dict with non-string keys (#16601) ([commit](https://github.com/astronomer/airflow/commit/a1f3daf7f)) +- Fix Dag Details start date bug (#16206) ([commit](https://github.com/astronomer/airflow/commit/39ff9d198)) +- Make task ID on legend have enough width and width of line chart to be 100%. (#15915) ([commit](https://github.com/astronomer/airflow/commit/44ddad0e6)) +- Clean Markdown with dedent to respect indents (#16414) ([commit](https://github.com/astronomer/airflow/commit/19b303e27)) +- Exclude ``yarn.lock`` from built Python wheel file (#16577) ([commit](https://github.com/astronomer/airflow/commit/99d5ebd1f)) +- Add `passphrase` and `private_key` to default sensitive fileld names (#16392) ([commit](https://github.com/astronomer/airflow/commit/aba6acbda)) +- Dockerfile: Add constraint for installed Airflow version (#274) ([commit](https://github.com/astronomer/ap-airflow/commit/60174ec)) +- Dockerfile: Upgrade Fab Security manager to 1.6.0 (#272) ([commit](https://github.com/astronomer/ap-airflow/commit/417fd5993982e49424fb427941552d0d42ed567e)) + Astronomer Certified 2.0.2-3, 2021-06-03 ---------------------------------------- diff --git a/2.0.2/buster/Dockerfile b/2.0.2/buster/Dockerfile index e389551f..bc63d68c 100644 --- a/2.0.2/buster/Dockerfile +++ b/2.0.2/buster/Dockerfile @@ -110,7 +110,7 @@ RUN apt-get update \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* -ARG VERSION="2.0.2-3" +ARG VERSION="2.0.2-4.*" ARG SUBMODULES="async,azure,amazon,celery,elasticsearch,google,password,cncf.kubernetes,mysql,postgres,redis,slack,ssh,statsd,virtualenv" ARG AIRFLOW_MODULE="astronomer_certified[${SUBMODULES}]==$VERSION" ARG AIRFLOW_VERSION="2.0.2" @@ -145,7 +145,7 @@ RUN apt-get update \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* -ARG VERSION="2.0.2-3" +ARG VERSION="2.0.2-4.*" ARG AIRFLOW_VERSION="2.0.2" LABEL io.astronomer.docker.airflow.version="${AIRFLOW_VERSION}" LABEL io.astronomer.docker.ac.version="${VERSION}" diff --git a/2.0.2/buster/build-time-pip-constraints.txt b/2.0.2/buster/build-time-pip-constraints.txt index 60e77f31..9d202525 100644 --- a/2.0.2/buster/build-time-pip-constraints.txt +++ b/2.0.2/buster/build-time-pip-constraints.txt @@ -3,21 +3,21 @@ adal==1.2.7 alembic==1.5.8 amqp==2.6.1 -apache-airflow-providers-amazon==1.3.0 -apache-airflow-providers-celery==1.0.1 +apache-airflow-providers-amazon==1!1.3.0 +apache-airflow-providers-celery==1!1.0.1 apache-airflow-providers-cncf-kubernetes==1!1.2.1 -apache-airflow-providers-elasticsearch==1.0.4 -apache-airflow-providers-ftp==1.0.1 -apache-airflow-providers-google==2.2.0 -apache-airflow-providers-http==1.1.1 -apache-airflow-providers-imap==1.0.1 -apache-airflow-providers-microsoft-azure==1.3.0 -apache-airflow-providers-mysql==1.1.0 -apache-airflow-providers-postgres==1.0.1 -apache-airflow-providers-redis==1.0.1 -apache-airflow-providers-slack==3.0.0 -apache-airflow-providers-sqlite==1.0.2 -apache-airflow-providers-ssh==1.3.0 +apache-airflow-providers-elasticsearch==1!1.0.4 +apache-airflow-providers-ftp==1!1.0.1 +apache-airflow-providers-google==1!2.2.0 +apache-airflow-providers-http==1!1.1.1 +apache-airflow-providers-imap==1!1.0.1 +apache-airflow-providers-microsoft-azure==1!1.3.0 +apache-airflow-providers-mysql==1!1.1.0 +apache-airflow-providers-postgres==1!1.0.1 +apache-airflow-providers-redis==1!1.0.1 +apache-airflow-providers-slack==1!3.0.0 +apache-airflow-providers-sqlite==1!1.0.2 +apache-airflow-providers-ssh==1!1.3.0 apispec==3.3.2 appdirs==1.4.4 argcomplete==1.12.3 diff --git a/2.1.1/buster/build-time-pip-constraints.txt b/2.1.1/buster/build-time-pip-constraints.txt index 5b97c46c..ac6e06a5 100644 --- a/2.1.1/buster/build-time-pip-constraints.txt +++ b/2.1.1/buster/build-time-pip-constraints.txt @@ -43,72 +43,72 @@ alembic==1.6.2 amqp==2.6.1 analytics-python==1.2.9 ansiwrap==0.8.4 -apache-airflow-providers-airbyte==1.0.0 -apache-airflow-providers-amazon==1.4.0 -apache-airflow-providers-apache-beam==2.0.0 -apache-airflow-providers-apache-cassandra==1.0.1 -apache-airflow-providers-apache-druid==1.1.0 -apache-airflow-providers-apache-hdfs==1.0.1 -apache-airflow-providers-apache-hive==1.0.3 -apache-airflow-providers-apache-kylin==1.0.1 -apache-airflow-providers-apache-livy==1.1.0 -apache-airflow-providers-apache-pig==1.0.1 -apache-airflow-providers-apache-pinot==1.0.1 -apache-airflow-providers-apache-spark==1.0.3 -apache-airflow-providers-apache-sqoop==1.0.1 -apache-airflow-providers-celery==1.0.1 -apache-airflow-providers-cloudant==1.0.1 +apache-airflow-providers-airbyte==1!1.0.0 +apache-airflow-providers-amazon==1!1.4.0 +apache-airflow-providers-apache-beam==1!2.0.0 +apache-airflow-providers-apache-cassandra==1!1.0.1 +apache-airflow-providers-apache-druid==1!1.1.0 +apache-airflow-providers-apache-hdfs==1!1.0.1 +apache-airflow-providers-apache-hive==1!1.0.3 +apache-airflow-providers-apache-kylin==1!1.0.1 +apache-airflow-providers-apache-livy==1!1.1.0 +apache-airflow-providers-apache-pig==1!1.0.1 +apache-airflow-providers-apache-pinot==1!1.0.1 +apache-airflow-providers-apache-spark==1!1.0.3 +apache-airflow-providers-apache-sqoop==1!1.0.1 +apache-airflow-providers-celery==1!1.0.1 +apache-airflow-providers-cloudant==1!1.0.1 apache-airflow-providers-cncf-kubernetes==1!1.2.1 -apache-airflow-providers-databricks==1.0.1 -apache-airflow-providers-datadog==1.0.1 -apache-airflow-providers-dingding==1.0.2 -apache-airflow-providers-discord==1.0.1 -apache-airflow-providers-docker==1.2.0 +apache-airflow-providers-databricks==1!1.0.1 +apache-airflow-providers-datadog==1!1.0.1 +apache-airflow-providers-dingding==1!1.0.2 +apache-airflow-providers-discord==1!1.0.1 +apache-airflow-providers-docker==1!1.2.0 apache-airflow-providers-elasticsearch==1!2.0.1rc1 -apache-airflow-providers-exasol==1.1.1 -apache-airflow-providers-facebook==1.1.0 -apache-airflow-providers-ftp==1.1.0 -apache-airflow-providers-google==3.0.0 -apache-airflow-providers-grpc==1.1.0 -apache-airflow-providers-hashicorp==1.0.2 -apache-airflow-providers-http==1.1.1 -apache-airflow-providers-imap==1.0.1 -apache-airflow-providers-jdbc==1.0.1 -apache-airflow-providers-jenkins==1.1.0 -apache-airflow-providers-jira==1.0.2 -apache-airflow-providers-microsoft-azure==2.0.0 -apache-airflow-providers-microsoft-mssql==1.1.0 -apache-airflow-providers-microsoft-winrm==1.2.0 -apache-airflow-providers-mongo==1.0.1 -apache-airflow-providers-mysql==1.1.0 -apache-airflow-providers-neo4j==1.0.1 -apache-airflow-providers-odbc==1.0.1 -apache-airflow-providers-openfaas==1.1.1 -apache-airflow-providers-opsgenie==1.0.2 -apache-airflow-providers-oracle==1.1.0 -apache-airflow-providers-pagerduty==1.0.1 -apache-airflow-providers-papermill==1.0.2 -apache-airflow-providers-plexus==1.0.1 -apache-airflow-providers-postgres==1.0.2 -apache-airflow-providers-presto==1.0.2 -apache-airflow-providers-qubole==1.0.2 -apache-airflow-providers-redis==1.0.1 -apache-airflow-providers-salesforce==2.0.0 -apache-airflow-providers-samba==1.0.1 -apache-airflow-providers-segment==1.0.1 -apache-airflow-providers-sendgrid==1.0.2 -apache-airflow-providers-sftp==1.2.0 -apache-airflow-providers-singularity==1.1.0 -apache-airflow-providers-slack==3.0.0 -apache-airflow-providers-snowflake==1.3.0 -apache-airflow-providers-sqlite==1.0.2 -apache-airflow-providers-ssh==1.3.0 -apache-airflow-providers-tableau==1.0.0 -apache-airflow-providers-telegram==1.0.2 -apache-airflow-providers-trino==1.0.0 -apache-airflow-providers-vertica==1.0.1 -apache-airflow-providers-yandex==1.0.1 -apache-airflow-providers-zendesk==1.0.1 +apache-airflow-providers-exasol==1!1.1.1 +apache-airflow-providers-facebook==1!1.1.0 +apache-airflow-providers-ftp==1!1.1.0 +apache-airflow-providers-google==1!3.0.0 +apache-airflow-providers-grpc==1!1.1.0 +apache-airflow-providers-hashicorp==1!1.0.2 +apache-airflow-providers-http==1!1.1.1 +apache-airflow-providers-imap==1!1.0.1 +apache-airflow-providers-jdbc==1!1.0.1 +apache-airflow-providers-jenkins==1!1.1.0 +apache-airflow-providers-jira==1!1.0.2 +apache-airflow-providers-microsoft-azure==1!2.0.0 +apache-airflow-providers-microsoft-mssql==1!1.1.0 +apache-airflow-providers-microsoft-winrm==1!1.2.0 +apache-airflow-providers-mongo==1!1.0.1 +apache-airflow-providers-mysql==1!1.1.0 +apache-airflow-providers-neo4j==1!1.0.1 +apache-airflow-providers-odbc==1!1.0.1 +apache-airflow-providers-openfaas==1!1.1.1 +apache-airflow-providers-opsgenie==1!1.0.2 +apache-airflow-providers-oracle==1!1.1.0 +apache-airflow-providers-pagerduty==1!1.0.1 +apache-airflow-providers-papermill==1!1.0.2 +apache-airflow-providers-plexus==1!1.0.1 +apache-airflow-providers-postgres==1!1.0.2 +apache-airflow-providers-presto==1!1.0.2 +apache-airflow-providers-qubole==1!1.0.2 +apache-airflow-providers-redis==1!1.0.1 +apache-airflow-providers-salesforce==1!2.0.0 +apache-airflow-providers-samba==1!1.0.1 +apache-airflow-providers-segment==1!1.0.1 +apache-airflow-providers-sendgrid==1!1.0.2 +apache-airflow-providers-sftp==1!1.2.0 +apache-airflow-providers-singularity==1!1.1.0 +apache-airflow-providers-slack==1!3.0.0 +apache-airflow-providers-snowflake==1!1.3.0 +apache-airflow-providers-sqlite==1!1.0.2 +apache-airflow-providers-ssh==1!1.3.0 +apache-airflow-providers-tableau==1!1.0.0 +apache-airflow-providers-telegram==1!1.0.2 +apache-airflow-providers-trino==1!1.0.0 +apache-airflow-providers-vertica==1!1.0.1 +apache-airflow-providers-yandex==1!1.0.1 +apache-airflow-providers-zendesk==1!1.0.1 apache-beam==2.29.0 apipkg==1.5 apispec==3.3.2