This is an automated email from the ASF dual-hosted git repository.
dependabot[bot] pushed a change to branch
dependabot/npm_and_yarn/airflow-core/src/airflow/ui/react-7c5a0793cf
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard 150cc0ce032 Bump the react group across 1 directory with 2 updates
add 32be8fa754e Detect duplicate remote-logging schemes in provider.yaml
check (#70921)
add 09e49b4cae5 Avoid backlink noise when notifying PRs of uv.lock
conflicts (#71001)
add fb99b1dc0e0 Fix pytest class-scoped fixture deprecation warning in
extract_permissions tests (#71002)
add a1a2e94679f Make provider release changelog entries read for users,
not for us (#70948)
add fc8d6d8b619 Mask nested entities when writing bulk audit-log entries
(#70890)
add ed87a1a024a Refuse a separator-bearing secret id before the team
scoped lookup (#70902)
add 1baee0bf987 Do not import the stored path when rebuilding a Callback
from serialized data (#70704)
add 381339d5e7f Record the relaxed types-paramiko bound in uv.lock (#71039)
add bbb3c066109 Support require_approval in LLMBranchOperator (#70651)
add 79db9950006 Release TI lock before asset listener callbacks (#70951)
add b99aa145c40 Add regression test for SERVER_TERMINATED precedence over
retry (#70774)
add ee2e15e5e51 Update description on What is Airflow (#70547)
add b968192cd3a Mask list-shaped Variable values on deserialization
(#70891)
add 26d53bd1e84 Resolve the constraints a release ships instead of tagging
whatever exists (#71040)
add f0c13dc5f94 Fix task callbacks being skipped when
`TriggerDagRunOperator` gets a 404 (#70719)
add 64002a40580 Explicitly rollback on task state update exception (#71076)
add 22096909486 Only refuse team scoped like secret ids when multi_team is
on (#71078)
add a6265b77cf5 Resolve backfill_id in the access dependency with the type
the routes declare (#70889)
add f81459835ad Resolve the Dag's team when authorizing a Dag found by
lookup (#70893)
add d41ac7b6d21 Hide team scoped values of options registered as sensitive
(#70755)
add 8a15796a93c Add OpensearchRemoteLogIO.from_config and register
opensearch scheme (#70295)
add a424a811da8 Fix typos in README_RELEASE_PYTHON_CLIENT (#71089)
add 0aeec0c7962 Render multi-branch review choices as a multi-select
(#71046)
add b5414588d3e Fix airflowctl list operations ignoring the requested
offset (#70989)
add 562cc3e243c Separate JWT secret env var from the standard Airflow
environment helper (#70896)
add 2731cc29e4c Spark: Fix missing space in YARN waitAppCompletion error
message (#71055)
add 75d57f429e1 UI: Keep task try history consistent when switching tasks
(#70711)
add 9d4245ae51e Stop auto-scrolling task logs while the user is selecting
text (#70594)
add 16df29a4513 UI: Highlight selected Grid task square (#70451)
add 64683c9c84e Document the 409 from XCom create and drop a duplicated
condition (#70992)
add e98b9b3664d chore: rebase onto main to retrigger CI (#70538)
add 44acf383e47 Reference asset events from asset_dag_run_queue (#70972)
add b23fa6b7a95 Allow opentelemetry-exporter-prometheus pre-release in
candidate constraints resolution (#71110)
add 3a08a3d7792 Restrict exception-node deserialization to known classes
without importing the stored name (#68511)
add 64dd235970a Refresh the image cache on canary pushes, not only on the
schedule (#71137)
add a058f7d54eb Only refuse team-scoped-looking env var ids when
multi_team is on (#71079)
add c37ba12f1c1 Resolve release constraints against PyPI providers only
(#71140)
add 5f77c84133f Revert "Limit pandas to < 3 for DataFrame XComs (#70791)"
(#71100)
add 6145746438c Fix orphaned subprocesses and supervisor crash on
heartbeat 409 (#65738)
add f69c195aa7a Bump cryptography (#71139)
add 9a85faa9c55 Fix provider distribution builds failing with flit 4
(#71118)
add 24c00690ab1 Add vatsrahul1001 to the release-constraints workflow
allowlist (#71152)
add dd1f84ab203 Respect retries when a deferrable trigger ends a task with
TaskFailedEvent (#69821)
add fb459dec507 Keep not-ready providers out of the all extra (#71165)
add 4091ccf786b Add support for pandas 3 based xcoms in airflow (#71103)
add e69c1881b32 Refresh the image registry cache in a workflow that cannot
be cancelled (#71171)
add 2b7a0be359c Fail task instances whose stored next_kwargs cannot be
processed (#70685)
add 5af8d6b899e Allow opentelemetry-semantic-conventions pre-release in
constraints resolution (#71177)
add 1b246e8c1eb Complete the Traditional Chinese UI translations (#71019)
add 22ab0dc7dc4 Fix snowflake provider installs picking an unimportable
pyOpenSSL (#71145)
add 2d0ec09fe45 Fix some docs and test gaps following up multi team secret
refusal (#71106)
add 20f6aa09fca Fix ambiguous git refspec when pushing release-candidate
constraints (#71181)
add 2e0b22a2f9e Align Dag Runs docs with Airflow 3 trigger timetable
defaults (#70167)
add 448c1511ad2 Keep task log text selection alive while scrolling (#71148)
add 7b0eae51e0a Add BaseDeadlineReference and deadline_reference to the
SDK public interface (#70706)
add 5ead3bbc575 remove gropus claim from access tokens in the Keycloak
client created by KeycloakAuthManager cli (#71093)
add 52133f167b0 Allow opting out of forwarding Dag-level parameters in
DatabricksRunNowOperator (#70130)
add dc0e0bb084d Add on_kill() to DatabricksTaskBaseOperator to cancel runs
on task kill (#69442)
add b2a195a4a2a Add more provider module categories to the provider page
(#70190)
add 55b35f739c5 Prepare providers release 2026-08-06 (#71219)
add 43384c7d8bc Show which LLM providers each Common AI connection type
reaches (#70497)
add f6c19e476db Stop Dependabot from raising Go SDK PRs against v3-3-test
(#71223)
add f953928d2e4 Bump the react group across 1 directory with 2 updates
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 (150cc0ce032)
\
N -- N -- N
refs/heads/dependabot/npm_and_yarn/airflow-core/src/airflow/ui/react-7c5a0793cf
(f953928d2e4)
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:
.../prepare-providers-documentation/SKILL.md | 70 ++++-
.github/dependabot.yml | 34 +-
.github/workflows/additional-ci-image-checks.yml | 65 +---
.github/workflows/ci-amd.yml | 7 -
.github/workflows/ci-arm.yml | 7 -
.github/workflows/generate-constraints.yml | 34 +-
.github/workflows/refresh-constraints.yml | 72 +++++
.github/workflows/refresh-image-registry-cache.yml | 145 +++++++++
.github/workflows/release-constraints.yml | 255 +++++++++++++++
.github/workflows/update-constraints-on-push.yml | 18 +-
README.md | 2 +
airflow-core/docs/core-concepts/dag-run.rst | 98 ++++--
airflow-core/docs/howto/deadline-alerts.rst | 3 +-
airflow-core/docs/howto/usage-cli.rst | 6 +
airflow-core/docs/index.rst | 6 +-
airflow-core/docs/migrations-ref.rst | 5 +-
airflow-core/newsfragments/69821.bugfix.rst | 1 +
airflow-core/newsfragments/70755.significant.rst | 29 ++
airflow-core/newsfragments/70791.significant.rst | 35 ---
airflow-core/newsfragments/70972.significant.rst | 13 +
airflow-core/newsfragments/71103.significant.rst | 33 ++
.../core_api/openapi/v2-rest-api-generated.yaml | 6 +
.../api_fastapi/core_api/routes/public/assets.py | 6 +-
.../api_fastapi/core_api/routes/public/config.py | 4 +-
.../api_fastapi/core_api/routes/public/dag_run.py | 5 +-
.../api_fastapi/core_api/routes/public/xcom.py | 8 +-
.../src/airflow/api_fastapi/core_api/security.py | 21 +-
.../api_fastapi/core_api/services/public/config.py | 5 +
.../execution_api/routes/task_instances.py | 21 +-
.../src/airflow/api_fastapi/logging/decorators.py | 59 +++-
airflow-core/src/airflow/assets/manager.py | 198 ++++--------
.../src/airflow/jobs/scheduler_job_runner.py | 108 +++----
.../0128_3_4_0_add_asset_event_id_to_adrq.py | 205 ++++++++++++
airflow-core/src/airflow/models/asset.py | 15 +-
airflow-core/src/airflow/models/dag.py | 55 +---
airflow-core/src/airflow/models/taskinstance.py | 13 +-
airflow-core/src/airflow/models/trigger.py | 158 ++++++++--
airflow-core/src/airflow/provider.yaml.schema.json | 8 +
.../src/airflow/secrets/environment_variables.py | 56 ++--
.../airflow/serialization/serialized_objects.py | 36 ++-
.../ui/openapi-gen/requests/services.gen.ts | 1 +
.../airflow/ui/openapi-gen/requests/types.gen.ts | 4 +
.../ui/public/i18n/locales/zh-TW/assets.json | 5 +-
.../ui/public/i18n/locales/zh-TW/common.json | 4 +
.../ui/public/i18n/locales/zh-TW/components.json | 15 +-
.../airflow/ui/public/i18n/locales/zh-TW/dag.json | 8 +-
.../airflow/ui/public/i18n/locales/zh-TW/dags.json | 4 +-
.../ui/src/components/TaskTrySelect.test.tsx | 206 +++++++++---
.../airflow/ui/src/components/TaskTrySelect.tsx | 12 +-
.../ui/src/layouts/Details/Grid/GridTI.test.tsx | 114 +++++++
.../airflow/ui/src/layouts/Details/Grid/GridTI.tsx | 20 +-
.../ui/src/layouts/Details/Grid/constants.ts | 4 +
.../ui/src/pages/TaskInstance/Logs/Logs.test.tsx | 93 +++++-
.../src/pages/TaskInstance/Logs/TaskLogContent.tsx | 36 ++-
.../pages/TaskInstance/Logs/logSelection.test.ts | 147 +++++++++
.../ui/src/pages/TaskInstance/Logs/logSelection.ts | 73 +++++
.../ui/src/pages/TaskInstance/Logs/utils.test.ts | 78 ++++-
.../ui/src/pages/TaskInstance/Logs/utils.ts | 13 +
airflow-core/src/airflow/utils/db.py | 2 +-
airflow-core/tests/unit/always/test_secrets.py | 2 +
.../always/test_secrets_environment_variables.py | 63 ++++
.../core_api/routes/public/test_assets.py | 37 ++-
.../core_api/routes/public/test_config.py | 64 ++++
.../core_api/routes/public/test_dag_run.py | 26 ++
.../api_fastapi/core_api/routes/ui/test_assets.py | 22 +-
.../unit/api_fastapi/core_api/test_security.py | 51 ++-
.../versions/head/test_task_instances.py | 78 +++++
.../unit/api_fastapi/logging/test_decorators.py | 150 +++++++++
airflow-core/tests/unit/assets/test_manager.py | 160 +++++++---
airflow-core/tests/unit/jobs/test_scheduler_job.py | 292 ++++++++++++-----
airflow-core/tests/unit/models/test_dag.py | 116 +++----
.../tests/unit/models/test_taskinstance.py | 17 +-
airflow-core/tests/unit/models/test_trigger.py | 143 ++++++++-
.../unit/serialization/test_dag_serialization.py | 121 ++++++-
.../tests/unit/timetables/test_assets_timetable.py | 5 +-
airflow-ctl/src/airflowctl/api/operations.py | 2 +-
.../tests/airflow_ctl/api/test_operations.py | 23 ++
chart/templates/_helpers.yaml | 18 +-
.../api-server/api-server-deployment.yaml | 5 +-
.../dag-processor/dag-processor-deployment.yaml | 4 +-
.../templates/scheduler/scheduler-deployment.yaml | 5 +-
.../templates/triggerer/triggerer-deployment.yaml | 4 +-
chart/templates/workers/worker-deployment.yaml | 8 +-
.../helm_tests/airflow_aux/test_airflow_common.py | 61 +++-
.../23_provider_hook_migration_to_yaml.rst | 26 ++
dev/MANUALLY_BUILDING_IMAGES.md | 6 +-
...UALLY_GENERATING_IMAGE_CACHE_AND_CONSTRAINTS.md | 78 +++--
dev/README_RELEASE_AIRFLOW.md | 50 ++-
dev/README_RELEASE_PYTHON_CLIENT.md | 4 +-
dev/breeze/doc/09_release_management_tasks.rst | 21 ++
...put_release-management_generate-constraints.svg | 54 ++--
...put_release-management_generate-constraints.txt | 2 +-
.../output_setup_check-all-params-in-groups.svg | 24 +-
.../output_setup_check-all-params-in-groups.txt | 2 +-
.../output_setup_regenerate-command-images.svg | 2 +-
.../output_setup_regenerate-command-images.txt | 2 +-
dev/breeze/doc/images/output_workflow-run.svg | 14 +-
dev/breeze/doc/images/output_workflow-run.txt | 2 +-
.../output_workflow-run_release-constraints.svg | 138 ++++++++
.../output_workflow-run_release-constraints.txt | 1 +
dev/breeze/pyproject.toml | 8 +-
.../commands/release_candidate_command.py | 31 +-
.../src/airflow_breeze/commands/release_command.py | 48 +--
.../commands/release_management_commands.py | 4 +
.../commands/release_management_commands_config.py | 1 +
.../airflow_breeze/commands/workflow_commands.py | 44 +++
.../commands/workflow_commands_config.py | 12 +-
.../prepare_providers/provider_distributions.py | 2 +-
.../airflow_breeze/utils/release_constraints.py | 61 ++++
dev/breeze/tests/test_release_command.py | 57 +---
dev/breeze/tests/test_release_constraints.py | 91 ++++++
dev/breeze/tests/test_selective_checks.py | 21 ++
dev/breeze/uv.lock | 104 +++---
dev/registry/extract_metadata.py | 6 +-
dev/registry/extract_parameters.py | 101 ++++--
dev/registry/extract_versions.py | 74 ++++-
dev/registry/registry_contract_models.py | 1 +
dev/registry/registry_tools/types.py | 69 ++++
dev/registry/tests/test_extract_metadata.py | 56 ++++
dev/registry/tests/test_extract_parameters.py | 99 ++++++
dev/registry/tests/test_extract_versions.py | 161 ++++++++++
.../tests/test_registry_contract_models.py | 19 ++
dev/registry/tests/test_types.py | 26 ++
generated/known_airflow_exceptions.txt | 1 -
providers/.last_release_date.txt | 2 +-
providers/amazon/README.rst | 8 +-
providers/amazon/docs/changelog.rst | 6 +-
providers/amazon/docs/index.rst | 8 +-
providers/amazon/pyproject.toml | 15 +-
.../amazon/aws/secrets/secrets_manager.py | 6 +
.../amazon/aws/secrets/systems_manager.py | 6 +
.../amazon/aws/secrets/test_secrets_manager.py | 26 ++
.../amazon/aws/secrets/test_systems_manager.py | 24 ++
.../unit/amazon/aws/transfers/test_sql_to_s3.py | 10 +-
providers/apache/hdfs/README.rst | 12 +-
providers/apache/hdfs/docs/changelog.rst | 3 +-
providers/apache/hdfs/docs/index.rst | 12 +-
providers/apache/hdfs/pyproject.toml | 15 +-
providers/apache/hive/README.rst | 12 +-
providers/apache/hive/docs/changelog.rst | 3 +-
providers/apache/hive/docs/index.rst | 12 +-
providers/apache/hive/pyproject.toml | 15 +-
providers/apache/spark/docs/changelog.rst | 1 +
.../apache/spark/operators/spark_submit.py | 2 +-
.../apache/spark/operators/test_spark_submit.py | 5 +-
providers/clickhousedb/README.rst | 6 +-
providers/clickhousedb/docs/changelog.rst | 15 -
providers/clickhousedb/docs/index.rst | 6 +-
providers/clickhousedb/provider.yaml | 1 -
providers/clickhousedb/pyproject.toml | 6 +-
.../src/airflow/providers/clickhousedb/__init__.py | 2 +-
providers/common/ai/docs/changelog.rst | 2 +
providers/common/ai/docs/operators/llm_branch.rst | 34 ++
providers/common/ai/provider.yaml | 28 ++
.../providers/common/ai/decorators/llm_branch.py | 11 +-
.../common/ai/example_dags/example_llm_branch.py | 35 +++
.../providers/common/ai/get_provider_info.py | 24 ++
.../airflow/providers/common/ai/mixins/approval.py | 68 +++-
.../airflow/providers/common/ai/operators/llm.py | 9 +-
.../providers/common/ai/operators/llm_branch.py | 74 ++++-
.../providers/common/ai/operators/llm_sql.py | 9 +-
.../unit/common/ai/decorators/test_llm_branch.py | 19 ++
.../tests/unit/common/ai/mixins/test_approval.py | 74 +++++
.../unit/common/ai/operators/test_llm_branch.py | 348 ++++++++++++++++++++-
providers/common/sql/README.rst | 8 +-
providers/common/sql/docs/changelog.rst | 3 +-
providers/common/sql/docs/index.rst | 8 +-
providers/common/sql/pyproject.toml | 15 +-
providers/databricks/README.rst | 12 +-
providers/databricks/docs/changelog.rst | 3 +-
providers/databricks/docs/index.rst | 12 +-
providers/databricks/docs/operators/run_now.rst | 9 +-
providers/databricks/pyproject.toml | 15 +-
.../providers/databricks/operators/databricks.py | 52 ++-
.../unit/databricks/operators/test_databricks.py | 122 +++++++-
providers/edge3/docs/changelog.rst | 1 +
providers/exasol/README.rst | 12 +-
providers/exasol/docs/changelog.rst | 3 +-
providers/exasol/docs/index.rst | 12 +-
providers/exasol/pyproject.toml | 15 +-
providers/fab/docs/changelog.rst | 1 +
providers/git/docs/changelog.rst | 5 +
.../git/src/airflow/providers/git/hooks/git.py | 4 +-
providers/git/tests/unit/git/hooks/test_git.py | 3 +-
providers/google/README.rst | 12 +-
providers/google/docs/changelog.rst | 5 +-
providers/google/docs/index.rst | 12 +-
.../google-cloud-secret-manager-backend.rst | 8 +-
providers/google/pyproject.toml | 15 +-
.../google/cloud/secrets/secret_manager.py | 7 +-
.../google/cloud/secrets/test_secret_manager.py | 22 ++
.../keycloak/auth_manager/cli/commands.py | 2 +-
providers/microsoft/azure/docs/changelog.rst | 2 +
.../providers/microsoft/azure/secrets/key_vault.py | 6 +
.../unit/microsoft/azure/secrets/test_key_vault.py | 24 ++
providers/opensearch/README.rst | 6 +-
providers/opensearch/docs/changelog.rst | 7 +-
providers/opensearch/docs/index.rst | 6 +-
providers/opensearch/docs/logging/index.rst | 16 +
providers/opensearch/provider.yaml | 8 +-
providers/opensearch/pyproject.toml | 6 +-
.../src/airflow/providers/opensearch/__init__.py | 2 +-
.../providers/opensearch/get_provider_info.py | 6 +
.../providers/opensearch/log/os_task_handler.py | 38 +++
.../unit/opensearch/log/test_os_task_handler.py | 121 +++++++
providers/papermill/README.rst | 12 +-
providers/papermill/docs/changelog.rst | 3 +-
providers/papermill/docs/index.rst | 12 +-
providers/papermill/pyproject.toml | 15 +-
providers/postgres/README.rst | 8 +-
providers/postgres/docs/changelog.rst | 3 +-
providers/postgres/docs/index.rst | 8 +-
providers/postgres/pyproject.toml | 15 +-
providers/presto/README.rst | 12 +-
providers/presto/docs/changelog.rst | 3 +-
providers/presto/docs/index.rst | 12 +-
providers/presto/pyproject.toml | 15 +-
providers/salesforce/README.rst | 12 +-
providers/salesforce/docs/changelog.rst | 4 +-
providers/salesforce/docs/index.rst | 12 +-
providers/salesforce/pyproject.toml | 15 +-
.../tests/unit/salesforce/hooks/test_salesforce.py | 9 +-
providers/snowflake/README.rst | 7 +-
providers/snowflake/docs/changelog.rst | 4 +-
providers/snowflake/docs/index.rst | 7 +-
providers/snowflake/pyproject.toml | 19 +-
providers/trino/README.rst | 12 +-
providers/trino/docs/changelog.rst | 3 +-
providers/trino/docs/index.rst | 12 +-
providers/trino/pyproject.toml | 15 +-
providers/weaviate/README.rst | 12 +-
providers/weaviate/docs/changelog.rst | 3 +-
providers/weaviate/docs/index.rst | 12 +-
providers/weaviate/pyproject.toml | 15 +-
providers/yandex/docs/changelog.rst | 1 +
.../airflow/providers/yandex/secrets/lockbox.py | 6 +
.../tests/unit/yandex/secrets/test_lockbox.py | 26 ++
pyproject.toml | 8 -
registry/.eleventy.js | 22 ++
registry/src/_data/types.json | 30 ++
registry/src/css/main.css | 239 ++++++++++++++
registry/src/css/tokens.css | 6 +
registry/src/js/provider-detail.js | 47 ++-
registry/src/js/search.js | 8 +-
registry/src/provider-version.njk | 55 +++-
scripts/ci/notify_uv_lock_conflicts.py | 18 +-
scripts/ci/prek/common_prek_utils.py | 17 +-
scripts/ci/prek/update_airflow_pyproject_toml.py | 20 +-
scripts/in_container/run_generate_constraints.py | 67 ++++
.../in_container/run_provider_yaml_files_check.py | 34 ++
scripts/tests/ci/prek/test_extract_permissions.py | 6 +-
scripts/tests/ci/test_notify_uv_lock_conflicts.py | 29 ++
.../in_container/test_run_generate_constraints.py | 39 +++
.../src/airflow_shared/configuration/parser.py | 124 +++++++-
.../tests/configuration/test_parser.py | 143 +++++++++
task-sdk/docs/api.rst | 4 +
task-sdk/pyproject.toml | 15 +-
task-sdk/src/airflow/sdk/__init__.py | 11 +-
task-sdk/src/airflow/sdk/definitions/callback.py | 22 ++
task-sdk/src/airflow/sdk/definitions/deadline.py | 6 +-
task-sdk/src/airflow/sdk/execution_time/context.py | 5 +
.../src/airflow/sdk/execution_time/supervisor.py | 69 +++-
.../src/airflow/sdk/execution_time/task_runner.py | 98 +++++-
.../src/airflow/sdk/serde/serializers/pandas.py | 49 +--
.../tests/task_sdk/definitions/test_callback.py | 127 ++++++++
.../tests/task_sdk/execution_time/test_context.py | 35 ++-
.../task_sdk/execution_time/test_supervisor.py | 178 ++++++++++-
.../task_sdk/execution_time/test_task_runner.py | 308 +++++++++++++++++-
task-sdk/tests/task_sdk/serde/test_serializers.py | 53 ++--
uv.lock | 114 +++----
270 files changed, 7972 insertions(+), 1742 deletions(-)
create mode 100644 .github/workflows/refresh-constraints.yml
create mode 100644 .github/workflows/refresh-image-registry-cache.yml
create mode 100644 .github/workflows/release-constraints.yml
create mode 100644 airflow-core/newsfragments/69821.bugfix.rst
create mode 100644 airflow-core/newsfragments/70755.significant.rst
delete mode 100644 airflow-core/newsfragments/70791.significant.rst
create mode 100644 airflow-core/newsfragments/70972.significant.rst
create mode 100644 airflow-core/newsfragments/71103.significant.rst
create mode 100644
airflow-core/src/airflow/migrations/versions/0128_3_4_0_add_asset_event_id_to_adrq.py
create mode 100644
airflow-core/src/airflow/ui/src/layouts/Details/Grid/GridTI.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/logSelection.test.ts
create mode 100644
airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/logSelection.ts
create mode 100644
dev/breeze/doc/images/output_workflow-run_release-constraints.svg
create mode 100644
dev/breeze/doc/images/output_workflow-run_release-constraints.txt
create mode 100644 dev/breeze/src/airflow_breeze/utils/release_constraints.py
create mode 100644 dev/breeze/tests/test_release_constraints.py