You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by as...@apache.org on 2020/12/07 14:32:31 UTC
[airflow] branch v2-0-stable updated (5fafd98 -> 4d44faa)
This is an automated email from the ASF dual-hosted git repository.
ash pushed a change to branch v2-0-stable
in repository https://gitbox.apache.org/repos/asf/airflow.git.
from 5fafd98 Replace foreign key constraints with foreign annotation (#12603)
add 9a74ee5 Add 1.10.13 to CI, Breeze and Docs (#12652)
add 456a1c5 Restructure the extras in setup.py and described them (#12548)
add 531e006 Typo Fix: Deprecated config force_log_out_after was not used (#12661)
add 41a699a Implement reading provider information from packages/sources (#12512)
add 6b3c6ad Update setup.py to get non-conflicting set of dependencies (#12636)
add fa8af2d Enable PIP check for both CI and PROD image (#12664)
add 704e724 Make migrations using kube_resource_version idempotent (#12670)
add 944bd4c Fix packages errors summary for docs build (#12658)
add 3b138d2 Remove "@" references from constraints generattion (#12671)
add 543d88b Add example dag and system tests for azure wasb and fileshare (#12673)
add de3b1e6 Move connection guides to provider documentation packages (#12653)
add 76bcd08 Added `@apply_defaults` decorator. (#12620)
add 1c500ee Temporarily disable PROD image check until Azure Blob is fixed (#12679)
add 08bc62b Validate JSON schema files with JSON Schema (#12682)
add e4ab453 Setup.cfg change triggers full build (#12684)
add 66b5525 The Pyarrow limitation in install_requires is not needed. (#12683)
add b858683 Adds providers information to `airflow info` command (#12687)
add 64f1475 Fix typos and added missing descriptions in provider.yaml schema (#12690)
add 0a1b434 Move production deployments tips to docs/production-deployment.rst (#12686)
add 850b74b Use rich to render info and cheat-sheet command (#12689)
add 7ef9aa7 Replace pkg_resources with importlib.metadata to avoid VersionConflict errors (#12694)
add 8291fab Ensure that tasks set to up_for_retry have an end date (#12675)
add 02d9434 Don't use time.time() or timezone.utcnow() for duration calculations (#12353)
add c9d1ea5 Refactor airflow plugins command (#12697)
add 2037303 Adds support for Connection/Hook discovery from providers (#12466)
add 7e426d3 Improve wording of selective checks comments (#12701)
add e57de8c Remove now-incorrect warning about pools and multiple schedulers (#12709)
add bb00f16 Refine the DB query logics in www.views.task_stats() (#12707)
add bd90136 Move operator guides to provider documentation packages (#12681)
add 5e13c37 Remove deprecated dagbag metrics (#12695)
add 4ac66cf Deprecate BaseHook.get_connections method (#10135) (#10192)
add dee304b Add Getir to in the wild! (#12719)
add 42f0a3d Move apache-airflow docs to subdirectory (#12715)
add e4cb0ef Output of installing remaining packages is shown also on success (#12723)
add ebc8fcf Improve verification of images with PIP check (#12718)
add 91c2203 Stronger language re: SQLite (#12727)
add 027fd74 Fix static checks - #12715 (#12729)
add ac3a8bf Allow switching xcom_pickling to JSON/Pickle (#12724)
add 0451d84 Pins PIP to 20.2.4 in our Dockerfiles (#12738)
add a02e0f7 User-friendly output of Breeze and CI scripts (#12735)
add a697c58 Fix chart jobs delete policy for improved idempotency (#12646)
add da2a7d6 Added Headout to INTHEWILD (#12734)
add ae0e8f4 Move config item 'worker_precheck' from section [core] to [celery] (#12746)
add cba8d62 Refactor list rendering in commands (#12704)
add dab783f Don't let webserver run with dangerous config (#12747)
add 101da21 Optimize subclasses of DummyOperator for Scheduling (#12745)
add 03fa6ed Order broken DAG messages in UI (#12749)
add 2947e09 SlackWebhookHook use password instead of extra (#12674)
add 0400ee3 Allow using _CMD / _SECRET to set `[webserver] secret_key` config (#12742)
add 67acdbd Remove store_serialized_dags from config (#12754)
add 386f6b2 Refactor and speed up "DAG:" prefix permissions migration (#12720)
add 8f48f12 Fix typo in airflow/serialization/serialized_objects.py (#12767)
add 56f82ba Change DEBUG color to green in coloured logger (#12784)
add b62abfb Handle ParserError when dag is triggered with invalid execution_date (#12618)
add be7d867 BugFix: Editing a DAG run or Task Instance on UI causes an Error (#12770)
add d9d6daf Fix the exception that the port is empty when using db shell (#12740)
add 28e83c3 Prevent unused scrollbars from appearing in FF on Linux (#12795)
add 6b339c7 Avoid log spam & have more meaningful log when pull image in DockerOperator (#12763)
add 4da94b5 Clean noqa labels wrongly handled by black linter (#12791)
add 292118e Add documentation on AIRFLOW__{SECTION}__{KEY}_SECRET config (#12797)
add fa4fc37 Artifacts in Github Action have a short retention period (#12793)
add abf5104 Convert state arguments to ExternalTaskSensor to list (#12794)
add 1bd98cd Improve error handling in cli and introduce consistency (#12764)
add 88aa174 Add SMTP timeout and retry limit for SMTP email backend. (#12801)
add 6878a7b Add more json-schama checks + display all errors (#12805)
add 2936c13 Get airflow version from importlib.metadata rather than hard-coding (#12786)
add 71d8745 Add expandable groups in the docs build log (#12799)
add 70b1cc2 Move secret backends guides to provider docs (#12798)
add 37afe55 Fix paths to images in README.md (#12756)
add c1cd504 Add 'headers' to template_fields in HttpSensor (#12809)
add e82cf0d Dagrun object doesn't exist in the TriggerDagRunOperator (#12819)
add c85f494 Updating documentation to specify sensitive config options (#12820)
add fbb8a4a Cleanup & improvements around scheduling (#12815)
add 252b047 Configuration.getsection copes with sections that only exist in user config (#12816)
add cd66450 Add Telegram hook and operator (#11850)
add 12ce5be Fix for empty Graph View when task does not have a DAG during relationship setting (#12829)
add 3ff5a35 Add paused column to `dags list` sub-command (#12830)
add 348ceb1 Add Qliro to INTHEWILD.md (#12833)
add 6150e26 Add `-o` as short form option for `--output` in CLI (#12831)
add 1dcd3e1 Add support for extra links coming from the providers (#12472)
add 1f4152b Fix docstring for models.Variable.get() (#12828)
add 12c1fe2 Increments number of providers detected and stop failing (#12841)
add e9b2ff5 Add notes about PIP 20.3 breaking Airflow installation (#12840)
add df9493c Add sensors section to describe different modes of sensors (#12803)
add 37b2679 Make `airflow --help` run five times quicker (#12836)
add 4a02e0a Don't emit first_task_scheduling_delay metric for only-once dags (#12835)
add 1257b5c Fix doc preview error in editor for google operators doc (#10962)
add 3f24d0e Updated UPGRADING TO 2.0 guide based on new releases (#12847)
add c960a9f Fix Commands for Publishing constraints (#12800)
add 82dfa5f Build normal/backport providers based on correct list (#12848)
add 537aba7 Add conditional version retrieval from setup. (#12853)
add 3d2ad30 Add missing crypto and s3 extras (#12850)
add 490a01b Quarantine test TestSchedulerJob.test_scheduler_task_start_date (#12860)
add a64997b Added reference to 2.0 CLI commands in 1.10.14 (#12864)
add 75d8ff9 Mark required fields in Forms as required (#12856)
add c045ff3 Store per-task TIDeps in serialized blob (#12858)
add ed1825c Production images on CI are now built from packages (#12685)
add 298c88a Fix command for verifying signature (#12869)
add a00f250 Change the format for sha512 sum for releases (#12867)
add 3663d15 Fix links to moved production-deployment file (#12854)
add a878959 Remove old option - git_password from sensitive_config_values (#12821)
add a70cace Don't show "Access deined" message on login page (#12846)
add 7cfd240 Add start_date and end_date to DagRun View in UI (#12871)
add 5d328a2 Show DAG serialization errors in the UI. (#12866)
add 4d44faa Adds airflow as viable docker command in official image (#12878)
No new revisions were added by this update.
Summary of changes:
.dockerignore | 3 +-
.github/workflows/build-images-workflow-run.yml | 6 +-
.github/workflows/ci.yml | 111 ++++++++-
.github/workflows/delete_old_artifacts.yml | 31 ---
.../workflows/label_when_reviewed_workflow_run.yml | 24 +-
.github/workflows/scheduled_quarantined.yml | 3 +-
.pre-commit-config.yaml | 60 ++++-
BREEZE.rst | 252 +++++++++++++++-----
CI.rst | 14 +-
CONTRIBUTING.rst | 84 ++++++-
Dockerfile | 28 ++-
Dockerfile.ci | 24 +-
IMAGES.rst | 61 +++--
INSTALL | 23 +-
INTHEWILD.md | 3 +
LOCAL_VIRTUALENV.rst | 44 ++++
README.md | 37 +--
STATIC_CODE_CHECKS.rst | 4 +-
TESTING.rst | 54 ++++-
UPDATING.md | 64 +++++
UPGRADING_TO_2.0.md | 87 +++++--
airflow/api_connexion/schemas/dag_run_schema.py | 11 +-
airflow/cli/cli_parser.py | 66 +++++-
airflow/cli/commands/celery_command.py | 5 +-
airflow/cli/commands/cheat_sheet_command.py | 46 ++--
airflow/cli/commands/config_command.py | 7 +-
airflow/cli/commands/connection_command.py | 126 ++++------
airflow/cli/commands/dag_command.py | 105 ++++----
airflow/cli/commands/db_command.py | 6 +-
airflow/cli/commands/info_command.py | 221 ++++++++---------
airflow/cli/commands/kubernetes_command.py | 2 +-
airflow/cli/commands/plugins_command.py | 75 ++++--
airflow/cli/commands/pool_command.py | 55 +++--
airflow/cli/commands/provider_command.py | 85 +++++++
airflow/cli/commands/role_command.py | 13 +-
airflow/cli/commands/task_command.py | 70 +++---
airflow/cli/commands/user_command.py | 48 ++--
airflow/cli/commands/variable_command.py | 16 +-
airflow/cli/commands/webserver_command.py | 25 +-
airflow/cli/simple_table.py | 105 ++++++++
airflow/config_templates/config.yml | 43 ++--
airflow/config_templates/default_airflow.cfg | 13 +-
airflow/config_templates/default_test.cfg | 4 +-
airflow/configuration.py | 18 +-
airflow/exceptions.py | 4 +
airflow/hooks/base_hook.py | 11 +-
airflow/jobs/scheduler_job.py | 68 +++---
...7a1ff4_add_kubernetes_resource_checkpointing.py | 40 ++--
.../849da589634d_prefix_dag_permissions.py | 205 ++++++++++------
.../bef4f3d11e8b_drop_kuberesourceversion_and_.py | 21 +-
airflow/models/baseoperator.py | 30 ++-
airflow/models/connection.py | 81 +------
airflow/models/dag.py | 2 +-
airflow/models/dagbag.py | 70 +++---
airflow/models/dagrun.py | 86 +++----
airflow/models/taskinstance.py | 81 +++----
airflow/models/variable.py | 2 +-
airflow/models/xcom.py | 5 +-
airflow/operators/dagrun_operator.py | 2 +
airflow/operators/dummy_operator.py | 1 +
airflow/plugins_manager.py | 56 ++---
airflow/provider.yaml.schema.json | 34 ++-
airflow/providers/amazon/aws/hooks/base_aws.py | 2 +-
airflow/providers/amazon/aws/hooks/sagemaker.py | 6 +-
airflow/providers/amazon/aws/operators/datasync.py | 2 +-
airflow/providers/amazon/aws/operators/ecs.py | 2 +-
airflow/providers/amazon/aws/operators/glacier.py | 2 +-
airflow/providers/amazon/aws/sensors/glacier.py | 2 +-
.../amazon/aws/sensors/sagemaker_training.py | 2 +-
.../amazon/aws/transfers/glacier_to_gcs.py | 2 +-
.../amazon/aws/transfers/imap_attachment_to_s3.py | 2 +-
.../amazon/aws/transfers/s3_to_redshift.py | 2 +-
airflow/providers/amazon/provider.yaml | 16 +-
.../providers/apache/cassandra/hooks/cassandra.py | 6 +-
airflow/providers/apache/cassandra/provider.yaml | 5 +-
.../providers/apache/cassandra/sensors/record.py | 2 +-
.../providers/apache/cassandra/sensors/table.py | 2 +-
airflow/providers/apache/hive/hooks/hive.py | 7 +-
airflow/providers/apache/hive/provider.yaml | 4 +
.../providers/apache/kylin/operators/kylin_cube.py | 5 +-
airflow/providers/apache/pig/hooks/pig.py | 6 +-
airflow/providers/apache/pig/provider.yaml | 4 +
.../providers/apache/spark/operators/spark_jdbc.py | 2 +-
.../providers/apache/spark/operators/spark_sql.py | 2 +-
.../apache/spark/operators/spark_submit.py | 2 +-
airflow/providers/apache/spark/provider.yaml | 2 +-
airflow/providers/cloudant/hooks/cloudant.py | 6 +-
airflow/providers/cloudant/provider.yaml | 3 +
.../providers/cncf/kubernetes/hooks/kubernetes.py | 8 +-
.../cncf/kubernetes/operators/kubernetes_pod.py | 2 +-
airflow/providers/cncf/kubernetes/provider.yaml | 5 +-
.../providers/databricks/operators/databricks.py | 2 +-
airflow/providers/databricks/provider.yaml | 2 +-
airflow/providers/dingding/provider.yaml | 2 +-
airflow/providers/discord/README.md | 1 +
airflow/providers/docker/hooks/docker.py | 6 +-
airflow/providers/docker/operators/docker.py | 13 +-
airflow/providers/docker/provider.yaml | 3 +
.../providers/elasticsearch/hooks/elasticsearch.py | 1 +
airflow/providers/elasticsearch/provider.yaml | 3 +
airflow/providers/exasol/hooks/exasol.py | 1 +
airflow/providers/exasol/provider.yaml | 3 +
airflow/providers/google/cloud/hooks/bigquery.py | 4 +-
airflow/providers/google/cloud/hooks/cloud_sql.py | 7 +-
.../cloud/hooks/cloud_storage_transfer_service.py | 4 +-
.../providers/google/cloud/hooks/compute_ssh.py | 4 +
airflow/providers/google/cloud/hooks/dataprep.py | 6 +-
.../providers/google/cloud/operators/bigquery.py | 1 +
airflow/providers/google/provider.yaml | 11 +
airflow/providers/grpc/hooks/grpc.py | 6 +-
airflow/providers/grpc/provider.yaml | 3 +
airflow/providers/http/operators/http.py | 2 +-
airflow/providers/http/provider.yaml | 2 +-
airflow/providers/http/sensors/http.py | 4 +-
airflow/providers/imap/hooks/imap.py | 6 +-
airflow/providers/imap/provider.yaml | 3 +
airflow/providers/jdbc/hooks/jdbc.py | 1 +
airflow/providers/jdbc/operators/jdbc.py | 2 +-
airflow/providers/jdbc/provider.yaml | 5 +-
airflow/providers/jira/hooks/jira.py | 6 +-
airflow/providers/jira/provider.yaml | 3 +
.../azure/example_dags/example_file_to_wasb.py | 39 ++-
.../azure/example_dags/example_fileshare.py | 47 ++++
.../providers/microsoft/azure/hooks/azure_batch.py | 6 +-
.../microsoft/azure/hooks/azure_cosmos.py | 6 +-
.../microsoft/azure/hooks/azure_data_lake.py | 6 +-
airflow/providers/microsoft/azure/hooks/wasb.py | 18 +-
airflow/providers/microsoft/azure/provider.yaml | 10 +-
.../microsoft/azure/transfers/azure_blob_to_gcs.py | 2 +-
.../microsoft/azure/transfers/local_to_adls.py | 2 +-
airflow/providers/microsoft/mssql/hooks/mssql.py | 12 +-
airflow/providers/microsoft/mssql/provider.yaml | 3 +
airflow/providers/mongo/hooks/mongo.py | 4 +-
airflow/providers/mongo/provider.yaml | 3 +
airflow/providers/mysql/hooks/mysql.py | 1 +
airflow/providers/mysql/operators/mysql.py | 2 +-
airflow/providers/mysql/provider.yaml | 5 +-
airflow/providers/odbc/hooks/odbc.py | 3 +-
airflow/providers/odbc/provider.yaml | 3 +
airflow/providers/oracle/hooks/oracle.py | 1 +
airflow/providers/oracle/provider.yaml | 5 +
airflow/providers/papermill/provider.yaml | 2 +-
airflow/providers/postgres/hooks/postgres.py | 1 +
airflow/providers/postgres/provider.yaml | 3 +
airflow/providers/presto/hooks/presto.py | 1 +
airflow/providers/presto/provider.yaml | 3 +
airflow/providers/qubole/provider.yaml | 3 +
airflow/providers/redis/hooks/redis.py | 6 +-
airflow/providers/redis/provider.yaml | 3 +
airflow/providers/salesforce/hooks/tableau.py | 6 +-
airflow/providers/salesforce/provider.yaml | 3 +
airflow/providers/slack/hooks/slack_webhook.py | 18 +-
airflow/providers/snowflake/hooks/snowflake.py | 1 +
airflow/providers/snowflake/operators/snowflake.py | 2 +-
airflow/providers/snowflake/provider.yaml | 7 +-
.../snowflake/transfers/s3_to_snowflake.py | 2 +-
.../snowflake/transfers/snowflake_to_slack.py | 2 +-
airflow/providers/sqlite/hooks/sqlite.py | 1 +
airflow/providers/sqlite/provider.yaml | 3 +
airflow/providers/telegram/README.md | 59 +++++
.../providers/telegram}/__init__.py | 0
.../providers/telegram/example_dags}/__init__.py | 0
.../example_dags/example_telegram.py} | 49 ++--
.../providers/telegram/hooks}/__init__.py | 0
airflow/providers/telegram/hooks/telegram.py | 152 ++++++++++++
.../providers/telegram/operators}/__init__.py | 0
airflow/providers/telegram/operators/telegram.py | 84 +++++++
.../providers/{dingding => telegram}/provider.yaml | 23 +-
airflow/providers/vertica/hooks/vertica.py | 1 +
airflow/providers/vertica/provider.yaml | 3 +
airflow/providers/yandex/provider.yaml | 2 +-
airflow/providers_manager.py | 253 +++++++++++++++++---
airflow/secrets/base_secrets.py | 25 +-
airflow/secrets/local_filesystem.py | 25 +-
airflow/secrets/metastore.py | 24 +-
airflow/sensors/base_sensor_operator.py | 47 ++--
airflow/sensors/external_task_sensor.py | 18 +-
airflow/sensors/smart_sensor_operator.py | 17 +-
airflow/serialization/json_schema.py | 1 -
airflow/serialization/schema.json | 7 +
airflow/serialization/serialized_objects.py | 189 ++++++++++-----
airflow/settings.py | 6 +-
airflow/stats.py | 100 ++++++--
airflow/utils/cli.py | 33 ++-
airflow/utils/dag_processing.py | 22 +-
airflow/utils/email.py | 35 ++-
.../dummy_operator.py => utils/entry_points.py} | 29 +--
airflow/utils/log/colored_log.py | 2 +-
airflow/utils/log/file_task_handler.py | 8 +-
airflow/utils/orm_event_handlers.py | 4 +-
airflow/version.py | 18 +-
airflow/www/forms.py | 67 +++++-
airflow/www/static/css/main.css | 2 +-
airflow/www/templates/appbuilder/flash.html | 11 +-
airflow/www/templates/appbuilder/navbar_menu.html | 5 +-
airflow/www/utils.py | 4 +-
airflow/www/views.py | 65 +++--
airflow/www/widgets.py | 26 +-
breeze | 212 +++++++++++------
breeze-complete | 15 +-
chart/templates/create-user-job.yaml | 2 +-
chart/templates/migrate-database-job.yaml | 2 +-
dev/PROVIDER_PACKAGE_DETAILS.md | 24 +-
dev/README.md | 2 -
dev/README_RELEASE_AIRFLOW.md | 14 +-
dev/README_RELEASE_PROVIDER_PACKAGES.md | 30 +--
dev/provider_packages/MANIFEST_TEMPLATE.in.jinja2 | 2 -
.../PROVIDER_README_TEMPLATE.md.jinja2 | 8 +
dev/provider_packages/README.md | 23 +-
dev/provider_packages/SETUP_TEMPLATE.cfg.jinja2 | 4 +
dev/provider_packages/SETUP_TEMPLATE.py.jinja2 | 13 -
dev/provider_packages/build_source_package.sh | 6 +-
.../enter_breeze_provider_package_tests.sh | 2 -
.../get_provider_info_TEMPLATE.py.jinja2 | 6 +-
dev/provider_packages/prepare_provider_packages.py | 66 ++++--
dev/sign.sh | 2 +-
docker-context-files/README.md | 2 +-
docs/README.rst | 6 -
.../connections}/aws.rst | 0
.../img/aws-web-identity-federation-gcp.png | Bin
docs/apache-airflow-providers-amazon/index.rst | 8 +
.../operators}/_partials/prerequisite_tasks.rst | 4 +-
.../operators}/datasync.rst | 12 +-
.../operators}/ecs.rst | 2 +-
.../operators}/emr.rst | 6 +-
.../operators}/glacier.rst | 4 +-
.../operators}/google_api_to_s3_transfer.rst | 16 +-
.../operators}/imap_attachment_to_s3.rst | 4 +-
.../operators}/index.rst | 5 +-
.../operators}/s3_to_redshift.rst | 4 +-
.../operators}/transfer/glacier_to_gcs.rst | 2 +-
.../operators}/transfer/index.rst | 0
docs/apache-airflow-providers-amazon/redirects.txt | 1 +
.../secrets-backends/aws-secrets-manaager.rst} | 0
.../secrets-backends/aws-ssm-parameter-store.rst} | 0
.../secrets-backends}/index.rst | 5 +-
.../connections}/cassandra.rst | 0
.../index.rst | 7 +
.../operators.rst} | 6 +-
.../redirects.txt | 1 +
.../connections}/spark.rst | 0
.../index.rst | 7 +
.../operators.rst} | 8 +-
.../redirects.txt | 1 +
.../connections}/kubernetes.rst | 0
.../index.rst | 7 +
.../operators.rst} | 8 +-
.../redirects.txt | 1 +
docs/apache-airflow-providers-databricks/index.rst | 6 +
.../operators.rst} | 4 +-
docs/apache-airflow-providers-dingding/index.rst | 6 +
.../operators.rst} | 8 +-
.../operators/ads.rst | 2 +-
.../operators/cloud/automl.rst | 2 +-
.../operators/cloud/bigquery.rst | 2 +-
.../operators/cloud/bigquery_dts.rst | 2 +-
.../operators/cloud/bigtable.rst | 2 +-
.../operators/cloud/cloud_build.rst | 2 +-
.../operators/cloud/cloud_memorystore.rst | 2 +-
.../operators/cloud/cloud_sql.rst | 2 +-
.../cloud/cloud_storage_transfer_service.rst | 4 +-
.../operators/cloud/compute.rst | 2 +-
.../operators/cloud/data_loss_prevention.rst | 2 +-
.../operators/cloud/datacatalog.rst | 2 +-
.../operators/cloud/datafusion.rst | 2 +-
.../operators/cloud/dataprep.rst | 4 +-
.../operators/cloud/dataproc.rst | 2 +-
.../operators/cloud/datastore.rst | 2 +-
.../operators/cloud/functions.rst | 2 +-
.../operators/cloud/gcs.rst | 2 +-
.../operators/cloud/kubernetes_engine.rst | 2 +-
.../operators/cloud/life_sciences.rst | 2 +-
.../operators/cloud/natural_language.rst | 2 +-
.../operators/cloud/pubsub.rst | 2 +-
.../operators/cloud/spanner.rst | 2 +-
.../operators/cloud/speech_to_text.rst | 2 +-
.../operators/cloud/stackdriver.rst | 2 +-
.../operators/cloud/text_to_speech.rst | 2 +-
.../operators/cloud/translate.rst | 2 +-
.../operators/cloud/translate_speech.rst | 2 +-
.../operators/cloud/video_intelligence.rst | 19 +-
.../operators/cloud/vision.rst | 2 +-
.../operators/firebase/firestore.rst | 2 +-
.../operators/marketing_platform/analytics.rst | 2 +-
.../marketing_platform/campaign_manager.rst | 2 +-
.../operators/marketing_platform/display_video.rst | 2 +-
.../operators/marketing_platform/search_ads.rst | 2 +-
.../operators/suite/sheets.rst | 2 +-
.../operators/transfer/facebook_ads_to_gcs.rst | 2 +-
.../operators/transfer/gcs_to_gcs.rst | 2 +-
.../operators/transfer/gcs_to_gdrive.rst | 2 +-
.../operators/transfer/gcs_to_local.rst | 2 +-
.../operators/transfer/gcs_to_sftp.rst | 2 +-
.../operators/transfer/gcs_to_sheets.rst | 2 +-
.../operators/transfer/local_to_gcs.rst | 2 +-
.../operators/transfer/sftp_to_gcs.rst | 2 +-
.../operators/transfer/sheets_to_gcs.rst | 2 +-
docs/apache-airflow-providers-google/redirects.txt | 2 +
.../connections}/grpc.rst | 0
docs/apache-airflow-providers-grpc/index.rst | 6 +
docs/apache-airflow-providers-grpc/redirects.txt | 1 +
docs/apache-airflow-providers-hashicorp/index.rst | 6 +
.../redirects.txt | 1 +
.../secrets-backends/hashicorp-vault.rst} | 0
docs/apache-airflow-providers-http/index.rst | 6 +
.../operators.rst} | 15 +-
.../connections}/jdbc.rst | 0
docs/apache-airflow-providers-jdbc/index.rst | 12 +
.../operators.rst} | 6 +-
docs/apache-airflow-providers-jdbc/redirects.txt | 1 +
.../connections}/azure.rst | 0
.../index.rst | 8 +
.../operators}/_partials/prerequisite_tasks.rst | 4 +-
.../operators/azure_blob_to_gcs.rst} | 4 +-
.../operators}/index.rst | 4 +-
.../operators}/local_to_adls.rst | 4 +-
.../redirects.txt | 2 +
.../secrets-backends/azure-key-vault.rst} | 0
.../connections}/mysql.rst | 0
docs/apache-airflow-providers-mysql/index.rst | 7 +
.../operators.rst} | 6 +-
docs/apache-airflow-providers-mysql/redirects.txt | 1 +
.../connections}/odbc.rst | 0
docs/apache-airflow-providers-odbc/index.rst | 6 +
docs/apache-airflow-providers-odbc/redirects.txt | 1 +
.../connections}/oracle.rst | 0
docs/apache-airflow-providers-oracle/index.rst | 6 +
docs/apache-airflow-providers-papermill/index.rst | 6 +
.../operators.rst} | 2 +-
.../connections}/postgres.rst | 0
docs/apache-airflow-providers-postgres/index.rst | 6 +
.../redirects.txt | 1 +
.../connections}/salesforce.rst | 0
docs/apache-airflow-providers-salesforce/index.rst | 6 +
.../redirects.txt | 1 +
docs/apache-airflow-providers-snowflake/index.rst | 6 +
.../operators}/index.rst | 7 +-
.../operators/s3_to_snowflake.rst | 42 ++++
.../operators/snowflake.rst} | 45 ++--
.../operators/snowflake_to_slack.rst | 52 ++++
.../connections}/ssh.rst | 0
docs/apache-airflow-providers-ssh/index.rst | 6 +
.../index.rst | 12 +-
.../operators.rst | 59 +++++
.../connections}/yandexcloud.rst | 0
docs/apache-airflow-providers-yandex/index.rst | 7 +
.../operators.rst} | 0
docs/{ => apache-airflow}/backport-providers.rst | 0
docs/{ => apache-airflow}/best-practices.rst | 102 +-------
docs/{ => apache-airflow}/changelog.rst | 2 +-
.../cli-and-env-variables-ref.rst | 20 ++
docs/{ => apache-airflow}/concepts.rst | 102 ++++++--
docs/{ => apache-airflow}/configurations-ref.rst | 9 +
docs/{ => apache-airflow}/dag-run.rst | 0
docs/{ => apache-airflow}/dag-serialization.rst | 0
docs/{ => apache-airflow}/executor/celery.rst | 0
.../executor/celery_kubernetes.rst | 0
docs/{ => apache-airflow}/executor/dask.rst | 0
docs/{ => apache-airflow}/executor/debug.rst | 0
docs/{ => apache-airflow}/executor/index.rst | 0
docs/{ => apache-airflow}/executor/kubernetes.rst | 12 +-
docs/{ => apache-airflow}/executor/local.rst | 0
docs/{ => apache-airflow}/executor/sequential.rst | 0
docs/{ => apache-airflow}/extra-packages-ref.rst | 174 +++++++++-----
docs/{ => apache-airflow}/faq.rst | 0
docs/{ => apache-airflow}/howto/add-dag-tags.rst | 0
.../howto/connection.rst} | 15 +-
.../{ => apache-airflow}/howto/custom-operator.rst | 2 +-
.../howto/customize-state-colors-ui.rst | 0
.../howto/define_extra_link.rst | 0
docs/{ => apache-airflow}/howto/email-config.rst | 0
docs/{ => apache-airflow}/howto/index.rst | 2 +-
.../howto/initialize-database.rst | 0
docs/{ => apache-airflow}/howto/operator/bash.rst | 4 +-
.../howto/operator/external_task_sensor.rst | 4 +-
docs/{ => apache-airflow}/howto/operator/index.rst | 14 +-
.../{ => apache-airflow}/howto/operator/python.rst | 6 +-
.../howto/run-behind-proxy.rst | 0
.../howto/run-with-systemd.rst | 0
.../howto/run-with-upstart.rst | 0
docs/{ => apache-airflow}/howto/set-config.rst | 2 +-
.../{ => apache-airflow}/howto/use-test-config.rst | 0
docs/{ => apache-airflow}/howto/variable.rst | 0
docs/{ => apache-airflow}/img/add-dag-tags.png | Bin
docs/{ => apache-airflow}/img/add-role.png | Bin
docs/{ => apache-airflow}/img/airflow.gif | Bin
docs/{ => apache-airflow}/img/apache.jpg | Bin
docs/{ => apache-airflow}/img/arch-diag-basic.png | Bin
.../img/arch-diag-kubernetes.png | Bin
.../img/arch-diag-kubernetes2.png | Bin
.../{ => apache-airflow}/img/arch-diag-logging.png | Bin
.../img/aws-web-identity-federation-gcp.png | Bin
docs/{ => apache-airflow}/img/branch_note.png | Bin
.../img/branch_with_trigger.png | Bin
.../img/branch_without_trigger.png | Bin
.../img/change-ui-colors/dags-page-new.png | Bin
.../img/change-ui-colors/dags-page-old.png | Bin
.../img/change-ui-colors/graph-view-new.png | Bin
.../img/change-ui-colors/graph-view-old.png | Bin
.../img/change-ui-colors/tree-view-new.png | Bin
.../img/change-ui-colors/tree-view-old.png | Bin
docs/{ => apache-airflow}/img/cli_completion.gif | Bin
docs/{ => apache-airflow}/img/code.png | Bin
.../{ => apache-airflow}/img/connection_create.png | Bin
docs/{ => apache-airflow}/img/connection_edit.png | Bin
docs/{ => apache-airflow}/img/connections.png | Bin
docs/{ => apache-airflow}/img/context.png | Bin
.../{ => apache-airflow}/img/dag_serialization.png | Bin
docs/{ => apache-airflow}/img/dags.png | Bin
docs/{ => apache-airflow}/img/duration.png | Bin
.../img/example_passing_conf.png | Bin
docs/{ => apache-airflow}/img/gantt.png | Bin
docs/{ => apache-airflow}/img/graph.png | Bin
docs/{ => apache-airflow}/img/k8s-0-worker.jpeg | Bin
docs/{ => apache-airflow}/img/k8s-3-worker.jpeg | Bin
docs/{ => apache-airflow}/img/k8s-5-worker.jpeg | Bin
docs/{ => apache-airflow}/img/k8s-failed-pod.png | Bin
docs/{ => apache-airflow}/img/k8s-happy-path.png | Bin
.../img/latest_only_with_trigger.png | Bin
.../img/logos/airflow_64x64_emoji_transparent.png | Bin
.../img/logos/airflow_dark_bg.png | Bin
.../img/logos/airflow_transparent.png | Bin
.../img/logos/airflow_white_bg.png | Bin
docs/{ => apache-airflow}/img/logos/wordmark_1.png | Bin
docs/{ => apache-airflow}/img/logos/wordmark_1.svg | 0
docs/{ => apache-airflow}/img/logos/wordmark_2.png | Bin
docs/{ => apache-airflow}/img/logos/wordmark_2.svg | 0
docs/{ => apache-airflow}/img/nested_branching.png | Bin
docs/{ => apache-airflow}/img/new-role.png | Bin
.../img/operator_extra_link.png | Bin
.../img/run_task_on_celery_executor.png | Bin
.../img/run_task_on_celery_executor.puml | 0
docs/{ => apache-airflow}/img/scheduler_loop.jpg | Bin
.../img/smart_sensor_architecture.png | Bin
.../img/smart_sensor_single_task_execute_flow.png | Bin
docs/{ => apache-airflow}/img/subdag_after.png | Bin
docs/{ => apache-airflow}/img/subdag_before.png | Bin
docs/{ => apache-airflow}/img/subdag_zoom.png | Bin
docs/{ => apache-airflow}/img/task_group.gif | Bin
.../img/task_lifecycle_diagram.png | Bin
.../img/task_manual_vs_scheduled.png | Bin
docs/{ => apache-airflow}/img/task_stages.png | Bin
docs/{ => apache-airflow}/img/tree.png | Bin
.../img/ui-timezone-chooser.png | Bin
docs/{ => apache-airflow}/img/usage_cli_export.png | Bin
docs/{ => apache-airflow}/img/usage_cli_imgcat.png | Bin
docs/{ => apache-airflow}/img/variable_hidden.png | Bin
docs/{ => apache-airflow}/index.rst | 4 +-
docs/{ => apache-airflow}/installation.rst | 33 ++-
docs/{ => apache-airflow}/integration.rst | 0
docs/{ => apache-airflow}/kubernetes.rst | 2 +-
docs/{ => apache-airflow}/license.rst | 0
docs/{ => apache-airflow}/lineage.rst | 0
.../logging-monitoring/check-health.rst | 0
.../logging-monitoring/errors.rst | 0
.../logging-monitoring/index.rst | 0
.../logging-monitoring/logging-architecture.rst | 0
.../logging-monitoring/logging-tasks.rst | 0
.../logging-monitoring/metrics.rst | 2 +-
.../logging-monitoring/tracking-user-activity.rst | 0
docs/{ => apache-airflow}/macros-ref.rst | 0
docs/{ => apache-airflow}/modules_management.rst | 68 ++++--
.../operators-and-hooks-ref.rst | 0
docs/{ => apache-airflow}/plugins.rst | 0
docs/{ => apache-airflow}/privacy_notice.rst | 0
.../{ => apache-airflow}/production-deployment.rst | 194 +++++++++++----
docs/{ => apache-airflow}/project.rst | 0
.../python-api-ref.rst} | 14 +-
docs/{ => apache-airflow}/redirects.txt | 1 +
docs/{ => apache-airflow}/rest-api-ref.rst | 0
docs/{ => apache-airflow}/scheduler.rst | 0
.../security/access-control.rst | 6 +-
docs/{ => apache-airflow}/security/api.rst | 0
docs/{ => apache-airflow}/security/flower.rst | 0
docs/{ => apache-airflow}/security/index.rst | 2 +-
docs/{ => apache-airflow}/security/kerberos.rst | 0
.../security/secrets/fernet.rst | 0
.../security/secrets/index.rst | 0
.../security/secrets/secrets-backend/index.rst | 2 +-
.../local-filesystem-secrets-backend.rst | 0
docs/{ => apache-airflow}/security/webserver.rst | 0
docs/{ => apache-airflow}/security/workload.rst | 0
docs/{ => apache-airflow}/smart-sensor.rst | 0
docs/{ => apache-airflow}/stable-rest-api-ref.rst | 0
docs/{ => apache-airflow}/start.rst | 9 +
.../{ => apache-airflow}/static/exampleinclude.css | 0
docs/{ => apache-airflow}/static/jira-links.js | 0
docs/{ => apache-airflow}/templates/footer.html | 0
docs/{ => apache-airflow}/timezone.rst | 0
docs/{ => apache-airflow}/tutorial.rst | 16 +-
.../{ => apache-airflow}/tutorial_taskflow_api.rst | 18 +-
docs/{ => apache-airflow}/ui.rst | 0
docs/{ => apache-airflow}/usage-cli.rst | 37 +++
docs/build_docs.py | 56 +++--
docs/conf.py | 28 +--
docs/exts/docs_build/errors.py | 2 +-
docs/exts/docs_build/lint_checks.py | 1 -
docs/exts/redirects.py | 4 +-
docs/howto/operator/amazon/aws/index.rst | 33 ---
docs/howto/operator/snowflake.rst | 124 ----------
.../google-cloud-secret-manager-backend.rst | 207 ----------------
docs/spelling_wordlist.txt | 4 +
.../ci_build_airflow_package.sh} | 13 +-
scripts/ci/docker-compose/base.yml | 3 +-
scripts/ci/docker-compose/files.yml | 1 +
scripts/ci/docker-compose/local-prod.yml | 1 -
scripts/ci/docker-compose/local.yml | 1 -
scripts/ci/dockerfiles/presto/entrypoint.sh | 7 +-
scripts/ci/images/ci_prepare_ci_image_on_ci.sh | 1 -
scripts/ci/images/ci_prepare_prod_image_on_ci.sh | 112 +++++----
scripts/ci/images/ci_verify_ci_image.sh | 55 +++++
scripts/ci/images/ci_verify_prod_image.sh | 95 ++++++++
scripts/ci/images/ci_wait_for_all_ci_images.sh | 36 +--
scripts/ci/images/ci_wait_for_all_prod_images.sh | 38 +--
.../ci_wait_for_ci_image.sh} | 26 +-
.../ci_wait_for_prod_image.sh} | 19 +-
scripts/ci/kubernetes/ci_run_kubernetes_tests.sh | 2 +-
scripts/ci/libraries/_all_libs.sh | 2 +
.../_build_airflow_packages.sh} | 36 +--
scripts/ci/libraries/_build_images.sh | 198 +++++++++++-----
scripts/ci/libraries/_docker.env | 3 +
scripts/ci/libraries/_initialization.sh | 66 ++++--
scripts/ci/libraries/_kind.sh | 30 +--
scripts/ci/libraries/_local_mounts.sh | 1 -
scripts/ci/libraries/_md5sum.sh | 1 -
scripts/ci/libraries/_parameters.sh | 17 +-
scripts/ci/libraries/_push_pull_remove_images.sh | 82 +++++--
scripts/ci/libraries/_repeats.sh | 13 +-
scripts/ci/libraries/_runs.sh | 18 +-
scripts/ci/libraries/_sanity_checks.sh | 68 +++---
.../ci/pre_commit/pre_commit_check_pre_commits.sh | 40 ++--
.../pre_commit_check_provider_yaml_files.py | 117 +++++----
.../pre_commit/pre_commit_check_providers_init.sh | 6 +-
.../pre_commit_check_setup_extra_packages_ref.py | 19 +-
scripts/ci/pre_commit/pre_commit_json_schema.py | 164 +++++++++++++
scripts/ci/pre_commit/pre_commit_mermaid.sh | 6 +-
...sh => ci_install_and_test_provider_packages.sh} | 11 +-
...er_readme.sh => ci_prepare_provider_readmes.sh} | 0
scripts/ci/selective_ci_checks.sh | 15 +-
scripts/ci/static_checks/check_license.sh | 15 +-
scripts/ci/testing/ci_run_airflow_testing.sh | 5 +-
scripts/in_container/_in_container_script_init.sh | 6 +-
scripts/in_container/_in_container_utils.sh | 263 ++++++++++++++++-----
scripts/in_container/check_environment.sh | 9 +-
scripts/in_container/configure_environment.sh | 3 -
scripts/in_container/entrypoint_ci.sh | 62 ++++-
scripts/in_container/entrypoint_exec.sh | 3 +
scripts/in_container/prod/entrypoint_prod.sh | 22 +-
scripts/in_container/run_ci_tests.sh | 83 ++++---
scripts/in_container/run_cli_tool.sh | 20 +-
scripts/in_container/run_generate_constraints.sh | 1 +
.../run_install_and_test_provider_packages.sh | 154 ++++++++++++
.../in_container/run_prepare_provider_packages.sh | 61 +++--
.../in_container/run_prepare_provider_readme.sh | 9 +-
scripts/in_container/run_system_tests.sh | 2 +
.../run_test_package_import_all_classes.sh | 107 ---------
scripts/in_container/run_test_package_install.sh | 72 ------
setup.cfg | 7 +-
setup.py | 87 +++++--
tests/api_connexion/schemas/test_dag_run_schema.py | 7 +
tests/bats/breeze/test_breeze_complete.bats | 8 +
tests/bats/breeze/test_breeze_params.bats | 17 +-
tests/bats/in_container/test_in_container.bats | 2 +
tests/cli/commands/test_celery_command.py | 6 +-
tests/cli/commands/test_cheat_sheet_command.py | 26 +-
tests/cli/commands/test_config_command.py | 12 +-
tests/cli/commands/test_connection_command.py | 45 ++--
tests/cli/commands/test_dag_command.py | 17 +-
tests/cli/commands/test_db_command.py | 45 +++-
tests/cli/commands/test_info_command.py | 46 ++--
tests/cli/commands/test_plugins_command.py | 16 +-
tests/cli/commands/test_pool_command.py | 5 +-
tests/cli/commands/test_role_command.py | 2 +-
tests/cli/commands/test_task_command.py | 43 ++--
tests/cli/commands/test_user_command.py | 2 +-
tests/cli/commands/test_webserver_command.py | 18 +-
tests/core/test_configuration.py | 18 +-
tests/core/test_providers_manager.py | 62 ++++-
tests/dags/test_only_dummy_tasks.py | 12 +-
tests/jobs/test_scheduler_job.py | 1 +
tests/models/test_connection.py | 14 --
tests/models/test_dagbag.py | 41 +++-
tests/models/test_dagrun.py | 75 +++---
tests/models/test_taskinstance.py | 14 ++
tests/models/test_xcom.py | 30 +++
tests/operators/test_dagrun_operator.py | 30 +++
tests/plugins/test_plugins_manager.py | 74 +++---
tests/providers/amazon/aws/hooks/test_sagemaker.py | 2 +-
tests/providers/apache/hive/hooks/test_hive.py | 2 +-
.../google/cloud/operators/test_cloud_sql.py | 16 +-
tests/providers/google/suite/hooks/test_drive.py | 8 +-
.../microsoft/azure/hooks/test_fileshare_system.py | 32 +--
tests/providers/microsoft/azure/hooks/test_wasb.py | 19 +-
.../microsoft/azure/log/test_wasb_task_handler.py | 17 ++
.../azure/transfers/test_file_to_wasb_system.py | 48 ++++
tests/providers/slack/hooks/test_slack_webhook.py | 19 ++
.../telegram}/__init__.py | 0
.../telegram/hooks}/__init__.py | 0
tests/providers/telegram/hooks/test_telegram.py | 192 +++++++++++++++
.../telegram/operators}/__init__.py | 0
.../providers/telegram/operators/test_telegram.py | 149 ++++++++++++
tests/secrets/test_secrets.py | 24 +-
tests/sensors/test_base_sensor.py | 16 +-
tests/serialization/test_dag_serialization.py | 28 +++
tests/test_utils/azure_system_helpers.py | 35 +++
tests/utils/test_email.py | 127 ++++++++--
tests/utils/test_task_group.py | 17 ++
tests/www/test_views.py | 46 +---
608 files changed, 7395 insertions(+), 3675 deletions(-)
delete mode 100644 .github/workflows/delete_old_artifacts.yml
create mode 100644 airflow/cli/commands/provider_command.py
create mode 100644 airflow/cli/simple_table.py
copy tests/dags/test_only_dummy_tasks.py => airflow/providers/microsoft/azure/example_dags/example_file_to_wasb.py (54%)
create mode 100644 airflow/providers/microsoft/azure/example_dags/example_fileshare.py
create mode 100644 airflow/providers/telegram/README.md
copy {tests/www/api/experimental => airflow/providers/telegram}/__init__.py (100%)
copy {tests/www/api/experimental => airflow/providers/telegram/example_dags}/__init__.py (100%)
copy airflow/providers/{databricks/provider.yaml => telegram/example_dags/example_telegram.py} (58%)
copy {tests/www/api/experimental => airflow/providers/telegram/hooks}/__init__.py (100%)
create mode 100644 airflow/providers/telegram/hooks/telegram.py
copy {tests/www/api/experimental => airflow/providers/telegram/operators}/__init__.py (100%)
create mode 100644 airflow/providers/telegram/operators/telegram.py
copy airflow/providers/{dingding => telegram}/provider.yaml (68%)
copy airflow/{operators/dummy_operator.py => utils/entry_points.py} (56%)
copy airflow/version.py => dev/provider_packages/get_provider_info_TEMPLATE.py.jinja2 (93%)
rename docs/{howto/connection => apache-airflow-providers-amazon/connections}/aws.rst (100%)
copy docs/{ => apache-airflow-providers-amazon}/img/aws-web-identity-federation-gcp.png (100%)
rename docs/{howto/operator/amazon/aws => apache-airflow-providers-amazon/operators}/_partials/prerequisite_tasks.rst (90%)
rename docs/{howto/operator/amazon/aws => apache-airflow-providers-amazon/operators}/datasync.rst (94%)
rename docs/{howto/operator/amazon/aws => apache-airflow-providers-amazon/operators}/ecs.rst (94%)
rename docs/{howto/operator/amazon/aws => apache-airflow-providers-amazon/operators}/emr.rst (93%)
rename docs/{howto/operator/amazon/aws => apache-airflow-providers-amazon/operators}/glacier.rst (93%)
rename docs/{howto/operator/amazon/aws => apache-airflow-providers-amazon/operators}/google_api_to_s3_transfer.rst (85%)
rename docs/{howto/operator/amazon/aws => apache-airflow-providers-amazon/operators}/imap_attachment_to_s3.rst (92%)
rename docs/{howto/operator/microsoft/transfer => apache-airflow-providers-amazon/operators}/index.rst (93%)
rename docs/{howto/operator/amazon/aws => apache-airflow-providers-amazon/operators}/s3_to_redshift.rst (93%)
rename docs/{howto/operator/amazon/aws => apache-airflow-providers-amazon/operators}/transfer/glacier_to_gcs.rst (94%)
rename docs/{howto/operator/amazon/aws => apache-airflow-providers-amazon/operators}/transfer/index.rst (100%)
create mode 100644 docs/apache-airflow-providers-amazon/redirects.txt
rename docs/{security/secrets/secrets-backend/aws-secrets-manaager-backend.rst => apache-airflow-providers-amazon/secrets-backends/aws-secrets-manaager.rst} (100%)
rename docs/{security/secrets/secrets-backend/aws-ssm-parameter-store-secrets-backend.rst => apache-airflow-providers-amazon/secrets-backends/aws-ssm-parameter-store.rst} (100%)
copy docs/{howto/operator/apache => apache-airflow-providers-amazon/secrets-backends}/index.rst (96%)
rename docs/{howto/connection => apache-airflow-providers-apache-cassandra/connections}/cassandra.rst (100%)
rename docs/{howto/operator/apache/cassandra.rst => apache-airflow-providers-apache-cassandra/operators.rst} (92%)
create mode 100644 docs/apache-airflow-providers-apache-cassandra/redirects.txt
rename docs/{howto/connection => apache-airflow-providers-apache-spark/connections}/spark.rst (100%)
rename docs/{howto/operator/apache/spark.rst => apache-airflow-providers-apache-spark/operators.rst} (88%)
create mode 100644 docs/apache-airflow-providers-apache-spark/redirects.txt
rename docs/{howto/connection => apache-airflow-providers-cncf-kubernetes/connections}/kubernetes.rst (100%)
rename docs/{howto/operator/kubernetes.rst => apache-airflow-providers-cncf-kubernetes/operators.rst} (93%)
create mode 100644 docs/apache-airflow-providers-cncf-kubernetes/redirects.txt
rename docs/{howto/operator/databricks.rst => apache-airflow-providers-databricks/operators.rst} (94%)
rename docs/{howto/operator/dingding.rst => apache-airflow-providers-dingding/operators.rst} (90%)
create mode 100644 docs/apache-airflow-providers-google/redirects.txt
rename docs/{howto/connection => apache-airflow-providers-grpc/connections}/grpc.rst (100%)
create mode 100644 docs/apache-airflow-providers-grpc/redirects.txt
create mode 100644 docs/apache-airflow-providers-hashicorp/redirects.txt
rename docs/{security/secrets/secrets-backend/hashicorp-vault-secrets-backend.rst => apache-airflow-providers-hashicorp/secrets-backends/hashicorp-vault.rst} (100%)
rename docs/{howto/operator/http.rst => apache-airflow-providers-http/operators.rst} (86%)
rename docs/{howto/connection => apache-airflow-providers-jdbc/connections}/jdbc.rst (100%)
rename docs/{howto/operator/jdbc.rst => apache-airflow-providers-jdbc/operators.rst} (92%)
create mode 100644 docs/apache-airflow-providers-jdbc/redirects.txt
rename docs/{howto/connection => apache-airflow-providers-microsoft-azure/connections}/azure.rst (100%)
rename docs/{howto/operator/microsoft => apache-airflow-providers-microsoft-azure/operators}/_partials/prerequisite_tasks.rst (90%)
rename docs/{howto/operator/microsoft/transfer/blob_storage_to_gcs.rst => apache-airflow-providers-microsoft-azure/operators/azure_blob_to_gcs.rst} (94%)
rename docs/{howto/operator/microsoft => apache-airflow-providers-microsoft-azure/operators}/index.rst (97%)
rename docs/{howto/operator/microsoft/transfer => apache-airflow-providers-microsoft-azure/operators}/local_to_adls.rst (91%)
create mode 100644 docs/apache-airflow-providers-microsoft-azure/redirects.txt
rename docs/{security/secrets/secrets-backend/azure-key-vault-secrets-backend.rst => apache-airflow-providers-microsoft-azure/secrets-backends/azure-key-vault.rst} (100%)
rename docs/{howto/connection => apache-airflow-providers-mysql/connections}/mysql.rst (100%)
copy docs/{howto/operator/mysql.rst => apache-airflow-providers-mysql/operators.rst} (92%)
create mode 100644 docs/apache-airflow-providers-mysql/redirects.txt
rename docs/{howto/connection => apache-airflow-providers-odbc/connections}/odbc.rst (100%)
create mode 100644 docs/apache-airflow-providers-odbc/redirects.txt
rename docs/{howto/connection => apache-airflow-providers-oracle/connections}/oracle.rst (100%)
rename docs/{howto/operator/papermill.rst => apache-airflow-providers-papermill/operators.rst} (96%)
rename docs/{howto/connection => apache-airflow-providers-postgres/connections}/postgres.rst (100%)
create mode 100644 docs/apache-airflow-providers-postgres/redirects.txt
rename docs/{howto/connection => apache-airflow-providers-salesforce/connections}/salesforce.rst (100%)
create mode 100644 docs/apache-airflow-providers-salesforce/redirects.txt
rename docs/{howto/operator/apache => apache-airflow-providers-snowflake/operators}/index.rst (95%)
create mode 100644 docs/apache-airflow-providers-snowflake/operators/s3_to_snowflake.rst
rename docs/{howto/operator/mysql.rst => apache-airflow-providers-snowflake/operators/snowflake.rst} (50%)
create mode 100644 docs/apache-airflow-providers-snowflake/operators/snowflake_to_slack.rst
rename docs/{howto/connection => apache-airflow-providers-ssh/connections}/ssh.rst (100%)
copy docs/{apache-airflow-providers-dingding => apache-airflow-providers-telegram}/index.rst (83%)
create mode 100644 docs/apache-airflow-providers-telegram/operators.rst
rename docs/{howto/connection => apache-airflow-providers-yandex/connections}/yandexcloud.rst (100%)
rename docs/{howto/operator/yandexcloud.rst => apache-airflow-providers-yandex/operators.rst} (100%)
rename docs/{ => apache-airflow}/backport-providers.rst (100%)
rename docs/{ => apache-airflow}/best-practices.rst (67%)
rename docs/{ => apache-airflow}/changelog.rst (96%)
rename docs/{ => apache-airflow}/cli-and-env-variables-ref.rst (76%)
rename docs/{ => apache-airflow}/concepts.rst (92%)
rename docs/{ => apache-airflow}/configurations-ref.rst (86%)
rename docs/{ => apache-airflow}/dag-run.rst (100%)
rename docs/{ => apache-airflow}/dag-serialization.rst (100%)
rename docs/{ => apache-airflow}/executor/celery.rst (100%)
rename docs/{ => apache-airflow}/executor/celery_kubernetes.rst (100%)
rename docs/{ => apache-airflow}/executor/dask.rst (100%)
rename docs/{ => apache-airflow}/executor/debug.rst (100%)
rename docs/{ => apache-airflow}/executor/index.rst (100%)
rename docs/{ => apache-airflow}/executor/kubernetes.rst (95%)
rename docs/{ => apache-airflow}/executor/local.rst (100%)
rename docs/{ => apache-airflow}/executor/sequential.rst (100%)
rename docs/{ => apache-airflow}/extra-packages-ref.rst (84%)
rename docs/{ => apache-airflow}/faq.rst (100%)
rename docs/{ => apache-airflow}/howto/add-dag-tags.rst (100%)
rename docs/{howto/connection/index.rst => apache-airflow/howto/connection.rst} (98%)
rename docs/{ => apache-airflow}/howto/custom-operator.rst (99%)
rename docs/{ => apache-airflow}/howto/customize-state-colors-ui.rst (100%)
rename docs/{ => apache-airflow}/howto/define_extra_link.rst (100%)
rename docs/{ => apache-airflow}/howto/email-config.rst (100%)
rename docs/{ => apache-airflow}/howto/index.rst (98%)
rename docs/{ => apache-airflow}/howto/initialize-database.rst (100%)
rename docs/{ => apache-airflow}/howto/operator/bash.rst (96%)
rename docs/{ => apache-airflow}/howto/operator/external_task_sensor.rst (94%)
rename docs/{ => apache-airflow}/howto/operator/index.rst (83%)
rename docs/{ => apache-airflow}/howto/operator/python.rst (92%)
rename docs/{ => apache-airflow}/howto/run-behind-proxy.rst (100%)
rename docs/{ => apache-airflow}/howto/run-with-systemd.rst (100%)
rename docs/{ => apache-airflow}/howto/run-with-upstart.rst (100%)
rename docs/{ => apache-airflow}/howto/set-config.rst (98%)
rename docs/{ => apache-airflow}/howto/use-test-config.rst (100%)
rename docs/{ => apache-airflow}/howto/variable.rst (100%)
rename docs/{ => apache-airflow}/img/add-dag-tags.png (100%)
rename docs/{ => apache-airflow}/img/add-role.png (100%)
rename docs/{ => apache-airflow}/img/airflow.gif (100%)
rename docs/{ => apache-airflow}/img/apache.jpg (100%)
rename docs/{ => apache-airflow}/img/arch-diag-basic.png (100%)
rename docs/{ => apache-airflow}/img/arch-diag-kubernetes.png (100%)
rename docs/{ => apache-airflow}/img/arch-diag-kubernetes2.png (100%)
rename docs/{ => apache-airflow}/img/arch-diag-logging.png (100%)
rename docs/{ => apache-airflow}/img/aws-web-identity-federation-gcp.png (100%)
rename docs/{ => apache-airflow}/img/branch_note.png (100%)
rename docs/{ => apache-airflow}/img/branch_with_trigger.png (100%)
rename docs/{ => apache-airflow}/img/branch_without_trigger.png (100%)
rename docs/{ => apache-airflow}/img/change-ui-colors/dags-page-new.png (100%)
rename docs/{ => apache-airflow}/img/change-ui-colors/dags-page-old.png (100%)
rename docs/{ => apache-airflow}/img/change-ui-colors/graph-view-new.png (100%)
rename docs/{ => apache-airflow}/img/change-ui-colors/graph-view-old.png (100%)
rename docs/{ => apache-airflow}/img/change-ui-colors/tree-view-new.png (100%)
rename docs/{ => apache-airflow}/img/change-ui-colors/tree-view-old.png (100%)
rename docs/{ => apache-airflow}/img/cli_completion.gif (100%)
rename docs/{ => apache-airflow}/img/code.png (100%)
rename docs/{ => apache-airflow}/img/connection_create.png (100%)
rename docs/{ => apache-airflow}/img/connection_edit.png (100%)
rename docs/{ => apache-airflow}/img/connections.png (100%)
rename docs/{ => apache-airflow}/img/context.png (100%)
rename docs/{ => apache-airflow}/img/dag_serialization.png (100%)
rename docs/{ => apache-airflow}/img/dags.png (100%)
rename docs/{ => apache-airflow}/img/duration.png (100%)
rename docs/{ => apache-airflow}/img/example_passing_conf.png (100%)
rename docs/{ => apache-airflow}/img/gantt.png (100%)
rename docs/{ => apache-airflow}/img/graph.png (100%)
rename docs/{ => apache-airflow}/img/k8s-0-worker.jpeg (100%)
rename docs/{ => apache-airflow}/img/k8s-3-worker.jpeg (100%)
rename docs/{ => apache-airflow}/img/k8s-5-worker.jpeg (100%)
rename docs/{ => apache-airflow}/img/k8s-failed-pod.png (100%)
rename docs/{ => apache-airflow}/img/k8s-happy-path.png (100%)
rename docs/{ => apache-airflow}/img/latest_only_with_trigger.png (100%)
rename docs/{ => apache-airflow}/img/logos/airflow_64x64_emoji_transparent.png (100%)
rename docs/{ => apache-airflow}/img/logos/airflow_dark_bg.png (100%)
rename docs/{ => apache-airflow}/img/logos/airflow_transparent.png (100%)
rename docs/{ => apache-airflow}/img/logos/airflow_white_bg.png (100%)
rename docs/{ => apache-airflow}/img/logos/wordmark_1.png (100%)
rename docs/{ => apache-airflow}/img/logos/wordmark_1.svg (100%)
rename docs/{ => apache-airflow}/img/logos/wordmark_2.png (100%)
rename docs/{ => apache-airflow}/img/logos/wordmark_2.svg (100%)
rename docs/{ => apache-airflow}/img/nested_branching.png (100%)
rename docs/{ => apache-airflow}/img/new-role.png (100%)
rename docs/{ => apache-airflow}/img/operator_extra_link.png (100%)
rename docs/{ => apache-airflow}/img/run_task_on_celery_executor.png (100%)
rename docs/{ => apache-airflow}/img/run_task_on_celery_executor.puml (100%)
rename docs/{ => apache-airflow}/img/scheduler_loop.jpg (100%)
rename docs/{ => apache-airflow}/img/smart_sensor_architecture.png (100%)
rename docs/{ => apache-airflow}/img/smart_sensor_single_task_execute_flow.png (100%)
rename docs/{ => apache-airflow}/img/subdag_after.png (100%)
rename docs/{ => apache-airflow}/img/subdag_before.png (100%)
rename docs/{ => apache-airflow}/img/subdag_zoom.png (100%)
rename docs/{ => apache-airflow}/img/task_group.gif (100%)
rename docs/{ => apache-airflow}/img/task_lifecycle_diagram.png (100%)
rename docs/{ => apache-airflow}/img/task_manual_vs_scheduled.png (100%)
rename docs/{ => apache-airflow}/img/task_stages.png (100%)
rename docs/{ => apache-airflow}/img/tree.png (100%)
rename docs/{ => apache-airflow}/img/ui-timezone-chooser.png (100%)
rename docs/{ => apache-airflow}/img/usage_cli_export.png (100%)
rename docs/{ => apache-airflow}/img/usage_cli_imgcat.png (100%)
rename docs/{ => apache-airflow}/img/variable_hidden.png (100%)
rename docs/{ => apache-airflow}/index.rst (97%)
rename docs/{ => apache-airflow}/installation.rst (86%)
rename docs/{ => apache-airflow}/integration.rst (100%)
rename docs/{ => apache-airflow}/kubernetes.rst (94%)
rename docs/{ => apache-airflow}/license.rst (100%)
rename docs/{ => apache-airflow}/lineage.rst (100%)
rename docs/{ => apache-airflow}/logging-monitoring/check-health.rst (100%)
rename docs/{ => apache-airflow}/logging-monitoring/errors.rst (100%)
rename docs/{ => apache-airflow}/logging-monitoring/index.rst (100%)
rename docs/{ => apache-airflow}/logging-monitoring/logging-architecture.rst (100%)
rename docs/{ => apache-airflow}/logging-monitoring/logging-tasks.rst (100%)
rename docs/{ => apache-airflow}/logging-monitoring/metrics.rst (98%)
rename docs/{ => apache-airflow}/logging-monitoring/tracking-user-activity.rst (100%)
rename docs/{ => apache-airflow}/macros-ref.rst (100%)
rename docs/{ => apache-airflow}/modules_management.rst (79%)
rename docs/{ => apache-airflow}/operators-and-hooks-ref.rst (100%)
rename docs/{ => apache-airflow}/plugins.rst (100%)
rename docs/{ => apache-airflow}/privacy_notice.rst (100%)
rename docs/{ => apache-airflow}/production-deployment.rst (86%)
rename docs/{ => apache-airflow}/project.rst (100%)
rename docs/{autoapi_templates/index.rst => apache-airflow/python-api-ref.rst} (94%)
rename docs/{ => apache-airflow}/redirects.txt (99%)
rename docs/{ => apache-airflow}/rest-api-ref.rst (100%)
rename docs/{ => apache-airflow}/scheduler.rst (100%)
rename docs/{ => apache-airflow}/security/access-control.rst (99%)
rename docs/{ => apache-airflow}/security/api.rst (100%)
rename docs/{ => apache-airflow}/security/flower.rst (100%)
rename docs/{ => apache-airflow}/security/index.rst (95%)
rename docs/{ => apache-airflow}/security/kerberos.rst (100%)
rename docs/{ => apache-airflow}/security/secrets/fernet.rst (100%)
rename docs/{ => apache-airflow}/security/secrets/index.rst (100%)
rename docs/{ => apache-airflow}/security/secrets/secrets-backend/index.rst (96%)
rename docs/{ => apache-airflow}/security/secrets/secrets-backend/local-filesystem-secrets-backend.rst (100%)
rename docs/{ => apache-airflow}/security/webserver.rst (100%)
rename docs/{ => apache-airflow}/security/workload.rst (100%)
rename docs/{ => apache-airflow}/smart-sensor.rst (100%)
rename docs/{ => apache-airflow}/stable-rest-api-ref.rst (100%)
rename docs/{ => apache-airflow}/start.rst (90%)
rename docs/{ => apache-airflow}/static/exampleinclude.css (100%)
rename docs/{ => apache-airflow}/static/jira-links.js (100%)
rename docs/{ => apache-airflow}/templates/footer.html (100%)
rename docs/{ => apache-airflow}/timezone.rst (100%)
rename docs/{ => apache-airflow}/tutorial.rst (96%)
rename docs/{ => apache-airflow}/tutorial_taskflow_api.rst (89%)
rename docs/{ => apache-airflow}/ui.rst (100%)
rename docs/{ => apache-airflow}/usage-cli.rst (80%)
delete mode 100644 docs/howto/operator/amazon/aws/index.rst
delete mode 100644 docs/howto/operator/snowflake.rst
delete mode 100644 docs/security/secrets/secrets-backend/google-cloud-secret-manager-backend.rst
copy scripts/ci/{pre_commit/pre_commit_sync_version.sh => build_airflow/ci_build_airflow_package.sh} (79%)
create mode 100755 scripts/ci/images/ci_verify_ci_image.sh
create mode 100755 scripts/ci/images/ci_verify_prod_image.sh
rename scripts/ci/{provider_packages/ci_test_provider_packages_install.sh => images/ci_wait_for_ci_image.sh} (59%)
rename scripts/ci/{pre_commit/pre_commit_sync_version.sh => images/ci_wait_for_prod_image.sh} (67%)
rename scripts/ci/{provider_packages/ci_prepare_and_test_provider_packages.sh => libraries/_build_airflow_packages.sh} (54%)
mode change 100755 => 100644
create mode 100755 scripts/ci/pre_commit/pre_commit_json_schema.py
rename scripts/ci/provider_packages/{ci_test_provider_packages_import_all_classes.sh => ci_install_and_test_provider_packages.sh} (85%)
rename scripts/ci/provider_packages/{ci_prepare_provider_readme.sh => ci_prepare_provider_readmes.sh} (100%)
create mode 100755 scripts/in_container/run_install_and_test_provider_packages.sh
delete mode 100755 scripts/in_container/run_test_package_import_all_classes.sh
delete mode 100755 scripts/in_container/run_test_package_install.sh
copy airflow/operators/dummy_operator.py => tests/providers/microsoft/azure/hooks/test_fileshare_system.py (55%)
create mode 100644 tests/providers/microsoft/azure/transfers/test_file_to_wasb_system.py
copy tests/{www/api/experimental => providers/telegram}/__init__.py (100%)
copy tests/{www/api/experimental => providers/telegram/hooks}/__init__.py (100%)
create mode 100644 tests/providers/telegram/hooks/test_telegram.py
copy tests/{www/api/experimental => providers/telegram/operators}/__init__.py (100%)
create mode 100644 tests/providers/telegram/operators/test_telegram.py