This is an automated email from the ASF dual-hosted git repository.
ash pushed a change to branch log-var-and-conn-from-venv-take-two
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard 233d5a5f58f Allow virtualenv code to access connections/variables and
send logs
discard 9a540855aba fixup! Support for "reconnecting" Supervisor Comms from
task process when `dag.test()` are used
discard 27b272ef363 Support for "reconnecting" Supervisor Comms from task
process when `dag.test()` are used
omit c1ffce7d89f Remove mark-on-fixture in AWS test too
omit 82db7c1d19a Remove pytest deprecation warning in common test utils
add 99883535ae1 Fix Connection test failures due to Fernet key caching
(#58137)
add 11fbd848a28 Convert all airflow distributions to be compliant with ASF
requirements (#58138)
add 197ef8cbe09 fix mypy errors in delete_dag.py (#58101)
add 691aa8fec1e close spanish gap airflow 3.1 (#58117)
add 096023d088d Update Release instruction to include Task SDK version
update (#58134)
add 7de7b7afe7a Updates the go-sdk/Justfile for the changed package layout
(#58153)
add 803cba597ff Remove deprecation warning in common test utils (#58152)
add 801f0316a8a fix mypy errors in scheduler_job_runner.py (#58167)
add 8bfe744fe13 CI: Upgrade important CI environment (#58164)
add 3afad4d908d Patch pools should have an optional description (#58066)
add 805a4750411 Update UI to allow creation of DagRuns with partition key
(#58004)
add 2ccd348294f Bump boto3 from 1.40.68 to 1.40.69 in /dev/breeze (#58160)
add b77f7a74b61 Remove unnecessary list (#58141)
add 152e9a830eb RFC: Close italian gap airflow 3.1 (#58120)
add bbcb63b4156 Indent todo comment for IDE highlighting compatibility
(#58174)
add 8b358bd6c6e Fix CI upgrade script to not delete branch from origin
remote (#58163)
add bf38405bdd2 Upgrade email notifications to use SmtpNotifier (#57354)
add 48937a5348e Group upgrades of python dependencies (#58162)
add e6448226ed5 Fix Enum-str interpolation in callback metrics in Python
3.11+ (#58168)
add da0940431b3 fix(migration): disable sqlite fkeys (#58130)
add 817f875f624 Support for "reconnecting" Supervisor Comms from task
process when `dag.test()` are used
add 7d1b5997510 fixup! Support for "reconnecting" Supervisor Comms from
task process when `dag.test()` are used
add 3714fc92f96 Allow virtualenv code to access connections/variables and
send logs
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (233d5a5f58f)
\
N -- N -- N refs/heads/log-var-and-conn-from-venv-take-two
(3714fc92f96)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/actions/breeze/action.yml | 2 +-
.github/actions/install-prek/action.yml | 2 +-
.github/dependabot.yml | 16 ++
.github/workflows/basic-tests.yml | 2 +-
.github/workflows/release_dockerhub_image.yml | 2 +-
Dockerfile | 2 +-
Dockerfile.ci | 2 +-
NOTICE | 5 +
airflow-core/docs/img/airflow_erd.sha256 | 2 +-
airflow-core/docs/img/airflow_erd.svg | 142 ++++++++---------
airflow-core/pyproject.toml | 5 +-
airflow-core/src/airflow/api/common/delete_dag.py | 10 +-
.../api_fastapi/core_api/datamodels/assets.py | 2 +
.../api_fastapi/core_api/datamodels/dag_run.py | 3 +
.../api_fastapi/core_api/datamodels/pools.py | 2 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 22 ++-
.../api_fastapi/core_api/routes/public/assets.py | 1 +
.../api_fastapi/core_api/routes/public/dag_run.py | 1 +
.../execution_api/datamodels/asset_event.py | 1 +
.../execution_api/datamodels/taskinstance.py | 1 +
.../execution_api/routes/asset_events.py | 1 +
.../api_fastapi/execution_api/versions/__init__.py | 2 +
.../execution_api/versions/v2025_11_07.py | 47 ++++++
.../src/airflow/dag_processing/processor.py | 6 +-
.../src/airflow/jobs/scheduler_job_runner.py | 51 +++---
.../0082_3_1_0_make_bundle_name_not_nullable.py | 15 +-
airflow-core/src/airflow/models/callback.py | 5 +-
airflow-core/src/airflow/models/dagrun.py | 1 +
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 48 +++++-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 6 +-
.../airflow/ui/public/i18n/locales/en/common.json | 1 +
.../airflow/ui/public/i18n/locales/es/common.json | 7 +
.../ui/public/i18n/locales/es/components.json | 6 +
.../src/airflow/ui/public/i18n/locales/es/dag.json | 2 +
.../airflow/ui/public/i18n/locales/es/hitl.json | 5 +
.../airflow/ui/public/i18n/locales/it/common.json | 15 +-
.../ui/public/i18n/locales/it/components.json | 8 +
.../src/airflow/ui/public/i18n/locales/it/dag.json | 2 +
.../airflow/ui/public/i18n/locales/it/hitl.json | 5 +
.../src/components/TriggerDag/TriggerDAGForm.tsx | 21 +++
.../ui/src/pages/Asset/CreateAssetEventModal.tsx | 24 ++-
.../src/airflow/ui/src/pages/Pools/PoolForm.tsx | 14 +-
.../src/airflow/ui/src/pages/Run/Header.tsx | 8 +
.../src/airflow/ui/src/queries/useEditPool.ts | 5 +-
.../src/airflow/ui/src/queries/useTrigger.ts | 1 +
.../core_api/routes/public/test_assets.py | 7 +
.../core_api/routes/public/test_connections.py | 4 +-
.../core_api/routes/public/test_dag_run.py | 5 +
.../core_api/routes/public/test_pools.py | 6 -
.../versions/head/test_asset_events.py | 17 ++
.../versions/head/test_task_instances.py | 1 +
.../versions/v2025_09_23/test_asset_events.py | 166 ++++++++++++++++++++
.../tests/unit/callbacks/test_callback_requests.py | 6 +
.../tests/unit/cli/commands/test_asset_command.py | 2 +
.../tests/unit/dag_processing/test_processor.py | 74 ++++++---
airflow-core/tests/unit/models/test_callback.py | 6 +-
airflow-core/tests/unit/models/test_connection.py | 9 ++
{clients/python => airflow-ctl}/LICENSE | 0
airflow-ctl/NOTICE | 5 +
airflow-ctl/pyproject.toml | 2 +
.../src/airflowctl/api/datamodels/generated.py | 4 +
chart/NOTICE | 2 +-
chart/pyproject.toml | 1 -
clients/python/pyproject.toml | 4 +-
dev/README_RELEASE_AIRFLOW.md | 13 +-
dev/breeze/doc/ci/02_images.md | 2 +-
dev/breeze/pyproject.toml | 3 +-
.../src/airflow_breeze/commands/ci_commands.py | 5 -
.../commands/release_management_commands.py | 2 +-
dev/breeze/src/airflow_breeze/global_constants.py | 2 +-
.../templates/pyproject_TEMPLATE.toml.jinja2 | 3 +-
dev/breeze/src/airflow_breeze/utils/packages.py | 7 +
dev/breeze/uv.lock | 172 +++++++++++----------
devel-common/pyproject.toml | 2 +-
.../tests_common/_internals/forbidden_warnings.py | 16 +-
devel-common/src/tests_common/pytest_plugin.py | 5 +-
docker-stack-docs/pyproject.toml | 1 -
go-sdk/Justfile | 4 +-
LICENSE => go-sdk/LICENSE | 0
go-sdk/NOTICE | 5 +
go-sdk/pkg/logging/server/server.go | 2 +-
providers-summary-docs/pyproject.toml | 1 -
LICENSE => providers/airbyte/LICENSE | 0
providers/airbyte/NOTICE | 5 +
providers/airbyte/pyproject.toml | 3 +-
LICENSE => providers/alibaba/LICENSE | 0
providers/alibaba/NOTICE | 5 +
providers/alibaba/pyproject.toml | 3 +-
LICENSE => providers/amazon/LICENSE | 0
providers/amazon/NOTICE | 5 +
providers/amazon/pyproject.toml | 3 +-
.../airflow/providers/amazon/aws/utils/mixins.py | 2 +-
LICENSE => providers/apache/beam/LICENSE | 0
providers/apache/beam/NOTICE | 5 +
providers/apache/beam/pyproject.toml | 3 +-
LICENSE => providers/apache/cassandra/LICENSE | 0
providers/apache/cassandra/NOTICE | 5 +
providers/apache/cassandra/pyproject.toml | 3 +-
LICENSE => providers/apache/drill/LICENSE | 0
providers/apache/drill/NOTICE | 5 +
providers/apache/drill/pyproject.toml | 3 +-
LICENSE => providers/apache/druid/LICENSE | 0
providers/apache/druid/NOTICE | 5 +
providers/apache/druid/pyproject.toml | 3 +-
LICENSE => providers/apache/flink/LICENSE | 0
providers/apache/flink/NOTICE | 5 +
providers/apache/flink/pyproject.toml | 3 +-
LICENSE => providers/apache/hdfs/LICENSE | 0
providers/apache/hdfs/NOTICE | 5 +
providers/apache/hdfs/pyproject.toml | 3 +-
LICENSE => providers/apache/hive/LICENSE | 0
providers/apache/hive/NOTICE | 5 +
providers/apache/hive/pyproject.toml | 3 +-
LICENSE => providers/apache/iceberg/LICENSE | 0
providers/apache/iceberg/NOTICE | 5 +
providers/apache/iceberg/pyproject.toml | 3 +-
LICENSE => providers/apache/impala/LICENSE | 0
providers/apache/impala/NOTICE | 5 +
providers/apache/impala/pyproject.toml | 3 +-
LICENSE => providers/apache/kafka/LICENSE | 0
providers/apache/kafka/NOTICE | 5 +
providers/apache/kafka/pyproject.toml | 3 +-
LICENSE => providers/apache/kylin/LICENSE | 0
providers/apache/kylin/NOTICE | 5 +
providers/apache/kylin/pyproject.toml | 3 +-
LICENSE => providers/apache/livy/LICENSE | 0
providers/apache/livy/NOTICE | 5 +
providers/apache/livy/pyproject.toml | 3 +-
LICENSE => providers/apache/pig/LICENSE | 0
providers/apache/pig/NOTICE | 5 +
providers/apache/pig/pyproject.toml | 3 +-
LICENSE => providers/apache/pinot/LICENSE | 0
providers/apache/pinot/NOTICE | 5 +
providers/apache/pinot/pyproject.toml | 3 +-
LICENSE => providers/apache/spark/LICENSE | 0
providers/apache/spark/NOTICE | 5 +
providers/apache/spark/pyproject.toml | 3 +-
LICENSE => providers/apache/tinkerpop/LICENSE | 0
providers/apache/tinkerpop/NOTICE | 5 +
providers/apache/tinkerpop/pyproject.toml | 3 +-
LICENSE => providers/apprise/LICENSE | 0
providers/apprise/NOTICE | 5 +
providers/apprise/pyproject.toml | 3 +-
LICENSE => providers/arangodb/LICENSE | 0
providers/arangodb/NOTICE | 5 +
providers/arangodb/pyproject.toml | 3 +-
LICENSE => providers/asana/LICENSE | 0
providers/asana/NOTICE | 5 +
providers/asana/pyproject.toml | 3 +-
LICENSE => providers/atlassian/jira/LICENSE | 0
providers/atlassian/jira/NOTICE | 5 +
providers/atlassian/jira/pyproject.toml | 3 +-
LICENSE => providers/celery/LICENSE | 0
providers/celery/NOTICE | 5 +
providers/celery/pyproject.toml | 3 +-
LICENSE => providers/cloudant/LICENSE | 0
providers/cloudant/NOTICE | 5 +
providers/cloudant/pyproject.toml | 3 +-
LICENSE => providers/cncf/kubernetes/LICENSE | 0
providers/cncf/kubernetes/NOTICE | 5 +
providers/cncf/kubernetes/pyproject.toml | 3 +-
LICENSE => providers/cohere/LICENSE | 0
providers/cohere/NOTICE | 5 +
providers/cohere/pyproject.toml | 3 +-
LICENSE => providers/common/compat/LICENSE | 0
providers/common/compat/NOTICE | 5 +
providers/common/compat/pyproject.toml | 3 +-
LICENSE => providers/common/io/LICENSE | 0
providers/common/io/NOTICE | 5 +
providers/common/io/pyproject.toml | 3 +-
LICENSE => providers/common/messaging/LICENSE | 0
providers/common/messaging/NOTICE | 5 +
providers/common/messaging/pyproject.toml | 3 +-
LICENSE => providers/common/sql/LICENSE | 0
providers/common/sql/NOTICE | 5 +
providers/common/sql/pyproject.toml | 3 +-
LICENSE => providers/databricks/LICENSE | 0
providers/databricks/NOTICE | 5 +
providers/databricks/pyproject.toml | 3 +-
LICENSE => providers/datadog/LICENSE | 0
providers/datadog/NOTICE | 5 +
providers/datadog/pyproject.toml | 3 +-
LICENSE => providers/dbt/cloud/LICENSE | 0
providers/dbt/cloud/NOTICE | 5 +
providers/dbt/cloud/pyproject.toml | 3 +-
LICENSE => providers/dingding/LICENSE | 0
providers/dingding/NOTICE | 5 +
providers/dingding/pyproject.toml | 3 +-
LICENSE => providers/discord/LICENSE | 0
providers/discord/NOTICE | 5 +
providers/discord/pyproject.toml | 3 +-
LICENSE => providers/docker/LICENSE | 0
providers/docker/NOTICE | 5 +
providers/docker/pyproject.toml | 3 +-
LICENSE => providers/edge3/LICENSE | 0
providers/edge3/NOTICE | 5 +
providers/edge3/pyproject.toml | 3 +-
LICENSE => providers/elasticsearch/LICENSE | 0
providers/elasticsearch/NOTICE | 5 +
providers/elasticsearch/pyproject.toml | 3 +-
LICENSE => providers/exasol/LICENSE | 0
providers/exasol/NOTICE | 5 +
providers/exasol/pyproject.toml | 3 +-
LICENSE => providers/fab/LICENSE | 0
providers/fab/provider.yaml | 2 -
providers/fab/pyproject.toml | 5 +-
LICENSE => providers/facebook/LICENSE | 0
providers/facebook/NOTICE | 5 +
providers/facebook/pyproject.toml | 3 +-
LICENSE => providers/ftp/LICENSE | 0
providers/ftp/NOTICE | 5 +
providers/ftp/pyproject.toml | 3 +-
LICENSE => providers/git/LICENSE | 0
providers/git/NOTICE | 5 +
providers/git/pyproject.toml | 3 +-
LICENSE => providers/github/LICENSE | 0
providers/github/NOTICE | 5 +
providers/github/pyproject.toml | 3 +-
LICENSE => providers/google/LICENSE | 0
providers/google/NOTICE | 5 +
providers/google/pyproject.toml | 3 +-
.../providers/google/3rd-party-licenses/NOTICE | 14 +-
LICENSE => providers/grpc/LICENSE | 0
providers/grpc/NOTICE | 5 +
providers/grpc/pyproject.toml | 3 +-
LICENSE => providers/hashicorp/LICENSE | 0
providers/hashicorp/NOTICE | 5 +
providers/hashicorp/pyproject.toml | 3 +-
LICENSE => providers/http/LICENSE | 0
providers/http/NOTICE | 5 +
providers/http/pyproject.toml | 3 +-
LICENSE => providers/imap/LICENSE | 0
providers/imap/NOTICE | 5 +
providers/imap/pyproject.toml | 3 +-
LICENSE => providers/influxdb/LICENSE | 0
providers/influxdb/NOTICE | 5 +
providers/influxdb/pyproject.toml | 3 +-
LICENSE => providers/jdbc/LICENSE | 0
providers/jdbc/NOTICE | 5 +
providers/jdbc/pyproject.toml | 3 +-
LICENSE => providers/jenkins/LICENSE | 0
providers/jenkins/NOTICE | 5 +
providers/jenkins/pyproject.toml | 3 +-
LICENSE => providers/keycloak/LICENSE | 0
providers/keycloak/NOTICE | 5 +
providers/keycloak/pyproject.toml | 3 +-
LICENSE => providers/microsoft/azure/LICENSE | 0
providers/microsoft/azure/NOTICE | 5 +
providers/microsoft/azure/pyproject.toml | 3 +-
LICENSE => providers/microsoft/mssql/LICENSE | 0
providers/microsoft/mssql/NOTICE | 5 +
providers/microsoft/mssql/pyproject.toml | 3 +-
LICENSE => providers/microsoft/psrp/LICENSE | 0
providers/microsoft/psrp/NOTICE | 5 +
providers/microsoft/psrp/pyproject.toml | 3 +-
LICENSE => providers/microsoft/winrm/LICENSE | 0
providers/microsoft/winrm/NOTICE | 5 +
providers/microsoft/winrm/pyproject.toml | 3 +-
LICENSE => providers/mongo/LICENSE | 0
providers/mongo/NOTICE | 5 +
providers/mongo/pyproject.toml | 3 +-
LICENSE => providers/mysql/LICENSE | 0
providers/mysql/NOTICE | 5 +
providers/mysql/pyproject.toml | 3 +-
LICENSE => providers/neo4j/LICENSE | 0
providers/neo4j/NOTICE | 5 +
providers/neo4j/pyproject.toml | 3 +-
LICENSE => providers/odbc/LICENSE | 0
providers/odbc/NOTICE | 5 +
providers/odbc/pyproject.toml | 3 +-
LICENSE => providers/openai/LICENSE | 0
providers/openai/NOTICE | 5 +
providers/openai/pyproject.toml | 3 +-
LICENSE => providers/openfaas/LICENSE | 0
providers/openfaas/NOTICE | 5 +
providers/openfaas/pyproject.toml | 3 +-
LICENSE => providers/openlineage/LICENSE | 0
providers/openlineage/NOTICE | 5 +
providers/openlineage/pyproject.toml | 3 +-
LICENSE => providers/opensearch/LICENSE | 0
providers/opensearch/NOTICE | 5 +
providers/opensearch/pyproject.toml | 3 +-
LICENSE => providers/opsgenie/LICENSE | 0
providers/opsgenie/NOTICE | 5 +
providers/opsgenie/pyproject.toml | 3 +-
LICENSE => providers/oracle/LICENSE | 0
providers/oracle/NOTICE | 5 +
providers/oracle/pyproject.toml | 3 +-
LICENSE => providers/pagerduty/LICENSE | 0
providers/pagerduty/NOTICE | 5 +
providers/pagerduty/pyproject.toml | 3 +-
LICENSE => providers/papermill/LICENSE | 0
providers/papermill/NOTICE | 5 +
providers/papermill/pyproject.toml | 3 +-
LICENSE => providers/pgvector/LICENSE | 0
providers/pgvector/NOTICE | 5 +
providers/pgvector/pyproject.toml | 3 +-
LICENSE => providers/pinecone/LICENSE | 0
providers/pinecone/NOTICE | 5 +
providers/pinecone/pyproject.toml | 3 +-
LICENSE => providers/postgres/LICENSE | 0
providers/postgres/NOTICE | 5 +
providers/postgres/pyproject.toml | 3 +-
LICENSE => providers/presto/LICENSE | 0
providers/presto/NOTICE | 5 +
providers/presto/pyproject.toml | 3 +-
LICENSE => providers/qdrant/LICENSE | 0
providers/qdrant/NOTICE | 5 +
providers/qdrant/pyproject.toml | 3 +-
LICENSE => providers/redis/LICENSE | 0
providers/redis/NOTICE | 5 +
providers/redis/pyproject.toml | 3 +-
LICENSE => providers/salesforce/LICENSE | 0
providers/salesforce/NOTICE | 5 +
providers/salesforce/pyproject.toml | 3 +-
LICENSE => providers/samba/LICENSE | 0
providers/samba/NOTICE | 5 +
providers/samba/pyproject.toml | 3 +-
LICENSE => providers/segment/LICENSE | 0
providers/segment/NOTICE | 5 +
providers/segment/pyproject.toml | 3 +-
LICENSE => providers/sendgrid/LICENSE | 0
providers/sendgrid/NOTICE | 5 +
providers/sendgrid/pyproject.toml | 3 +-
LICENSE => providers/sftp/LICENSE | 0
providers/sftp/NOTICE | 5 +
providers/sftp/pyproject.toml | 3 +-
LICENSE => providers/singularity/LICENSE | 0
providers/singularity/NOTICE | 5 +
providers/singularity/pyproject.toml | 3 +-
LICENSE => providers/slack/LICENSE | 0
providers/slack/NOTICE | 5 +
providers/slack/pyproject.toml | 3 +-
LICENSE => providers/smtp/LICENSE | 0
providers/smtp/NOTICE | 5 +
providers/smtp/pyproject.toml | 3 +-
LICENSE => providers/snowflake/LICENSE | 0
providers/snowflake/NOTICE | 5 +
providers/snowflake/pyproject.toml | 3 +-
LICENSE => providers/sqlite/LICENSE | 0
providers/sqlite/NOTICE | 5 +
providers/sqlite/pyproject.toml | 3 +-
LICENSE => providers/ssh/LICENSE | 0
providers/ssh/NOTICE | 5 +
providers/ssh/pyproject.toml | 3 +-
LICENSE => providers/standard/LICENSE | 0
providers/standard/NOTICE | 5 +
providers/standard/pyproject.toml | 3 +-
LICENSE => providers/tableau/LICENSE | 0
providers/tableau/NOTICE | 5 +
providers/tableau/pyproject.toml | 3 +-
LICENSE => providers/telegram/LICENSE | 0
providers/telegram/NOTICE | 5 +
providers/telegram/pyproject.toml | 3 +-
LICENSE => providers/teradata/LICENSE | 0
providers/teradata/NOTICE | 5 +
providers/teradata/pyproject.toml | 3 +-
LICENSE => providers/trino/LICENSE | 0
providers/trino/NOTICE | 5 +
providers/trino/pyproject.toml | 3 +-
LICENSE => providers/vertica/LICENSE | 0
providers/vertica/NOTICE | 5 +
providers/vertica/pyproject.toml | 3 +-
LICENSE => providers/weaviate/LICENSE | 0
providers/weaviate/NOTICE | 5 +
providers/weaviate/pyproject.toml | 3 +-
LICENSE => providers/yandex/LICENSE | 0
providers/yandex/NOTICE | 5 +
providers/yandex/pyproject.toml | 3 +-
LICENSE => providers/ydb/LICENSE | 0
providers/ydb/NOTICE | 5 +
providers/ydb/pyproject.toml | 3 +-
LICENSE => providers/zendesk/LICENSE | 0
providers/zendesk/NOTICE | 5 +
providers/zendesk/pyproject.toml | 3 +-
pyproject.toml | 6 +-
scripts/tools/setup_breeze | 2 +-
task-sdk/NOTICE | 5 +
task-sdk/pyproject.toml | 4 +-
.../src/airflow/sdk/api/datamodels/_generated.py | 4 +-
.../src/airflow/sdk/execution_time/task_runner.py | 145 ++++++++---------
.../task_sdk/execution_time/test_supervisor.py | 1 +
.../task_sdk/execution_time/test_task_runner.py | 168 ++++++++++++++++++++
383 files changed, 1737 insertions(+), 486 deletions(-)
create mode 100644 NOTICE
create mode 100644
airflow-core/src/airflow/api_fastapi/execution_api/versions/v2025_11_07.py
create mode 100644
airflow-core/tests/unit/api_fastapi/execution_api/versions/v2025_09_23/test_asset_events.py
copy {clients/python => airflow-ctl}/LICENSE (100%)
create mode 100644 airflow-ctl/NOTICE
copy LICENSE => go-sdk/LICENSE (100%)
create mode 100644 go-sdk/NOTICE
copy LICENSE => providers/airbyte/LICENSE (100%)
create mode 100644 providers/airbyte/NOTICE
copy LICENSE => providers/alibaba/LICENSE (100%)
create mode 100644 providers/alibaba/NOTICE
copy LICENSE => providers/amazon/LICENSE (100%)
create mode 100644 providers/amazon/NOTICE
copy LICENSE => providers/apache/beam/LICENSE (100%)
create mode 100644 providers/apache/beam/NOTICE
copy LICENSE => providers/apache/cassandra/LICENSE (100%)
create mode 100644 providers/apache/cassandra/NOTICE
copy LICENSE => providers/apache/drill/LICENSE (100%)
create mode 100644 providers/apache/drill/NOTICE
copy LICENSE => providers/apache/druid/LICENSE (100%)
create mode 100644 providers/apache/druid/NOTICE
copy LICENSE => providers/apache/flink/LICENSE (100%)
create mode 100644 providers/apache/flink/NOTICE
copy LICENSE => providers/apache/hdfs/LICENSE (100%)
create mode 100644 providers/apache/hdfs/NOTICE
copy LICENSE => providers/apache/hive/LICENSE (100%)
create mode 100644 providers/apache/hive/NOTICE
copy LICENSE => providers/apache/iceberg/LICENSE (100%)
create mode 100644 providers/apache/iceberg/NOTICE
copy LICENSE => providers/apache/impala/LICENSE (100%)
create mode 100644 providers/apache/impala/NOTICE
copy LICENSE => providers/apache/kafka/LICENSE (100%)
create mode 100644 providers/apache/kafka/NOTICE
copy LICENSE => providers/apache/kylin/LICENSE (100%)
create mode 100644 providers/apache/kylin/NOTICE
copy LICENSE => providers/apache/livy/LICENSE (100%)
create mode 100644 providers/apache/livy/NOTICE
copy LICENSE => providers/apache/pig/LICENSE (100%)
create mode 100644 providers/apache/pig/NOTICE
copy LICENSE => providers/apache/pinot/LICENSE (100%)
create mode 100644 providers/apache/pinot/NOTICE
copy LICENSE => providers/apache/spark/LICENSE (100%)
create mode 100644 providers/apache/spark/NOTICE
copy LICENSE => providers/apache/tinkerpop/LICENSE (100%)
create mode 100644 providers/apache/tinkerpop/NOTICE
copy LICENSE => providers/apprise/LICENSE (100%)
create mode 100644 providers/apprise/NOTICE
copy LICENSE => providers/arangodb/LICENSE (100%)
create mode 100644 providers/arangodb/NOTICE
copy LICENSE => providers/asana/LICENSE (100%)
create mode 100644 providers/asana/NOTICE
copy LICENSE => providers/atlassian/jira/LICENSE (100%)
create mode 100644 providers/atlassian/jira/NOTICE
copy LICENSE => providers/celery/LICENSE (100%)
create mode 100644 providers/celery/NOTICE
copy LICENSE => providers/cloudant/LICENSE (100%)
create mode 100644 providers/cloudant/NOTICE
copy LICENSE => providers/cncf/kubernetes/LICENSE (100%)
create mode 100644 providers/cncf/kubernetes/NOTICE
copy LICENSE => providers/cohere/LICENSE (100%)
create mode 100644 providers/cohere/NOTICE
copy LICENSE => providers/common/compat/LICENSE (100%)
create mode 100644 providers/common/compat/NOTICE
copy LICENSE => providers/common/io/LICENSE (100%)
create mode 100644 providers/common/io/NOTICE
copy LICENSE => providers/common/messaging/LICENSE (100%)
create mode 100644 providers/common/messaging/NOTICE
copy LICENSE => providers/common/sql/LICENSE (100%)
create mode 100644 providers/common/sql/NOTICE
copy LICENSE => providers/databricks/LICENSE (100%)
create mode 100644 providers/databricks/NOTICE
copy LICENSE => providers/datadog/LICENSE (100%)
create mode 100644 providers/datadog/NOTICE
copy LICENSE => providers/dbt/cloud/LICENSE (100%)
create mode 100644 providers/dbt/cloud/NOTICE
copy LICENSE => providers/dingding/LICENSE (100%)
create mode 100644 providers/dingding/NOTICE
copy LICENSE => providers/discord/LICENSE (100%)
create mode 100644 providers/discord/NOTICE
copy LICENSE => providers/docker/LICENSE (100%)
create mode 100644 providers/docker/NOTICE
copy LICENSE => providers/edge3/LICENSE (100%)
create mode 100644 providers/edge3/NOTICE
copy LICENSE => providers/elasticsearch/LICENSE (100%)
create mode 100644 providers/elasticsearch/NOTICE
copy LICENSE => providers/exasol/LICENSE (100%)
create mode 100644 providers/exasol/NOTICE
copy LICENSE => providers/fab/LICENSE (100%)
copy LICENSE => providers/facebook/LICENSE (100%)
create mode 100644 providers/facebook/NOTICE
copy LICENSE => providers/ftp/LICENSE (100%)
create mode 100644 providers/ftp/NOTICE
copy LICENSE => providers/git/LICENSE (100%)
create mode 100644 providers/git/NOTICE
copy LICENSE => providers/github/LICENSE (100%)
create mode 100644 providers/github/NOTICE
copy LICENSE => providers/google/LICENSE (100%)
create mode 100644 providers/google/NOTICE
copy LICENSE => providers/grpc/LICENSE (100%)
create mode 100644 providers/grpc/NOTICE
copy LICENSE => providers/hashicorp/LICENSE (100%)
create mode 100644 providers/hashicorp/NOTICE
copy LICENSE => providers/http/LICENSE (100%)
create mode 100644 providers/http/NOTICE
copy LICENSE => providers/imap/LICENSE (100%)
create mode 100644 providers/imap/NOTICE
copy LICENSE => providers/influxdb/LICENSE (100%)
create mode 100644 providers/influxdb/NOTICE
copy LICENSE => providers/jdbc/LICENSE (100%)
create mode 100644 providers/jdbc/NOTICE
copy LICENSE => providers/jenkins/LICENSE (100%)
create mode 100644 providers/jenkins/NOTICE
copy LICENSE => providers/keycloak/LICENSE (100%)
create mode 100644 providers/keycloak/NOTICE
copy LICENSE => providers/microsoft/azure/LICENSE (100%)
create mode 100644 providers/microsoft/azure/NOTICE
copy LICENSE => providers/microsoft/mssql/LICENSE (100%)
create mode 100644 providers/microsoft/mssql/NOTICE
copy LICENSE => providers/microsoft/psrp/LICENSE (100%)
create mode 100644 providers/microsoft/psrp/NOTICE
copy LICENSE => providers/microsoft/winrm/LICENSE (100%)
create mode 100644 providers/microsoft/winrm/NOTICE
copy LICENSE => providers/mongo/LICENSE (100%)
create mode 100644 providers/mongo/NOTICE
copy LICENSE => providers/mysql/LICENSE (100%)
create mode 100644 providers/mysql/NOTICE
copy LICENSE => providers/neo4j/LICENSE (100%)
create mode 100644 providers/neo4j/NOTICE
copy LICENSE => providers/odbc/LICENSE (100%)
create mode 100644 providers/odbc/NOTICE
copy LICENSE => providers/openai/LICENSE (100%)
create mode 100644 providers/openai/NOTICE
copy LICENSE => providers/openfaas/LICENSE (100%)
create mode 100644 providers/openfaas/NOTICE
copy LICENSE => providers/openlineage/LICENSE (100%)
create mode 100644 providers/openlineage/NOTICE
copy LICENSE => providers/opensearch/LICENSE (100%)
create mode 100644 providers/opensearch/NOTICE
copy LICENSE => providers/opsgenie/LICENSE (100%)
create mode 100644 providers/opsgenie/NOTICE
copy LICENSE => providers/oracle/LICENSE (100%)
create mode 100644 providers/oracle/NOTICE
copy LICENSE => providers/pagerduty/LICENSE (100%)
create mode 100644 providers/pagerduty/NOTICE
copy LICENSE => providers/papermill/LICENSE (100%)
create mode 100644 providers/papermill/NOTICE
copy LICENSE => providers/pgvector/LICENSE (100%)
create mode 100644 providers/pgvector/NOTICE
copy LICENSE => providers/pinecone/LICENSE (100%)
create mode 100644 providers/pinecone/NOTICE
copy LICENSE => providers/postgres/LICENSE (100%)
create mode 100644 providers/postgres/NOTICE
copy LICENSE => providers/presto/LICENSE (100%)
create mode 100644 providers/presto/NOTICE
copy LICENSE => providers/qdrant/LICENSE (100%)
create mode 100644 providers/qdrant/NOTICE
copy LICENSE => providers/redis/LICENSE (100%)
create mode 100644 providers/redis/NOTICE
copy LICENSE => providers/salesforce/LICENSE (100%)
create mode 100644 providers/salesforce/NOTICE
copy LICENSE => providers/samba/LICENSE (100%)
create mode 100644 providers/samba/NOTICE
copy LICENSE => providers/segment/LICENSE (100%)
create mode 100644 providers/segment/NOTICE
copy LICENSE => providers/sendgrid/LICENSE (100%)
create mode 100644 providers/sendgrid/NOTICE
copy LICENSE => providers/sftp/LICENSE (100%)
create mode 100644 providers/sftp/NOTICE
copy LICENSE => providers/singularity/LICENSE (100%)
create mode 100644 providers/singularity/NOTICE
copy LICENSE => providers/slack/LICENSE (100%)
create mode 100644 providers/slack/NOTICE
copy LICENSE => providers/smtp/LICENSE (100%)
create mode 100644 providers/smtp/NOTICE
copy LICENSE => providers/snowflake/LICENSE (100%)
create mode 100644 providers/snowflake/NOTICE
copy LICENSE => providers/sqlite/LICENSE (100%)
create mode 100644 providers/sqlite/NOTICE
copy LICENSE => providers/ssh/LICENSE (100%)
create mode 100644 providers/ssh/NOTICE
copy LICENSE => providers/standard/LICENSE (100%)
create mode 100644 providers/standard/NOTICE
copy LICENSE => providers/tableau/LICENSE (100%)
create mode 100644 providers/tableau/NOTICE
copy LICENSE => providers/telegram/LICENSE (100%)
create mode 100644 providers/telegram/NOTICE
copy LICENSE => providers/teradata/LICENSE (100%)
create mode 100644 providers/teradata/NOTICE
copy LICENSE => providers/trino/LICENSE (100%)
create mode 100644 providers/trino/NOTICE
copy LICENSE => providers/vertica/LICENSE (100%)
create mode 100644 providers/vertica/NOTICE
copy LICENSE => providers/weaviate/LICENSE (100%)
create mode 100644 providers/weaviate/NOTICE
copy LICENSE => providers/yandex/LICENSE (100%)
create mode 100644 providers/yandex/NOTICE
copy LICENSE => providers/ydb/LICENSE (100%)
create mode 100644 providers/ydb/NOTICE
copy LICENSE => providers/zendesk/LICENSE (100%)
create mode 100644 providers/zendesk/NOTICE
create mode 100644 task-sdk/NOTICE