This is an automated email from the ASF dual-hosted git repository. ephraimanierobi pushed a change to branch v2-8-stable in repository https://gitbox.apache.org/repos/asf/airflow.git
from 1745dbe907 Switch instance type to m7g (#37127) add 8a8b5557b6 Fix reproducibility of source-tarballs prepared as part of release (#36819) add 6a349391e0 Upgrade to FAB 4.3.11 add 2d39ed5521 Limit `atlassian-python-api` to <3.41.6 (#36815) add 04261f82cd Adding log to airflow-github for disabled progress bar (#36782) add 025f88b20e Limit `pinecone-client` to <3.0 (#36818) add b94025094d Remove optimization to install wheel pacakges for affected providers (#36825) add c006bdabb7 AthenaSqlHook implementation (#36171) add 2cb3bf08a9 Use lax `atlassian-python-api` limitation (#36841) add 9be4da2dd6 More complete FAQ and context about releasing next patchlevel release (#36858) add 951b7342a8 Limit `flask-session` to <0.6 (#36895) add 25680c4ec3 Add back envvars for mysql and postgres version options (#36914) add 310b7ac8db Bump MySQL Innovation Release to 8.3 (#36893) add 8d7a7843e9 Fix providers validation in `check_files.py` after switch to the hatch builds (#36921) add 67eaa419c1 Airflow 2.8.1 has been released (#36906) add 4a8fc18e38 Bump min version of Alembic to 1.13.1 (#36928) add b9f54a5a51 Prevent templated field logic checks in __init__ of operators automatically (#33786) add e3a018fbb5 Optionally use `client.files_upload_v2` in Slack Provider (#36757) add e26b8e0f52 Fix typos in descriptions about next release (#36918) add 75679d81d1 Move Breeze documentation to inside Breeze and split it. (#36936) add 13746187b8 Force install hatch in Test Open API job (#36938) add 9faabafbdc Fix small issues with breeze docs moved to new place (#36937) add b587c5ca04 Make Helm artifacts reproducible (#36930) add 81761a0432 Fallback to bash if SHELL variable is not set for k8s shell (#36985) add 33314dc3cd Fix broken links in release management Breeze docs (#36988) add 4cd490d98b Fix BOTH wrong links in Breeze docs and do it properly (#36989) add 9f5cd3a19f Fix spelling of `airflow` (#36682) add 4a65e2fa3c Remove duplicated definitions of random volumes (#36993) add abc5500dae Split contributing docs to multiple files (#36969) add 44518d6d38 Allow for helm plugin installation to be happening more than once (#37038) add 49422d53ab Move CI documentation to inside Breeze docs (#37039) add 2d15acff68 Limit moto to version below 5.0.0 (#37054) add 27d71e38d1 Protect against manually updated generated dependencies (#37056) add b5dcd210d6 Allow committer builds to use scripts/ci, dev and actions from the PR (#37057) add 009d95462c Kubernetes version bump (#37040) add 888612524b Make Amazon Provider tests compatible with `moto>=5` (#37060) add 2e50c1d9fa Bump aiohttp min version to avoid CVE-2024-23829 and CVE-2024-23334 (#37110) add dc7d4b571d Fixing a visual in breeze cheatsheet (#37083) add 735d24fbc4 Revert protection against back-compatibilty issue with google-core-api (#37111) add 7ea7113bff Automatically upgrade various components in canary builds (#37113) add e0e3fa417b The "upgrade-on-failure" feature enabled by default in local environment (#37116) add ef9803d5d8 docs: some grammatical improvements for providers index (#37095) add e27856278b Nicer pyproject.toml dependency generation (#37114) add 8298c52d0c Upgrade trove-classifier in build dependencies after it's released (#37147) add 0d64a53aa0 Temporary limit `pytest` to `<8.0` (#37157) add 6936baff50 Avoid `pendulum.from_timestamp` usage (#37160) add fca30bb5c6 Add deferrable param in SFTPSensor (#37117) add 88eab6c287 Update supplementary chart images (#37187) add 562ce2a144 Affixing exit summary to publish-docs command (#37172) add bd6a2903ff Update version of statsd image automatically in canary run (#37189) add 9b4a5eaf82 Update ruff to v0.2.1 (#37188) add f2393c7782 bump: kind 0.21.0 (#37159) add b15fbae8d0 Limit docs publishing tests to canary run (#37196) add a68f180456 Reorder settings in pyproject.toml (#37193) add d2a85d3cb7 Upgrade arifacts upload action to v4 (#37199) add 8d4debd6d8 Summarise publish-docs irrespective of --include-success-output (#37203) add 6ae1b413b2 Avoid log-groomer container failures when log persistence is enabled (#37222) add 96b0cfe388 Upgrade to FAB 4.3.11 (#37233) add 8ff051ea04 Fix security manager inheritance in fab provider (#36538) add 08b10b00b1 Fix failing static/unit tests. add ac90d22599 fix copy-bug (#34904) add 5cbfc1e122 Sanitize the conn_id to disallow potential script execution (#32867) add 4de8b4de90 REST API set description on POST to `/variables` endpoint (#36820) add a6055e765d Fix webserver always redirecting to home page if user was not logged in (#36833) add a2d6e6e2da Fix bug introduced by replacing spaces by + in run_id (#36877) add b5aad130f8 typo fix (#36900) add 9bd4d8ef00 Link to release notes in the upgrade docs (#36923) add 5293de14ce fix(dagrun): copy bug (#36855) add e790957045 fix: disable dryrun autofetch (#36941) add 5b26cd35c9 Updated config.yml for environment variable sql_alchemy_connect_args (#36526) add 2bad7ab890 fix: DagRuns with UPSTREAM_FAILED tasks get stuck in the backfill. (#36954) add 2a043e9f2f add description to queue_when (#36997) add 752163b62c Secret masker ignores passwords with special chars (#36692) add db2036a5db Bugfix Triggering DAG with parameters is mandatory when show_trigger_form_if_no_params is enabled (#37063) add 8185b8eba0 Move docs for cron basics to Authoring and Scheduling section (#37049) add 5fd358afe3 Displaying "actual" try number in TaskInstance view (#34635) add 4b029e705b Add clarification about DAG author capabilities to security model (#37141) add eb49279c1b Allow running airflow against sqlite in-memory DB for tests (#37144) add e8ce3a821b Revert the sequence of initializing configuration defaults (#37155) add 81ffad14e3 Add airflow version substitution into Docker Compose Howto (#37177) add 308d09dceb Adjust graph node layout (#37207) add 5e815902f5 Fix collapsed grid width, line up selected bar with gantt (#37205) add 571fa5c5ae fix: PythonVirtualenvOperator crashes if any python_callable function is defined in the same source as DAG (#37165) add adc97a9ba1 Adjust node width based on task name length (#37254) add 18ea9be57f Fix the bug that affected the DAG end date. (#36144) add 3ab0044f4a Add more precise description on avoiding generic package/module names (#36927) add 651678c2e9 Fix broken regex for allowed_deserialization_classes (#36147) add ca69ef8ab4 Upgrade mypy to 1.8.0 (#36428) add e64f7a43b6 Upgrade to just released `pip 24.0` (#37236) add fa91343fc2 Remove validate-operators-init from v2-* static check branches (#37238) add f99fba2e66 Trims leading `./` from filenames when repackaging reproducible packages (#37253) add 71b48034b0 Sign helm chart packages without dist/ prefix (#37260) add dbce73e845 Optimize CI builds for unimportant pyproject.toml changes (#37305) add ddaa4b1bac Optimize CI jobs when for example only pre-commits change in scripts (#37308) add 2440b1fc27 Make PRs changing pyproject.toml neutral for breeze tests (#37314) add 89cd098158 Limit universal-pathlib to < 0.2.0 (#37311) add 4510f91816 Ignore occasional GPG error exists when generating key (#37325) add e1ec20bf57 Add better diagnostics when provider.yaml check fails (#37322) add fcb9971383 Fix pyhive hive_pure_sasl extra name (#37323) add bb2b7b183b Optimize cachine installed packages in CI build (#37315) add 944cd868c9 Get rid of pytest-httpx as dependency (#37334) add 655321ad86 Fix remote installation from git (#37340) add 62c638f95b Follow up after moving hatch_build.py to source root (#37341) add a04c2c3386 Swtich to standard way of specifying package extra for github URL (#37342) add 5bf1a75d33 Add "devel-ci" extra with all possible dependencies to wheel (#37345) add cd24d516fb Trigger full cache rebuild with new EPOCH values (#37346) add ee14134f96 Add celery and cncf.kubernetes to devel dependencies (#37333) add 765242f225 Clarify docs around --package-filter flags in docs breeze commands (#37354) add a4002aecdb Improve speed of regular upgrades when dependencies change. (#37360) add 69dd406a33 Turn Pydantic into an optional dependency (#37320) add d7c2e3e265 Fix static checks add 928e3265d2 Bring back accidentally commented out tests (#37386) add a575f444f9 Include `airflow_pre_installed_providers.txt` into sdist distribution (#37388) add 89e16d20a6 Fix intermittent failures coming from buildkit parallel builds (#37403) add 7363e98366 Force Python 3.9+ version when building reproducible packages (#37401) add 49aba01457 Use Python 3.9 (reproducibility) in relase branch PROD builds (#37411) add 85d0a95b5f Uninstall twine before installing it in CI (#37415) add 7586d91ee7 Avoid side-effects for providers-manager related tests (#37414) add b889c0f040 Fix typo (copy&paste victim) introduced in twine fix (#37428) add 8324c87e05 Revoking audit_log permission from all users except admin (#37501) add 4cec0d872d Replace usage of `datetime.utcnow` and `datetime.utcfromtimestamp` in dev (#37473) add 26a6da4e33 Combine coverage databases to include output from multiprocessing (#37485) add 3484669902 Bring back installing airflow with constraints (--use-airflow-version) (#37487) add 4a3e01f42b Update slack channel names following new naming schemes (#37495) add 540de6bb15 Replace other Python 3.11 and 3.12 deprecations (#37478) add dc564f6d52 Update to newer version of pre-commit and build tools (#37494) add d930f2341e Distribute CI/PROD regular builds among multiple workers (#37503) add 8b3f44cc62 bump: kind 0.22.0 (#37499) add dad2955e07 Fixing an edge case of breeze publish-docs summary (#37506) add 2ff677cfc3 Fallback to locally installed k9s on ARM architecture (#37371) add ede675e87d Handle two types of k9s execution and add better diagnostics (#37510) add 72871a182b Validate is it possible to build wheel from sdist distribution (#37476) add 90d963fce7 Fix wrong test after fixing audit log permission (#37547) add f142050e44 Fix failing home view test after changing audit log permissions (#37550) add 0188536949 Synchronize missing changes in breeze with main and regenerate images add 0a7f402e97 Update black linter example in `STATIC_CODE_CHECKS.rst` (#36249) add 9235b08074 fix inheritance checking of security manager in FabAuthManager (#36343) add cf6340d6d8 Add libxml2 install command for macOS in contributor quick start doc (#36388) add b412cb88f4 Update Objectstore tutorial with prereqs section (#36983) add 858e707a2a Handle SystemExit raised in the task. (#36986) add 786e8dccff Use execution_date= param as a backup to base date for grid view (#37018) add 58a00260d2 Remove superfluous `@Sentry.enrich_errors` (#37002) add 63818add40 Upgrade yarn stack in pre-commits (#37048) add 607e1d5b8a Fixing status icon alignment for various views (#36804) add fa703a85ee Re-add old licences-UI file to gitignore (#37175) add 91fb91bdd3 Type Check for retries: Add tests (#37183) add 5e9e7131d0 Resolve handler close race condition at triggerer shutdown (#37206) add eff4ac4929 Use `next_url` instead of `next` (#37225) add cefdd77124 Fix the otel config descriptions (#37229) add 74443be591 Fix the value of `dateTimeAttrFormat` constant (#37285) add bc2646be04 Fix permission check on DAGs when `access_entity` is specified (#37290) add 76a701d804 Fix permissions of parent folders for log file handler (#37310) add f4954228b0 treeview - deterministic and new getter (#37162) add acddcbd1fd Add more-itertools as dependency of common-sql (#37359) add 58c675350f Fix typo in deferring.rst (#37367) add 137c824e55 Remove unused pageSize method. (#37319) add c5b20dbaec Rmeove flakiness introduced by cleanup in configuration test (#37375) add d5ee8149bc Add redirect for deprecated page (#37384) add d102d9f214 Remove `markdown` from core dependencies (#37396) add db85f7e107 Add Python 3.12 exclusions in providers/pyproject.toml (#37404) add f78f35da9b Fix bug with clicking url-unsafe tags (#37395) add d01c6ada17 Fix a bug in fundamentals doc (#37440) add 6d9677e0d5 Bump undici from 5.26.3 to 5.28.3 in /airflow/www (#37493) add 169b9d52fd Fix Airflow serialization for namedtuple (#37168) add 7e172a308f Change margin to padding so first task can be selected (#37527) add a4c95070a4 Fix upgrade docs to reflect true cli flags available (#37231) add d5fe3c6b60 Update version to 2.8.2 add 258decf38d Revert "Fix future DagRun rarely triggered by race conditions when max_active_runs reached its upper limit. (#31414)" (#37596) add ae51fb8092 Change AirflowTaskTimeout to inherit BaseException (#35653) add 2c0a119147 Update RELEASE_NOTES.rst No new revisions were added by this update. Summary of changes: .dockerignore | 3 + .gitattributes | 9 +- .github/ISSUE_TEMPLATE/airflow_bug_report.yml | 4 +- .../ISSUE_TEMPLATE/airflow_doc_issue_report.yml | 2 +- .../airflow_helmchart_bug_report.yml | 2 +- .../airflow_providers_bug_report.yml | 2 +- .github/ISSUE_TEMPLATE/feature_request.yml | 2 +- .github/PULL_REQUEST_TEMPLATE.md | 2 +- .github/SECURITY.md | 31 +- .github/actions/breeze/action.yml | 13 +- .github/actions/build-ci-images/action.yml | 20 +- .github/actions/build-prod-images/action.yml | 23 +- .github/actions/post_tests_failure/action.yml | 6 +- .github/actions/post_tests_success/action.yml | 2 +- .../actions/prepare_breeze_and_image/action.yml | 5 + .github/boring-cyborg.yml | 17 +- .github/workflows/build-images.yml | 203 +- .github/workflows/ci.yml | 472 ++-- .github/workflows/codeql-analysis.yml | 4 +- .github/workflows/recheck-old-bug-report.yml | 2 +- .github/workflows/stale.yml | 2 +- .gitignore | 1 + .pre-commit-config.yaml | 83 +- BREEZE.rst | 2879 +------------------- CI.rst | 654 ----- COMMITTERS.rst | 36 +- CONTRIBUTING.rst | 1613 +---------- Dockerfile | 28 +- Dockerfile.ci | 100 +- IMAGES.rst | 561 ---- INSTALL | 13 +- README.md | 30 +- RELEASE_NOTES.rst | 124 + TESTING.rst | 2573 ----------------- airflow/__init__.py | 2 +- airflow/api/common/mark_tasks.py | 5 - .../api_connexion/endpoints/variable_endpoint.py | 3 +- airflow/api_connexion/openapi/v1.yaml | 4 +- airflow/api_connexion/security.py | 5 +- airflow/auth/managers/fab/fab_auth_manager.py | 16 +- .../auth/managers/fab/security_manager/override.py | 26 +- airflow/cli/commands/info_command.py | 2 +- airflow/config_templates/config.yml | 38 +- airflow/config_templates/unit_tests.cfg | 2 +- airflow/configuration.py | 3 +- airflow/exceptions.py | 8 +- airflow/jobs/backfill_job_runner.py | 8 +- airflow/jobs/scheduler_job_runner.py | 17 +- airflow/models/baseoperator.py | 2 +- airflow/models/connection.py | 39 +- airflow/models/dag.py | 25 +- airflow/models/dagbag.py | 12 +- airflow/models/dagrun.py | 69 +- airflow/models/expandinput.py | 3 +- airflow/models/taskinstance.py | 45 +- airflow/operators/python.py | 23 +- airflow/providers/MANAGING_PROVIDERS_LIFECYCLE.rst | 14 +- airflow/providers/amazon/aws/hooks/athena_sql.py | 168 ++ airflow/providers/amazon/aws/hooks/base_aws.py | 2 +- .../amazon/aws/utils/connection_wrapper.py | 5 +- airflow/providers/amazon/provider.yaml | 9 +- airflow/providers/apache/beam/README.md | 2 +- airflow/providers/apache/beam/provider.yaml | 4 + airflow/providers/apache/hdfs/sensors/hdfs.py | 2 + airflow/providers/apache/hive/provider.yaml | 2 +- airflow/providers/apache/livy/provider.yaml | 2 +- airflow/providers/atlassian/jira/provider.yaml | 6 +- .../celery/executors/celery_executor_utils.py | 6 +- airflow/providers/cncf/kubernetes/provider.yaml | 4 +- .../cncf/kubernetes/python_kubernetes_script.py | 2 +- airflow/providers/common/sql/provider.yaml | 1 + .../providers/databricks/hooks/databricks_sql.py | 2 +- airflow/providers/databricks/provider.yaml | 4 +- airflow/providers/dbt/cloud/provider.yaml | 2 +- .../elasticsearch/log/es_json_formatter.py | 6 +- airflow/providers/exasol/hooks/exasol.py | 2 +- .../triggers/cloud_storage_transfer_service.py | 8 +- airflow/providers/google/provider.yaml | 3 +- airflow/providers/http/hooks/http.py | 3 +- airflow/providers/http/provider.yaml | 4 +- airflow/providers/influxdb/provider.yaml | 2 +- airflow/providers/papermill/hooks/kernel.py | 5 +- airflow/providers/papermill/provider.yaml | 5 + airflow/providers/pinecone/provider.yaml | 5 +- airflow/providers/sftp/hooks/sftp.py | 170 +- airflow/providers/sftp/provider.yaml | 6 + airflow/providers/sftp/sensors/sftp.py | 55 +- .../sftp/triggers}/__init__.py | 0 airflow/providers/sftp/triggers/sftp.py | 137 + airflow/providers/slack/hooks/slack.py | 148 +- airflow/providers/slack/operators/slack.py | 40 +- airflow/providers/slack/provider.yaml | 2 +- airflow/providers/slack/transfers/sql_to_slack.py | 32 +- airflow/providers/snowflake/hooks/snowflake.py | 2 +- airflow/providers_manager.py | 22 + airflow/reproducible_build.yaml | 4 +- airflow/sentry.py | 3 +- airflow/serialization/pydantic/dag.py | 10 +- airflow/serialization/pydantic/dag_run.py | 6 +- airflow/serialization/pydantic/dataset.py | 2 +- airflow/serialization/pydantic/job.py | 3 +- airflow/serialization/pydantic/taskinstance.py | 15 +- airflow/serialization/pydantic/tasklog.py | 2 +- airflow/serialization/serde.py | 56 +- airflow/serialization/serialized_objects.py | 10 +- airflow/settings.py | 24 +- airflow/utils/context.pyi | 2 +- airflow/utils/db.py | 7 + airflow/utils/file.py | 12 + airflow/utils/log/file_task_handler.py | 37 +- airflow/utils/log/timezone_aware.py | 4 +- airflow/utils/log/trigger_handler.py | 8 +- airflow/utils/pydantic.py | 69 + airflow/utils/python_virtualenv_script.jinja2 | 19 +- airflow/utils/timezone.py | 22 + airflow/www/auth.py | 4 +- airflow/www/forms.py | 4 +- airflow/www/static/js/api/useClearTaskDryRun.ts | 5 +- airflow/www/static/js/api/useMarkTaskDryRun.ts | 5 +- airflow/www/static/js/components/Clipboard.tsx | 8 +- airflow/www/static/js/components/Graph/Edge.tsx | 6 +- airflow/www/static/js/dag/Main.tsx | 2 +- airflow/www/static/js/dag/StatusBox.tsx | 5 + .../www/static/js/dag/{grid => }/TaskName.test.tsx | 13 +- airflow/www/static/js/dag/TaskName.tsx | 89 + airflow/www/static/js/dag/details/Header.tsx | 2 +- airflow/www/static/js/dag/details/dagRun/index.tsx | 9 +- .../www/static/js/dag/details/graph/Node.test.tsx | 2 +- airflow/www/static/js/dag/details/graph/Node.tsx | 86 +- airflow/www/static/js/dag/details/graph/index.tsx | 14 + airflow/www/static/js/dag/details/graph/utils.ts | 8 + airflow/www/static/js/dag/details/index.tsx | 2 +- .../taskInstance/taskActions/ClearInstance.tsx | 1 + .../taskInstance/taskActions/MarkInstanceAs.tsx | 1 + airflow/www/static/js/dag/grid/TaskName.tsx | 70 - airflow/www/static/js/dag/grid/dagRuns/index.tsx | 12 +- airflow/www/static/js/dag/grid/index.test.tsx | 14 +- airflow/www/static/js/dag/grid/index.tsx | 3 +- airflow/www/static/js/dag/grid/renderTaskRows.tsx | 14 +- airflow/www/static/js/dag/useFilters.tsx | 6 +- airflow/www/static/js/dags.js | 5 - airflow/www/static/js/datetime_utils.js | 2 +- airflow/www/static/js/types/api-generated.ts | 1 + airflow/www/static/js/types/index.ts | 1 + airflow/www/static/js/utils/graph.ts | 7 +- airflow/www/templates/airflow/dag.html | 1 + airflow/www/templates/airflow/dags.html | 5 +- airflow/www/validators.py | 28 +- airflow/www/views.py | 11 +- airflow/www/yarn.lock | 6 +- ...ders.txt => airflow_pre_installed_providers.txt | 0 chart/README.md | 2 +- chart/reproducible_build.yaml | 2 + chart/values.schema.json | 4 +- chart/values.yaml | 4 +- contributing-docs/01_roles_in_airflow_project.rst | 177 ++ contributing-docs/02_how_to_communicate.rst | 152 ++ .../03_contributors_quick_start.rst | 215 +- contributing-docs/04_how_to_contribute.rst | 102 + contributing-docs/05_pull_requests.rst | 248 ++ contributing-docs/06_development_environments.rst | 160 ++ .../07_local_virtualenv.rst | 127 +- .../08_static_code_checks.rst | 158 +- contributing-docs/09_testing.rst | 56 + contributing-docs/10_working_with_git.rst | 199 ++ contributing-docs/11_provider_packages.rst | 233 ++ .../12_airflow_dependencies_and_extras.rst | 223 ++ contributing-docs/13_metadata_database_updates.rst | 53 + contributing-docs/14_node_environment_setup.rst | 118 + contributing-docs/15_architecture_diagrams.rst | 64 + contributing-docs/16_contribution_workflow.rst | 317 +++ contributing-docs/README.rst | 118 + .../images}/airflow_unit_test_mode.png | Bin .../images}/candidates_for_backtrack_triggers.png | Bin .../images}/database_view.png | Bin .../images}/disk_space_osx.png | Bin .../images}/docker_socket.png | Bin .../images}/docker_wsl_integration.png | Bin {images => contributing-docs/images}/fork.png | Bin .../images}/pycharm_debug_breeze.png | Bin .../images}/quick_start/add Interpreter.png | Bin .../images}/quick_start/add_configuration.png | Bin .../images}/quick_start/add_env_variable.png | Bin .../images}/quick_start/airflow_clone.png | Bin .../images}/quick_start/airflow_fork.png | Bin .../quick_start/airflow_gitpod_open_ports.png | Bin .../images}/quick_start/airflow_gitpod_url.png | Bin .../images}/quick_start/ci_tests.png | Bin .../images}/quick_start/click_on_clone.png | Bin .../images}/quick_start/creating_branch_1.png | Bin .../images}/quick_start/creating_branch_2.png | Bin .../images}/quick_start/local_airflow.png | Bin .../images}/quick_start/postgresql_connection.png | Bin .../images}/quick_start/pr1.png | Bin .../images}/quick_start/pr2.png | Bin .../images}/quick_start/pr3.png | Bin .../images}/quick_start/pycharm_clone.png | Bin .../images}/quick_start/start_airflow_tmux.png | Bin .../quick_start/start_airflow_tmux_gitpod.png | Bin .../quick_start/vscode_add_configuration_1.png | Bin .../quick_start/vscode_add_configuration_2.png | Bin .../quick_start/vscode_add_configuration_3.png | Bin .../quick_start/vscode_add_env_variable.png | Bin .../images}/quick_start/vscode_click_on_clone.png | Bin .../images}/quick_start/vscode_clone.png | Bin .../quick_start/vscode_creating_branch_1.png | Bin .../quick_start/vscode_creating_branch_2.png | Bin {images => contributing-docs/images}/rebase.png | Bin {images => contributing-docs/images}/review.png | Bin .../images}/run_unittests.png | Bin .../images}/setup_remote_debugging.png | Bin .../images}/source_code_mapping_ide.png | Bin {images => contributing-docs/images}/workflow.png | Bin contributing-docs/quick-start-ide/README.rst | 42 + .../contributors_quick_start_codespaces.rst | 4 +- .../contributors_quick_start_gitpod.rst | 2 +- .../contributors_quick_start_pycharm.rst | 2 +- .../contributors_quick_start_vscode.rst | 2 +- .../testing/README.rst | 15 +- contributing-docs/testing/dag_testing.rst | 63 + contributing-docs/testing/docker_compose_tests.rst | 103 + contributing-docs/testing/helm_unit_tests.rst | 111 + .../testing/images}/k9s.png | Bin .../testing/images}/kubeconfig-env.png | Bin .../testing/images}/kubernetes-virtualenv.png | Bin .../images}/pycharm/configure_test_runner.png | Bin .../images}/pycharm/pycharm_add_to_context.png | Bin .../images}/pycharm/pycharm_create_tool.png | Bin .../testing/images}/pycharm/running_unittests.png | Bin .../testing/images}/pytest-runner.png | Bin .../testing/images}/run-test.png | Bin .../testing/images}/vscode_add_pytest_settings.png | Bin .../images}/vscode_configure_python_tests.png | Bin .../images}/vscode_install_python_extension.png | Bin .../testing/images}/vscode_run_tests.png | Bin .../images}/vscode_select_pytest_framework.png | Bin contributing-docs/testing/integration_tests.rst | 171 ++ contributing-docs/testing/k8s_tests.rst | 662 +++++ contributing-docs/testing/system_tests.rst | 168 ++ contributing-docs/testing/testing_packages.rst | 123 + contributing-docs/testing/unit_tests.rst | 1150 ++++++++ ...UALLY_GENERATING_IMAGE_CACHE_AND_CONSTRAINTS.md | 16 +- dev/README_RELEASE_AIRFLOW.md | 8 +- dev/README_RELEASE_HELM_CHART.md | 335 ++- dev/README_RELEASE_PROVIDER_PACKAGES.md | 2 +- dev/WHAT_GOES_INTO_THE_NEXT_RELEASE.md | 131 + dev/airflow-github | 20 +- dev/breeze/README.md | 4 +- dev/breeze/doc/01_installation.rst | 480 ++++ dev/breeze/doc/02_customizing.rst | 130 + dev/breeze/doc/03_developer_tasks.rst | 560 ++++ dev/breeze/doc/04_troubleshooting.rst | 160 ++ dev/breeze/doc/05_test_commands.rst | 609 +++++ dev/breeze/doc/06_managing_docker_images.rst | 186 ++ dev/breeze/doc/07_breeze_maintenance_tasks.rst | 70 + dev/breeze/doc/08_ci_tasks.rst | 137 + dev/breeze/doc/09_release_management_tasks.rst | 613 +++++ dev/breeze/doc/10_advanced_breeze_topics.rst | 247 ++ dev/breeze/doc/README.rst | 56 + .../0002-implement-standalone-python-command.md | 2 +- ...-using-contributed-code-when-building-images.md | 2 +- dev/breeze/doc/ci/01_ci_environment.md | 129 + dev/breeze/doc/ci/02_images.md | 585 ++++ dev/breeze/doc/ci/03_github_variables.md | 74 + .../ci/04_selective_checks.md} | 166 +- dev/breeze/doc/ci/05_workflows.md | 325 +++ CI_DIAGRAMS.md => dev/breeze/doc/ci/06_diagrams.md | 25 +- dev/breeze/doc/ci/07_debugging.md | 63 + dev/breeze/doc/ci/08_running_ci_locally.md | 141 + dev/breeze/doc/ci/README.md | 29 + .../breeze/doc/images}/AirflowBreeze_logo.png | Bin .../breeze/doc/images}/output-commands-hash.txt | 0 .../breeze/doc/images}/output-commands.svg | 2 +- .../breeze/doc/images}/output_build-docs.svg | 43 +- dev/breeze/doc/images/output_build-docs.txt | 1 + .../breeze/doc/images}/output_ci-image.svg | 0 .../breeze/doc/images}/output_ci-image.txt | 0 dev/breeze/doc/images/output_ci-image_build.svg | 436 +++ dev/breeze/doc/images/output_ci-image_build.txt | 1 + .../breeze/doc/images}/output_ci-image_pull.svg | 0 .../breeze/doc/images}/output_ci-image_pull.txt | 0 .../breeze/doc/images}/output_ci-image_verify.svg | 0 .../breeze/doc/images}/output_ci-image_verify.txt | 0 .../breeze => dev/breeze/doc/images}/output_ci.svg | 0 .../breeze => dev/breeze/doc/images}/output_ci.txt | 0 .../output_ci_find-backtracking-candidates.svg | 0 .../output_ci_find-backtracking-candidates.txt | 0 .../breeze/doc/images}/output_ci_fix-ownership.svg | 0 .../breeze/doc/images}/output_ci_fix-ownership.txt | 0 .../breeze/doc/images}/output_ci_free-space.svg | 0 .../breeze/doc/images}/output_ci_free-space.txt | 0 .../doc/images}/output_ci_get-workflow-info.svg | 0 .../doc/images}/output_ci_get-workflow-info.txt | 0 .../doc/images}/output_ci_resource-check.svg | 0 .../doc/images}/output_ci_resource-check.txt | 0 .../doc/images}/output_ci_selective-check.svg | 4 +- .../doc/images/output_ci_selective-check.txt | 1 + .../breeze/doc/images}/output_cleanup.svg | 0 .../breeze/doc/images}/output_cleanup.txt | 0 .../doc/images}/output_compile-www-assets.svg | 0 .../doc/images}/output_compile-www-assets.txt | 0 .../breeze/doc/images}/output_down.svg | 0 .../breeze/doc/images}/output_down.txt | 0 .../breeze/doc/images}/output_exec.svg | 0 .../breeze/doc/images}/output_exec.txt | 0 .../breeze/doc/images}/output_k8s.svg | 0 .../breeze/doc/images}/output_k8s.txt | 0 .../doc/images}/output_k8s_build-k8s-image.svg | 0 .../doc/images}/output_k8s_build-k8s-image.txt | 0 .../doc/images}/output_k8s_configure-cluster.svg | 6 +- .../doc/images/output_k8s_configure-cluster.txt | 1 + .../doc/images}/output_k8s_create-cluster.svg | 6 +- .../doc/images/output_k8s_create-cluster.txt | 1 + .../doc/images}/output_k8s_delete-cluster.svg | 4 +- .../doc/images/output_k8s_delete-cluster.txt | 1 + .../doc/images}/output_k8s_deploy-airflow.svg | 6 +- .../doc/images/output_k8s_deploy-airflow.txt | 1 + .../breeze/doc/images}/output_k8s_k9s.svg | 36 +- dev/breeze/doc/images/output_k8s_k9s.txt | 1 + .../breeze/doc/images}/output_k8s_logs.svg | 4 +- dev/breeze/doc/images/output_k8s_logs.txt | 1 + .../doc/images}/output_k8s_run-complete-tests.svg | 6 +- .../doc/images/output_k8s_run-complete-tests.txt | 1 + .../breeze/doc/images}/output_k8s_setup-env.svg | 0 .../breeze/doc/images}/output_k8s_setup-env.txt | 0 .../breeze/doc/images}/output_k8s_shell.svg | 4 +- dev/breeze/doc/images/output_k8s_shell.txt | 1 + .../breeze/doc/images}/output_k8s_status.svg | 4 +- dev/breeze/doc/images/output_k8s_status.txt | 1 + .../breeze/doc/images}/output_k8s_tests.svg | 6 +- dev/breeze/doc/images/output_k8s_tests.txt | 1 + .../doc/images}/output_k8s_upload-k8s-image.svg | 6 +- .../doc/images/output_k8s_upload-k8s-image.txt | 1 + .../breeze/doc/images}/output_prod-image.svg | 0 .../breeze/doc/images}/output_prod-image.txt | 0 .../breeze/doc/images}/output_prod-image_build.svg | 0 .../breeze/doc/images}/output_prod-image_build.txt | 0 .../breeze/doc/images}/output_prod-image_pull.svg | 0 .../breeze/doc/images}/output_prod-image_pull.txt | 0 .../doc/images}/output_prod-image_verify.svg | 0 .../doc/images}/output_prod-image_verify.txt | 0 .../doc/images}/output_release-management.svg | 54 +- .../doc/images/output_release-management.txt | 1 + ...tput_release-management_add-back-references.svg | 0 ...tput_release-management_add-back-references.txt | 0 ...ase-management_clean-old-provider-artifacts.svg | 0 ...ase-management_clean-old-provider-artifacts.txt | 0 ...tput_release-management_create-minor-branch.svg | 0 ...tput_release-management_create-minor-branch.txt | 0 ...put_release-management_generate-constraints.svg | 0 ...put_release-management_generate-constraints.txt | 0 ...management_generate-issue-content-providers.svg | 0 ...management_generate-issue-content-providers.txt | 0 ...ease-management_generate-providers-metadata.svg | 0 ...ease-management_generate-providers-metadata.txt | 0 ...elease-management_install-provider-packages.svg | 0 ...elease-management_install-provider-packages.txt | 0 ..._release-management_prepare-airflow-package.svg | 0 ..._release-management_prepare-airflow-package.txt | 0 ..._release-management_prepare-airflow-tarball.svg | 0 ..._release-management_prepare-airflow-tarball.txt | 0 ...lease-management_prepare-helm-chart-package.svg | 112 + ...lease-management_prepare-helm-chart-package.txt | 1 + ...lease-management_prepare-helm-chart-tarball.svg | 166 ++ ...lease-management_prepare-helm-chart-tarball.txt | 1 + ...e-management_prepare-provider-documentation.svg | 0 ...e-management_prepare-provider-documentation.txt | 0 ...elease-management_prepare-provider-packages.svg | 0 ...elease-management_prepare-provider-packages.txt | 0 ...ut_release-management_prepare-python-client.svg | 0 ...ut_release-management_prepare-python-client.txt | 0 .../output_release-management_publish-docs.svg | 49 +- .../output_release-management_publish-docs.txt | 1 + ...tput_release-management_release-prod-images.svg | 0 ...tput_release-management_release-prod-images.txt | 0 .../output_release-management_start-rc-process.svg | 0 .../output_release-management_start-rc-process.txt | 0 .../output_release-management_start-release.svg | 0 .../output_release-management_start-release.txt | 0 ...utput_release-management_update-constraints.svg | 0 ...utput_release-management_update-constraints.txt | 0 ...release-management_verify-provider-packages.svg | 94 +- ...release-management_verify-provider-packages.txt | 1 + .../breeze/doc/images}/output_sbom.svg | 0 .../breeze/doc/images}/output_sbom.txt | 0 .../output_sbom_build-all-airflow-images.svg | 0 .../output_sbom_build-all-airflow-images.txt | 0 ...output_sbom_generate-providers-requirements.svg | 0 ...output_sbom_generate-providers-requirements.txt | 0 .../output_sbom_update-sbom-information.svg | 50 +- .../images/output_sbom_update-sbom-information.txt | 1 + .../breeze/doc/images}/output_setup.svg | 0 .../breeze/doc/images}/output_setup.txt | 0 .../doc/images}/output_setup_autocomplete.svg | 0 .../doc/images}/output_setup_autocomplete.txt | 0 .../output_setup_check-all-params-in-groups.svg | 42 +- .../output_setup_check-all-params-in-groups.txt | 1 + .../breeze/doc/images}/output_setup_config.svg | 2 +- dev/breeze/doc/images/output_setup_config.txt | 1 + .../output_setup_regenerate-command-images.svg | 46 +- .../output_setup_regenerate-command-images.txt | 1 + .../doc/images}/output_setup_self-upgrade.svg | 0 .../doc/images}/output_setup_self-upgrade.txt | 0 .../output_setup_synchronize-local-mounts.svg | 0 .../output_setup_synchronize-local-mounts.txt | 0 .../breeze/doc/images}/output_setup_version.svg | 0 .../breeze/doc/images}/output_setup_version.txt | 0 .../breeze/doc/images}/output_shell.svg | 48 +- dev/breeze/doc/images/output_shell.txt | 1 + .../breeze/doc/images}/output_start-airflow.svg | 2 +- dev/breeze/doc/images/output_start-airflow.txt | 1 + .../breeze/doc/images}/output_static-checks.svg | 90 +- dev/breeze/doc/images/output_static-checks.txt | 1 + .../breeze/doc/images}/output_testing.svg | 0 .../breeze/doc/images}/output_testing.txt | 0 .../breeze/doc/images}/output_testing_db-tests.svg | 70 +- dev/breeze/doc/images/output_testing_db-tests.txt | 1 + .../output_testing_docker-compose-tests.svg | 0 .../output_testing_docker-compose-tests.txt | 0 .../doc/images}/output_testing_helm-tests.svg | 0 .../doc/images}/output_testing_helm-tests.txt | 0 .../images}/output_testing_integration-tests.svg | 2 +- .../images/output_testing_integration-tests.txt | 1 + .../doc/images}/output_testing_non-db-tests.svg | 68 +- .../doc/images/output_testing_non-db-tests.txt | 1 + .../breeze/doc/images}/output_testing_tests.svg | 70 +- dev/breeze/doc/images/output_testing_tests.txt | 1 + dev/breeze/pyproject.toml | 5 +- dev/breeze/src/airflow_breeze/breeze.py | 2 - .../src/airflow_breeze/commands/ci_commands.py | 7 +- .../airflow_breeze/commands/ci_image_commands.py | 17 +- .../src/airflow_breeze/commands/common_options.py | 11 + .../common_package_installation_options.py | 8 + .../airflow_breeze/commands/developer_commands.py | 18 +- .../commands/developer_commands_config.py | 3 +- .../airflow_breeze/commands/kubernetes_commands.py | 88 +- .../commands/kubernetes_commands_config.py | 1 + .../commands/production_image_commands.py | 2 +- .../commands/release_candidate_command.py | 126 +- .../commands/release_management_commands.py | 517 +++- .../commands/release_management_commands_config.py | 31 + .../src/airflow_breeze/commands/sbom_commands.py | 5 +- .../src/airflow_breeze/commands/setup_commands.py | 3 +- .../airflow_breeze/commands/testing_commands.py | 42 +- .../commands/testing_commands_config.py | 42 +- .../src/airflow_breeze/configure_rich_click.py | 5 +- dev/breeze/src/airflow_breeze/global_constants.py | 22 +- .../airflow_breeze/params/common_build_params.py | 6 +- .../src/airflow_breeze/params/shell_params.py | 11 +- dev/breeze/src/airflow_breeze/pre_commit_ids.py | 3 + .../prepare_providers/provider_documentation.py | 6 +- .../prepare_providers/provider_packages.py | 6 +- .../templates/PROVIDER_INDEX_TEMPLATE.rst.jinja2 | 12 +- .../airflow_breeze/utils/docker_command_utils.py | 4 +- .../src/airflow_breeze/utils/docs_publisher.py | 4 +- dev/breeze/src/airflow_breeze/utils/github.py | 4 +- .../src/airflow_breeze/utils/kubernetes_utils.py | 3 +- dev/breeze/src/airflow_breeze/utils/packages.py | 4 +- dev/breeze/src/airflow_breeze/utils/parallel.py | 4 +- dev/breeze/src/airflow_breeze/utils/path_utils.py | 2 + .../src/airflow_breeze/utils/python_versions.py | 11 + .../src/airflow_breeze/utils/reproducible.py | 86 +- dev/breeze/src/airflow_breeze/utils/run_utils.py | 24 - .../src/airflow_breeze/utils/selective_checks.py | 150 +- dev/breeze/src/airflow_breeze/utils/visuals.py | 5 +- dev/breeze/tests/test_selective_checks.py | 221 +- dev/check_files.py | 46 +- dev/refresh_images.sh | 2 +- docker_tests/requirements.txt | 4 +- docker_tests/test_prod_image.py | 5 +- docs/README.rst | 35 +- .../connections/athena.rst | 63 + docs/apache-airflow-providers-amazon/index.rst | 1 + .../{athena.rst => athena/athena_boto.rst} | 4 +- .../operators/athena/athena_sql.rst | 63 + .../operators/athena/index.rst | 48 + .../operators/index.rst | 1 + docs/apache-airflow-providers-amazon/redirects.txt | 1 + .../apache-airflow-providers-apache-hive/index.rst | 2 +- .../sensors/sftp_sensor.rst | 8 + .../operators/slack_api.rst | 18 +- .../operators/sql_to_slack.rst | 18 + .../howto/create-custom-providers.rst | 2 +- .../modules_management.rst | 24 +- .../authoring-and-scheduling/cron.rst | 70 + .../authoring-and-scheduling/deferring.rst | 2 +- .../authoring-and-scheduling/index.rst | 1 + docs/apache-airflow/core-concepts/dag-run.rst | 36 - docs/apache-airflow/core-concepts/dags.rst | 19 +- .../apache-airflow/core-concepts/objectstorage.rst | 2 +- docs/apache-airflow/extra-packages-ref.rst | 4 +- docs/apache-airflow/howto/custom-operator.rst | 82 + docs/apache-airflow/howto/docker-compose/index.rst | 4 +- docs/apache-airflow/installation/index.rst | 21 +- .../installation/supported-versions.rst | 2 +- docs/apache-airflow/installation/upgrading.rst | 19 +- docs/apache-airflow/redirects.txt | 1 + docs/apache-airflow/security/security_model.rst | 18 +- docs/apache-airflow/tutorial/fundamentals.rst | 2 +- docs/apache-airflow/tutorial/objectstorage.rst | 28 +- docs/build_docs.py | 4 +- docs/conf.py | 3 +- docs/docker-stack/README.md | 12 +- docs/docker-stack/build-arg-ref.rst | 2 +- docs/docker-stack/build.rst | 2 +- .../extending/add-airflow-configuration/Dockerfile | 2 +- .../extending/add-apt-packages/Dockerfile | 2 +- .../add-build-essential-extend/Dockerfile | 2 +- .../extending/add-providers/Dockerfile | 2 +- .../extending/add-pypi-packages/Dockerfile | 2 +- .../extending/add-requirement-packages/Dockerfile | 2 +- .../extending/custom-providers/Dockerfile | 2 +- .../extending/embedding-dags/Dockerfile | 2 +- .../extending/writable-directory/Dockerfile | 2 +- docs/docker-stack/entrypoint.rst | 14 +- docs/docker-stack/index.rst | 2 +- docs/spelling_wordlist.txt | 1 + generated/PYPI_README.md | 21 +- generated/README.md | 2 +- generated/provider_dependencies.json | 42 +- dev/hatch_build.py => hatch_build.py | 18 +- images/breeze/output_build-docs.txt | 1 - images/breeze/output_ci-image_build.svg | 420 --- images/breeze/output_ci-image_build.txt | 1 - images/breeze/output_ci_selective-check.txt | 1 - images/breeze/output_k8s_configure-cluster.txt | 1 - images/breeze/output_k8s_create-cluster.txt | 1 - images/breeze/output_k8s_delete-cluster.txt | 1 - images/breeze/output_k8s_deploy-airflow.txt | 1 - images/breeze/output_k8s_k9s.txt | 1 - images/breeze/output_k8s_logs.txt | 1 - images/breeze/output_k8s_run-complete-tests.txt | 1 - images/breeze/output_k8s_shell.txt | 1 - images/breeze/output_k8s_status.txt | 1 - images/breeze/output_k8s_tests.txt | 1 - images/breeze/output_k8s_upload-k8s-image.txt | 1 - images/breeze/output_release-management.txt | 1 - .../output_release-management_publish-docs.txt | 1 - ...release-management_verify-provider-packages.txt | 1 - .../breeze/output_sbom_update-sbom-information.txt | 1 - .../output_setup_check-all-params-in-groups.txt | 1 - images/breeze/output_setup_config.txt | 1 - .../output_setup_regenerate-command-images.txt | 1 - images/breeze/output_shell.txt | 1 - images/breeze/output_start-airflow.txt | 1 - images/breeze/output_static-checks.txt | 1 - images/breeze/output_testing_db-tests.txt | 1 - images/breeze/output_testing_integration-tests.txt | 1 - images/breeze/output_testing_non-db-tests.txt | 1 - images/breeze/output_testing_tests.txt | 1 - kubernetes_tests/test_kubernetes_pod_operator.py | 1 - ...iders.txt => prod_image_installed_providers.txt | 0 pyproject.toml | 409 +-- scripts/ci/docker-compose/backend-mysql.yml | 1 - scripts/ci/docker-compose/backend-none.yml | 2 - scripts/ci/docker-compose/backend-postgres.yml | 1 - .../ci/docker-compose/backend-sqlite-no-volume.yml | 2 - scripts/ci/docker-compose/backend-sqlite.yml | 1 - scripts/ci/docker-compose/devcontainer.env | 5 +- .../ci/docker-compose/integration-cassandra.yml | 1 - scripts/ci/docker-compose/integration-celery.yml | 2 - scripts/ci/docker-compose/integration-kerberos.yml | 1 - scripts/ci/docker-compose/integration-mongo.yml | 1 - scripts/ci/docker-compose/integration-pinot.yml | 2 - scripts/ci/docker-compose/integration-statsd.yml | 4 +- scripts/ci/docker-compose/integration-trino.yml | 1 - scripts/ci/docker-compose/local.yml | 9 +- scripts/ci/install_breeze.sh | 12 +- scripts/ci/kubernetes/k8s_requirements.txt | 7 +- .../ci/pre_commit/pre_commit_breeze_cmd_line.py | 13 +- .../pre_commit_check_integrations_list.py | 4 +- .../pre_commit_check_pre_commit_hooks.py | 2 +- .../pre_commit_check_provider_yaml_files.py | 8 +- scripts/ci/pre_commit/pre_commit_insert_extras.py | 10 +- .../pre_commit_new_session_in_provide_session.py | 5 +- .../pre_commit_sort_installed_providers.py | 5 +- .../ci/pre_commit/pre_commit_supported_versions.py | 2 +- .../pre_commit_update_build_dependencies.py | 56 + .../pre_commit_update_chart_dependencies.py | 80 + .../pre_commit_update_providers_dependencies.py | 60 +- ..._commit_update_providers_dependencies.py.md5sum | 2 +- .../pre_commit_update_source_date_epoch.py | 29 +- .../pre_commit_validate_operators_init.py | 236 ++ scripts/cov/cov_runner.py | 12 +- scripts/docker/clean-logs.sh | 2 +- scripts/docker/common.sh | 2 +- scripts/docker/entrypoint_ci.sh | 37 +- ...install_airflow_dependencies_from_branch_tip.sh | 11 +- scripts/in_container/_in_container_utils.sh | 2 +- .../in_container/install_airflow_and_providers.py | 18 +- scripts/in_container/run_generate_constraints.py | 14 +- scripts/in_container/run_resource_check.py | 2 +- .../in_container/update_quarantined_test_status.py | 4 +- tests/always/test_connection.py | 13 +- tests/always/test_example_dags.py | 5 + tests/always/test_providers_manager.py | 11 +- tests/api/common/test_airflow_health.py | 86 +- .../endpoints/test_dag_run_endpoint.py | 4 +- .../endpoints/test_provider_endpoint.py | 2 +- .../endpoints/test_variable_endpoint.py | 20 +- tests/api_experimental/client/test_local_client.py | 4 +- tests/api_experimental/common/test_mark_tasks.py | 49 +- .../endpoints/test_rpc_api_endpoint.py | 2 + tests/api_internal/test_internal_api_call.py | 2 + tests/auth/managers/fab/test_fab_auth_manager.py | 32 +- tests/cli/commands/test_info_command.py | 31 +- tests/conftest.py | 13 + tests/core/test_configuration.py | 52 +- tests/core/test_core.py | 9 +- tests/core/test_settings.py | 24 +- .../test_backfill_with_upstream_failed_task.py} | 21 +- tests/jobs/test_backfill_job.py | 30 +- tests/models/test_baseoperator.py | 18 +- tests/models/test_cleartasks.py | 5 +- tests/models/test_connection.py | 64 + tests/models/test_dag.py | 17 +- tests/models/test_taskinstance.py | 31 + .../providers/amazon/aws/hooks/test_athena_sql.py | 150 + tests/providers/amazon/aws/hooks/test_base_aws.py | 30 +- .../amazon/aws/hooks/test_batch_waiters.py | 4 +- .../amazon/aws/hooks/test_cloud_formation.py | 9 +- tests/providers/amazon/aws/hooks/test_datasync.py | 6 +- tests/providers/amazon/aws/hooks/test_dynamodb.py | 6 +- tests/providers/amazon/aws/hooks/test_ec2.py | 34 +- tests/providers/amazon/aws/hooks/test_ecr.py | 4 +- tests/providers/amazon/aws/hooks/test_eks.py | 20 +- tests/providers/amazon/aws/hooks/test_emr.py | 16 +- .../providers/amazon/aws/hooks/test_eventbridge.py | 4 +- tests/providers/amazon/aws/hooks/test_glue.py | 6 +- .../amazon/aws/hooks/test_glue_catalog.py | 4 +- .../amazon/aws/hooks/test_glue_crawler.py | 16 +- .../amazon/aws/hooks/test_hooks_signature.py | 1 + tests/providers/amazon/aws/hooks/test_kinesis.py | 5 +- tests/providers/amazon/aws/hooks/test_logs.py | 4 +- tests/providers/amazon/aws/hooks/test_neptune.py | 52 + tests/providers/amazon/aws/hooks/test_rds.py | 4 +- .../amazon/aws/hooks/test_redshift_cluster.py | 14 +- tests/providers/amazon/aws/hooks/test_s3.py | 52 +- tests/providers/amazon/aws/hooks/test_sagemaker.py | 6 +- .../amazon/aws/hooks/test_secrets_manager.py | 4 +- tests/providers/amazon/aws/hooks/test_ses.py | 6 +- tests/providers/amazon/aws/hooks/test_sns.py | 4 +- tests/providers/amazon/aws/hooks/test_sqs.py | 4 +- tests/providers/amazon/aws/hooks/test_ssm.py | 4 +- .../amazon/aws/hooks/test_step_function.py | 4 +- .../amazon/aws/log/test_cloudwatch_task_handler.py | 8 +- .../amazon/aws/log/test_s3_task_handler.py | 9 +- .../amazon/aws/operators/test_datasync.py | 50 +- tests/providers/amazon/aws/operators/test_ec2.py | 26 +- .../amazon/aws/operators/test_glue_databrew.py | 4 +- .../providers/amazon/aws/operators/test_neptune.py | 152 ++ tests/providers/amazon/aws/operators/test_rds.py | 62 +- tests/providers/amazon/aws/operators/test_s3.py | 36 +- .../aws/operators/test_sagemaker_notebook.py | 4 +- tests/providers/amazon/aws/operators/test_sqs.py | 123 +- .../amazon/aws/secrets/test_secrets_manager.py | 20 +- .../amazon/aws/secrets/test_systems_manager.py | 14 +- .../amazon/aws/sensors/test_cloud_formation.py | 87 +- .../providers/amazon/aws/sensors/test_dynamodb.py | 49 +- tests/providers/amazon/aws/sensors/test_ec2.py | 10 +- .../aws/sensors/test_glue_catalog_partition.py | 12 +- tests/providers/amazon/aws/sensors/test_rds.py | 22 +- .../amazon/aws/sensors/test_redshift_cluster.py | 66 +- tests/providers/amazon/aws/sensors/test_sqs.py | 439 +-- .../amazon/aws/system/utils/test_helpers.py | 4 +- .../amazon/aws/transfers/test_azure_blob_to_s3.py | 4 +- .../amazon/aws/transfers/test_gcs_to_s3.py | 4 +- .../amazon/aws/transfers/test_hive_to_dynamodb.py | 8 +- .../amazon/aws/transfers/test_http_to_s3.py | 4 +- .../amazon/aws/transfers/test_local_to_s3.py | 6 +- .../amazon/aws/transfers/test_s3_to_sftp.py | 4 +- .../amazon/aws/transfers/test_sftp_to_s3.py | 4 +- .../amazon/aws/waiters/test_custom_waiters.py | 4 +- .../apache/hive/transfers/test_s3_to_hive.py | 4 +- .../microsoft/azure/hooks/test_synapse.py | 3 +- tests/providers/openai/hooks/test_openai.py | 3 + tests/providers/openai/operators/test_openai.py | 2 + tests/providers/sftp/hooks/test_sftp.py | 327 ++- .../providers/sftp/triggers}/__init__.py | 0 tests/providers/sftp/triggers/test_sftp.py | 203 ++ tests/providers/slack/hooks/test_slack.py | 332 ++- tests/providers/slack/operators/test_slack.py | 82 +- .../providers/slack/transfers/test_sql_to_slack.py | 14 +- .../serialization/serializers/test_serializers.py | 41 +- tests/serialization/test_pydantic_models.py | 2 + tests/serialization/test_serde.py | 75 +- tests/serialization/test_serialized_objects.py | 1 + tests/system/README.md | 39 +- .../example_cloud_storage_transfer_service_aws.py | 3 +- tests/system/providers/sftp/example_sftp_sensor.py | 12 +- tests/system/providers/slack/example_slack.py | 1 + tests/utils/log/test_secrets_masker.py | 18 +- tests/utils/test_log_handlers.py | 30 + tests/utils/test_timezone.py | 46 +- tests/www/test_security.py | 2 - tests/www/views/test_anonymous_as_admin_role.py | 7 +- tests/www/views/test_views_home.py | 9 +- tests/www/views/test_views_rendered.py | 2 +- tests/www/views/test_views_tasks.py | 4 +- tests/www/views/test_views_trigger_dag.py | 2 + 700 files changed, 19084 insertions(+), 12039 deletions(-) delete mode 100644 CI.rst delete mode 100644 IMAGES.rst delete mode 100644 TESTING.rst create mode 100644 airflow/providers/amazon/aws/hooks/athena_sql.py copy airflow/{api_connexion => providers/sftp/triggers}/__init__.py (100%) create mode 100644 airflow/providers/sftp/triggers/sftp.py create mode 100644 airflow/utils/pydantic.py rename airflow/www/static/js/dag/{grid => }/TaskName.test.tsx (83%) create mode 100644 airflow/www/static/js/dag/TaskName.tsx delete mode 100644 airflow/www/static/js/dag/grid/TaskName.tsx rename dev/airflow_pre_installed_providers.txt => airflow_pre_installed_providers.txt (100%) create mode 100644 chart/reproducible_build.yaml create mode 100644 contributing-docs/01_roles_in_airflow_project.rst create mode 100644 contributing-docs/02_how_to_communicate.rst rename CONTRIBUTORS_QUICK_START.rst => contributing-docs/03_contributors_quick_start.rst (80%) create mode 100644 contributing-docs/04_how_to_contribute.rst create mode 100644 contributing-docs/05_pull_requests.rst create mode 100644 contributing-docs/06_development_environments.rst rename LOCAL_VIRTUALENV.rst => contributing-docs/07_local_virtualenv.rst (87%) rename STATIC_CODE_CHECKS.rst => contributing-docs/08_static_code_checks.rst (88%) create mode 100644 contributing-docs/09_testing.rst create mode 100644 contributing-docs/10_working_with_git.rst create mode 100644 contributing-docs/11_provider_packages.rst create mode 100644 contributing-docs/12_airflow_dependencies_and_extras.rst create mode 100644 contributing-docs/13_metadata_database_updates.rst create mode 100644 contributing-docs/14_node_environment_setup.rst create mode 100644 contributing-docs/15_architecture_diagrams.rst create mode 100644 contributing-docs/16_contribution_workflow.rst create mode 100644 contributing-docs/README.rst rename {images => contributing-docs/images}/airflow_unit_test_mode.png (100%) rename {images => contributing-docs/images}/candidates_for_backtrack_triggers.png (100%) rename {images => contributing-docs/images}/database_view.png (100%) rename {images => contributing-docs/images}/disk_space_osx.png (100%) rename {images => contributing-docs/images}/docker_socket.png (100%) rename {images => contributing-docs/images}/docker_wsl_integration.png (100%) rename {images => contributing-docs/images}/fork.png (100%) rename {images => contributing-docs/images}/pycharm_debug_breeze.png (100%) rename {images => contributing-docs/images}/quick_start/add Interpreter.png (100%) rename {images => contributing-docs/images}/quick_start/add_configuration.png (100%) rename {images => contributing-docs/images}/quick_start/add_env_variable.png (100%) rename {images => contributing-docs/images}/quick_start/airflow_clone.png (100%) rename {images => contributing-docs/images}/quick_start/airflow_fork.png (100%) rename {images => contributing-docs/images}/quick_start/airflow_gitpod_open_ports.png (100%) rename {images => contributing-docs/images}/quick_start/airflow_gitpod_url.png (100%) rename {images => contributing-docs/images}/quick_start/ci_tests.png (100%) rename {images => contributing-docs/images}/quick_start/click_on_clone.png (100%) rename {images => contributing-docs/images}/quick_start/creating_branch_1.png (100%) rename {images => contributing-docs/images}/quick_start/creating_branch_2.png (100%) rename {images => contributing-docs/images}/quick_start/local_airflow.png (100%) rename {images => contributing-docs/images}/quick_start/postgresql_connection.png (100%) rename {images => contributing-docs/images}/quick_start/pr1.png (100%) rename {images => contributing-docs/images}/quick_start/pr2.png (100%) rename {images => contributing-docs/images}/quick_start/pr3.png (100%) rename {images => contributing-docs/images}/quick_start/pycharm_clone.png (100%) rename {images => contributing-docs/images}/quick_start/start_airflow_tmux.png (100%) rename {images => contributing-docs/images}/quick_start/start_airflow_tmux_gitpod.png (100%) rename {images => contributing-docs/images}/quick_start/vscode_add_configuration_1.png (100%) rename {images => contributing-docs/images}/quick_start/vscode_add_configuration_2.png (100%) rename {images => contributing-docs/images}/quick_start/vscode_add_configuration_3.png (100%) rename {images => contributing-docs/images}/quick_start/vscode_add_env_variable.png (100%) rename {images => contributing-docs/images}/quick_start/vscode_click_on_clone.png (100%) rename {images => contributing-docs/images}/quick_start/vscode_clone.png (100%) rename {images => contributing-docs/images}/quick_start/vscode_creating_branch_1.png (100%) rename {images => contributing-docs/images}/quick_start/vscode_creating_branch_2.png (100%) rename {images => contributing-docs/images}/rebase.png (100%) rename {images => contributing-docs/images}/review.png (100%) rename {images => contributing-docs/images}/run_unittests.png (100%) rename {images => contributing-docs/images}/setup_remote_debugging.png (100%) rename {images => contributing-docs/images}/source_code_mapping_ide.png (100%) rename {images => contributing-docs/images}/workflow.png (100%) create mode 100644 contributing-docs/quick-start-ide/README.rst rename CONTRIBUTORS_QUICK_START_CODESPACES.rst => contributing-docs/quick-start-ide/contributors_quick_start_codespaces.rst (89%) rename CONTRIBUTORS_QUICK_START_GITPOD.rst => contributing-docs/quick-start-ide/contributors_quick_start_gitpod.rst (97%) rename CONTRIBUTORS_QUICK_START_PYCHARM.rst => contributing-docs/quick-start-ide/contributors_quick_start_pycharm.rst (97%) rename CONTRIBUTORS_QUICK_START_VSCODE.rst => contributing-docs/quick-start-ide/contributors_quick_start_vscode.rst (98%) copy docs/apache-airflow-providers-amazon/operators/index.rst => contributing-docs/testing/README.rst (84%) create mode 100644 contributing-docs/testing/dag_testing.rst create mode 100644 contributing-docs/testing/docker_compose_tests.rst create mode 100644 contributing-docs/testing/helm_unit_tests.rst rename {images/testing => contributing-docs/testing/images}/k9s.png (100%) rename {images/testing => contributing-docs/testing/images}/kubeconfig-env.png (100%) rename {images/testing => contributing-docs/testing/images}/kubernetes-virtualenv.png (100%) rename {images => contributing-docs/testing/images}/pycharm/configure_test_runner.png (100%) rename {images => contributing-docs/testing/images}/pycharm/pycharm_add_to_context.png (100%) rename {images => contributing-docs/testing/images}/pycharm/pycharm_create_tool.png (100%) rename {images => contributing-docs/testing/images}/pycharm/running_unittests.png (100%) rename {images/testing => contributing-docs/testing/images}/pytest-runner.png (100%) rename {images/testing => contributing-docs/testing/images}/run-test.png (100%) rename {images => contributing-docs/testing/images}/vscode_add_pytest_settings.png (100%) rename {images => contributing-docs/testing/images}/vscode_configure_python_tests.png (100%) rename {images => contributing-docs/testing/images}/vscode_install_python_extension.png (100%) rename {images => contributing-docs/testing/images}/vscode_run_tests.png (100%) rename {images => contributing-docs/testing/images}/vscode_select_pytest_framework.png (100%) create mode 100644 contributing-docs/testing/integration_tests.rst create mode 100644 contributing-docs/testing/k8s_tests.rst create mode 100644 contributing-docs/testing/system_tests.rst create mode 100644 contributing-docs/testing/testing_packages.rst create mode 100644 contributing-docs/testing/unit_tests.rst create mode 100644 dev/WHAT_GOES_INTO_THE_NEXT_RELEASE.md create mode 100644 dev/breeze/doc/01_installation.rst create mode 100644 dev/breeze/doc/02_customizing.rst create mode 100644 dev/breeze/doc/03_developer_tasks.rst create mode 100644 dev/breeze/doc/04_troubleshooting.rst create mode 100644 dev/breeze/doc/05_test_commands.rst create mode 100644 dev/breeze/doc/06_managing_docker_images.rst create mode 100644 dev/breeze/doc/07_breeze_maintenance_tasks.rst create mode 100644 dev/breeze/doc/08_ci_tasks.rst create mode 100644 dev/breeze/doc/09_release_management_tasks.rst create mode 100644 dev/breeze/doc/10_advanced_breeze_topics.rst create mode 100644 dev/breeze/doc/README.rst create mode 100644 dev/breeze/doc/ci/01_ci_environment.md create mode 100644 dev/breeze/doc/ci/02_images.md create mode 100644 dev/breeze/doc/ci/03_github_variables.md rename dev/breeze/{SELECTIVE_CHECKS.md => doc/ci/04_selective_checks.md} (61%) create mode 100644 dev/breeze/doc/ci/05_workflows.md rename CI_DIAGRAMS.md => dev/breeze/doc/ci/06_diagrams.md (95%) create mode 100644 dev/breeze/doc/ci/07_debugging.md create mode 100644 dev/breeze/doc/ci/08_running_ci_locally.md create mode 100644 dev/breeze/doc/ci/README.md rename {images => dev/breeze/doc/images}/AirflowBreeze_logo.png (100%) rename {images/breeze => dev/breeze/doc/images}/output-commands-hash.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output-commands.svg (99%) rename {images/breeze => dev/breeze/doc/images}/output_build-docs.svg (84%) create mode 100644 dev/breeze/doc/images/output_build-docs.txt rename {images/breeze => dev/breeze/doc/images}/output_ci-image.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_ci-image.txt (100%) create mode 100644 dev/breeze/doc/images/output_ci-image_build.svg create mode 100644 dev/breeze/doc/images/output_ci-image_build.txt rename {images/breeze => dev/breeze/doc/images}/output_ci-image_pull.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_ci-image_pull.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_ci-image_verify.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_ci-image_verify.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_ci.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_ci.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_ci_find-backtracking-candidates.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_ci_find-backtracking-candidates.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_ci_fix-ownership.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_ci_fix-ownership.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_ci_free-space.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_ci_free-space.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_ci_get-workflow-info.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_ci_get-workflow-info.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_ci_resource-check.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_ci_resource-check.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_ci_selective-check.svg (96%) create mode 100644 dev/breeze/doc/images/output_ci_selective-check.txt rename {images/breeze => dev/breeze/doc/images}/output_cleanup.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_cleanup.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_compile-www-assets.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_compile-www-assets.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_down.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_down.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_exec.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_exec.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_k8s.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_k8s.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_k8s_build-k8s-image.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_k8s_build-k8s-image.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_k8s_configure-cluster.svg (97%) create mode 100644 dev/breeze/doc/images/output_k8s_configure-cluster.txt rename {images/breeze => dev/breeze/doc/images}/output_k8s_create-cluster.svg (97%) create mode 100644 dev/breeze/doc/images/output_k8s_create-cluster.txt rename {images/breeze => dev/breeze/doc/images}/output_k8s_delete-cluster.svg (97%) create mode 100644 dev/breeze/doc/images/output_k8s_delete-cluster.txt rename {images/breeze => dev/breeze/doc/images}/output_k8s_deploy-airflow.svg (97%) create mode 100644 dev/breeze/doc/images/output_k8s_deploy-airflow.txt rename {images/breeze => dev/breeze/doc/images}/output_k8s_k9s.svg (55%) create mode 100644 dev/breeze/doc/images/output_k8s_k9s.txt rename {images/breeze => dev/breeze/doc/images}/output_k8s_logs.svg (97%) create mode 100644 dev/breeze/doc/images/output_k8s_logs.txt rename {images/breeze => dev/breeze/doc/images}/output_k8s_run-complete-tests.svg (98%) create mode 100644 dev/breeze/doc/images/output_k8s_run-complete-tests.txt rename {images/breeze => dev/breeze/doc/images}/output_k8s_setup-env.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_k8s_setup-env.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_k8s_shell.svg (97%) create mode 100644 dev/breeze/doc/images/output_k8s_shell.txt rename {images/breeze => dev/breeze/doc/images}/output_k8s_status.svg (97%) create mode 100644 dev/breeze/doc/images/output_k8s_status.txt rename {images/breeze => dev/breeze/doc/images}/output_k8s_tests.svg (97%) create mode 100644 dev/breeze/doc/images/output_k8s_tests.txt rename {images/breeze => dev/breeze/doc/images}/output_k8s_upload-k8s-image.svg (97%) create mode 100644 dev/breeze/doc/images/output_k8s_upload-k8s-image.txt rename {images/breeze => dev/breeze/doc/images}/output_prod-image.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_prod-image.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_prod-image_build.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_prod-image_build.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_prod-image_pull.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_prod-image_pull.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_prod-image_verify.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_prod-image_verify.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management.svg (66%) create mode 100644 dev/breeze/doc/images/output_release-management.txt rename {images/breeze => dev/breeze/doc/images}/output_release-management_add-back-references.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_add-back-references.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_clean-old-provider-artifacts.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_clean-old-provider-artifacts.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_create-minor-branch.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_create-minor-branch.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_generate-constraints.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_generate-constraints.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_generate-issue-content-providers.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_generate-issue-content-providers.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_generate-providers-metadata.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_generate-providers-metadata.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_install-provider-packages.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_install-provider-packages.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_prepare-airflow-package.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_prepare-airflow-package.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_prepare-airflow-tarball.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_prepare-airflow-tarball.txt (100%) create mode 100644 dev/breeze/doc/images/output_release-management_prepare-helm-chart-package.svg create mode 100644 dev/breeze/doc/images/output_release-management_prepare-helm-chart-package.txt create mode 100644 dev/breeze/doc/images/output_release-management_prepare-helm-chart-tarball.svg create mode 100644 dev/breeze/doc/images/output_release-management_prepare-helm-chart-tarball.txt rename {images/breeze => dev/breeze/doc/images}/output_release-management_prepare-provider-documentation.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_prepare-provider-documentation.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_prepare-provider-packages.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_prepare-provider-packages.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_prepare-python-client.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_prepare-python-client.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_publish-docs.svg (84%) create mode 100644 dev/breeze/doc/images/output_release-management_publish-docs.txt rename {images/breeze => dev/breeze/doc/images}/output_release-management_release-prod-images.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_release-prod-images.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_start-rc-process.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_start-rc-process.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_start-release.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_start-release.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_update-constraints.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_update-constraints.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_release-management_verify-provider-packages.svg (59%) create mode 100644 dev/breeze/doc/images/output_release-management_verify-provider-packages.txt rename {images/breeze => dev/breeze/doc/images}/output_sbom.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_sbom.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_sbom_build-all-airflow-images.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_sbom_build-all-airflow-images.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_sbom_generate-providers-requirements.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_sbom_generate-providers-requirements.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_sbom_update-sbom-information.svg (68%) create mode 100644 dev/breeze/doc/images/output_sbom_update-sbom-information.txt rename {images/breeze => dev/breeze/doc/images}/output_setup.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_setup.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_setup_autocomplete.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_setup_autocomplete.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_setup_check-all-params-in-groups.svg (75%) create mode 100644 dev/breeze/doc/images/output_setup_check-all-params-in-groups.txt rename {images/breeze => dev/breeze/doc/images}/output_setup_config.svg (99%) create mode 100644 dev/breeze/doc/images/output_setup_config.txt rename {images/breeze => dev/breeze/doc/images}/output_setup_regenerate-command-images.svg (72%) create mode 100644 dev/breeze/doc/images/output_setup_regenerate-command-images.txt rename {images/breeze => dev/breeze/doc/images}/output_setup_self-upgrade.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_setup_self-upgrade.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_setup_synchronize-local-mounts.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_setup_synchronize-local-mounts.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_setup_version.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_setup_version.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_shell.svg (90%) create mode 100644 dev/breeze/doc/images/output_shell.txt rename {images/breeze => dev/breeze/doc/images}/output_start-airflow.svg (99%) create mode 100644 dev/breeze/doc/images/output_start-airflow.txt rename {images/breeze => dev/breeze/doc/images}/output_static-checks.svg (67%) create mode 100644 dev/breeze/doc/images/output_static-checks.txt rename {images/breeze => dev/breeze/doc/images}/output_testing.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_testing.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_testing_db-tests.svg (76%) create mode 100644 dev/breeze/doc/images/output_testing_db-tests.txt rename {images/breeze => dev/breeze/doc/images}/output_testing_docker-compose-tests.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_testing_docker-compose-tests.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_testing_helm-tests.svg (100%) rename {images/breeze => dev/breeze/doc/images}/output_testing_helm-tests.txt (100%) rename {images/breeze => dev/breeze/doc/images}/output_testing_integration-tests.svg (99%) create mode 100644 dev/breeze/doc/images/output_testing_integration-tests.txt rename {images/breeze => dev/breeze/doc/images}/output_testing_non-db-tests.svg (73%) create mode 100644 dev/breeze/doc/images/output_testing_non-db-tests.txt rename {images/breeze => dev/breeze/doc/images}/output_testing_tests.svg (80%) create mode 100644 dev/breeze/doc/images/output_testing_tests.txt create mode 100644 docs/apache-airflow-providers-amazon/connections/athena.rst rename docs/apache-airflow-providers-amazon/operators/{athena.rst => athena/athena_boto.rst} (96%) create mode 100644 docs/apache-airflow-providers-amazon/operators/athena/athena_sql.rst create mode 100644 docs/apache-airflow-providers-amazon/operators/athena/index.rst create mode 100644 docs/apache-airflow/authoring-and-scheduling/cron.rst rename dev/hatch_build.py => hatch_build.py (89%) delete mode 100644 images/breeze/output_build-docs.txt delete mode 100644 images/breeze/output_ci-image_build.svg delete mode 100644 images/breeze/output_ci-image_build.txt delete mode 100644 images/breeze/output_ci_selective-check.txt delete mode 100644 images/breeze/output_k8s_configure-cluster.txt delete mode 100644 images/breeze/output_k8s_create-cluster.txt delete mode 100644 images/breeze/output_k8s_delete-cluster.txt delete mode 100644 images/breeze/output_k8s_deploy-airflow.txt delete mode 100644 images/breeze/output_k8s_k9s.txt delete mode 100644 images/breeze/output_k8s_logs.txt delete mode 100644 images/breeze/output_k8s_run-complete-tests.txt delete mode 100644 images/breeze/output_k8s_shell.txt delete mode 100644 images/breeze/output_k8s_status.txt delete mode 100644 images/breeze/output_k8s_tests.txt delete mode 100644 images/breeze/output_k8s_upload-k8s-image.txt delete mode 100644 images/breeze/output_release-management.txt delete mode 100644 images/breeze/output_release-management_publish-docs.txt delete mode 100644 images/breeze/output_release-management_verify-provider-packages.txt delete mode 100644 images/breeze/output_sbom_update-sbom-information.txt delete mode 100644 images/breeze/output_setup_check-all-params-in-groups.txt delete mode 100644 images/breeze/output_setup_config.txt delete mode 100644 images/breeze/output_setup_regenerate-command-images.txt delete mode 100644 images/breeze/output_shell.txt delete mode 100644 images/breeze/output_start-airflow.txt delete mode 100644 images/breeze/output_static-checks.txt delete mode 100644 images/breeze/output_testing_db-tests.txt delete mode 100644 images/breeze/output_testing_integration-tests.txt delete mode 100644 images/breeze/output_testing_non-db-tests.txt delete mode 100644 images/breeze/output_testing_tests.txt rename dev/prod_image_installed_providers.txt => prod_image_installed_providers.txt (100%) create mode 100755 scripts/ci/pre_commit/pre_commit_update_build_dependencies.py create mode 100755 scripts/ci/pre_commit/pre_commit_update_chart_dependencies.py create mode 100755 scripts/ci/pre_commit/pre_commit_validate_operators_init.py copy tests/{providers/amazon/aws/hooks/test_sqs.py => dags/test_backfill_with_upstream_failed_task.py} (60%) create mode 100644 tests/providers/amazon/aws/hooks/test_athena_sql.py create mode 100644 tests/providers/amazon/aws/hooks/test_neptune.py create mode 100644 tests/providers/amazon/aws/operators/test_neptune.py copy {airflow/api_connexion => tests/providers/sftp/triggers}/__init__.py (100%) create mode 100644 tests/providers/sftp/triggers/test_sftp.py