This is an automated email from the ASF dual-hosted git repository.
uranusjr pushed a change to branch java-sdk/1.0.0-beta1-release
in repository https://gitbox.apache.org/repos/asf/airflow.git
from 8f9a17ddeac Bump version to be ready for 1.0.0-beta1 release
add 5e23c6a0cc8 Remove redundant session.commit() calls in FastAPI route
handlers (#69495)
add d3972ae1f6e Simplify airflowctl query parameter handling (#69475)
add 11b49e75593 Add extra field filtering for asset events (#64611)
add a050861fc59 Fix documentation misusing previous/next for task
relationships (#69179)
add 65fba6f1200 Add streaming task log support to BaseExecutor and
FileTaskHandler (#69299)
add 101bc155e0f Thread version_data to callbacks (#69185)
add dc5ddd26202 Add the team_name tag to the Celery executor
task_timeout_error (#69092)
add 01b425a06f6 Reject invalid partition keys in the create asset events
API (#69453)
add c96da9bb453 Skip the ts-sdk supervisor schema check on PRs not
touching ts-sdk (#69583)
add e5465795a88 Fix flaky KubernetesPodOperator log-timestamp test (#69563)
add 70913ba9727 Let area:kubernetes-tests label force the Kubernetes tests
job (#69519)
add 7dc3c2bfe0b Add supplied-token OIDC federation to the Databricks
provider (#69272)
add a0fd2ca4dd6 Remove unnecessary import alias (#69591)
add bc117abce10 Fix SSHRemoteJobOperator still orphaning the remote job on
cancellation (#69490)
add 2e56ce0712a Use task state store for `common.ai` durable execution on
Airflow 3.3+ (#68926)
add 6387f53744b Update python client version/changelog for 3.3.0 release
(#69600)
add a0284d47131 Fixing formatting of a code block in PMC checks for
providers (#69588)
add 50c44b5fcb9 Show Dag Run conf column by default in Dag Runs list
(#68904)
add 47056fe3804 Add quickstart to Anthropic provider (#69589)
add b15c4852bdb Document when to use common.ai vs vendor-specific AI
providers (#69551)
add 162952b3d3d Fix Java SDK RC2 blockers: source packaging, jar
LICENSE/NOTICE, BOM gap (#69582)
add 34520400a2c Remove unused span_status DB column and enum (#69278)
add b21e4299268 Migrate Airbyte provider to `airbyte-api` library 1.0 and
`httpx` (#68882)
add ec42071425d i18n(ko): add missing translations(Jul 8) (#69541)
add 9cdfe440ed4 Add Beeline JDBC parameters to HiveCliHook (#68144)
add 83edc67794b Add quickstart to OpenAI provider (#69590)
add 06f82b65d04 Tune prepare-providers-documentation skill classification
and changelog rules (#69569)
add 478f25e1066 Clarify provider release verification steps (#69577)
add a6b9b08d6cd Set `secure` flag on keycloak login cookies behind a tls
proxy (#69594)
add 3bb4fdb41f7 Mark airflow dags list as migrated to airflowctl (#68444)
add 64655254211 Resolve NPM vulnerabilities in Simple auth manager (#69488)
add 6dfd4e74d6c Update `example_bedrock_agentcore` system test to use
`codeConfiguration` instead of ECR image (#69576)
add 6d155bbf062 Run CI on chart and airflow-ctl release-branch pull
requests (#69626)
add 0e4b6600a45 Default the Anthropic batch model from the connection
(#69624)
add e756975c1ee Add providers E2E tests framework and OpenLineage tests
(#69212)
add 4d56e6c93dd Support delegating providers release process to non-PMC
committers (#69417)
add f0953fb1b1b Fix more Java SDK build edge cases (#69628)
add 354ee3c705e Add TypeScript SDK coordinator schema-mapping tests
(#69297)
add 067e33ab59e Warn for bad combination of parameters for
RedshiftDataOperator (#69524)
add 1494cdfd721 Add back explicit dependencies to ktlint (#69637)
add c50eaa432df Merge branch 'main' into java-sdk/1.0.0-beta1-release
No new revisions were added by this update.
Summary of changes:
.../prepare-providers-documentation/SKILL.md | 41 +-
.dockerignore | 1 +
.github/workflows/additional-prod-image-tests.yml | 37 ++
.github/workflows/ci-amd.yml | 12 +-
.github/workflows/ci-arm.yml | 8 +-
.github/workflows/codeql-analysis.yml | 18 +-
...rflow-e2e-tests.yml => providers-e2e-tests.yml} | 73 ++--
.pre-commit-config.yaml | 1 -
.rat-excludes | 1 +
.../docs/authoring-and-scheduling/assets.rst | 20 +
.../dynamic-task-mapping.rst | 4 +-
airflow-core/docs/best-practices.rst | 4 +-
airflow-core/docs/howto/dynamic-dag-generation.rst | 2 +-
airflow-core/docs/migrations-ref.rst | 6 +-
airflow-core/docs/tutorial/objectstorage.rst | 4 +-
airflow-core/docs/tutorial/taskflow.rst | 2 +-
.../simple/ui/openapi-gen/requests/client.gen.ts | 4 +-
.../ui/openapi-gen/requests/client/client.gen.ts | 19 +-
.../simple/ui/openapi-gen/requests/client/index.ts | 2 +
.../ui/openapi-gen/requests/client/types.gen.ts | 19 +-
.../ui/openapi-gen/requests/client/utils.gen.ts | 22 +-
.../ui/openapi-gen/requests/core/auth.gen.ts | 7 +
.../requests/core/bodySerializer.gen.ts | 14 +-
.../ui/openapi-gen/requests/core/params.gen.ts | 41 +-
.../requests/core/pathSerializer.gen.ts | 12 +-
.../requests/core/queryKeySerializer.gen.ts | 2 +-
.../requests/core/serverSentEvents.gen.ts | 9 +-
.../ui/openapi-gen/requests/core/types.gen.ts | 8 +-
.../ui/openapi-gen/requests/core/utils.gen.ts | 10 +-
.../simple/ui/openapi-gen/requests/sdk.gen.ts | 14 +-
.../auth/managers/simple/ui/package.json | 5 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 478 +++++++--------------
.../src/airflow/api_fastapi/common/parameters.py | 56 +++
.../api_fastapi/core_api/datamodels/assets.py | 20 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 14 +
.../api_fastapi/core_api/routes/public/assets.py | 3 +
.../core_api/routes/public/backfills.py | 1 -
.../api_fastapi/core_api/routes/public/hitl.py | 2 -
.../execution_api/routes/asset_events.py | 38 +-
.../api_fastapi/execution_api/routes/hitl.py | 1 -
.../api_fastapi/execution_api/routes/xcoms.py | 1 -
.../src/airflow/callbacks/callback_requests.py | 2 +
.../src/airflow/cli/commands/dag_command.py | 1 +
airflow-core/src/airflow/dag_processing/manager.py | 6 +-
.../src/airflow/executors/base_executor.py | 14 +
.../src/airflow/executors/workloads/callback.py | 4 +
.../src/airflow/executors/workloads/task.py | 7 +-
.../src/airflow/jobs/scheduler_job_runner.py | 10 +-
airflow-core/src/airflow/migrations/env.py | 10 +
...24_3_4_0_add_gin_index_on_asset_event_extra.py} | 41 +-
...ag.py => 0125_3_4_0_drop_span_status_column.py} | 40 +-
airflow-core/src/airflow/models/dag_version.py | 14 +-
airflow-core/src/airflow/models/dagrun.py | 10 +-
airflow-core/src/airflow/models/taskinstance.py | 4 -
.../src/airflow/models/taskinstancehistory.py | 4 -
airflow-core/src/airflow/models/trigger.py | 27 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 5 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 6 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 6 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 6 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 6 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 4 +-
.../ui/openapi-gen/requests/services.gen.ts | 2 +
.../airflow/ui/openapi-gen/requests/types.gen.ts | 4 +
.../airflow/ui/public/i18n/locales/ko/admin.json | 1 +
.../airflow/ui/public/i18n/locales/ko/common.json | 17 +
.../airflow/ui/public/i18n/locales/ko/dags.json | 5 +
.../src/airflow/ui/src/pages/DagRuns/DagRuns.tsx | 1 -
airflow-core/src/airflow/utils/db.py | 1 +
.../src/airflow/utils/log/file_task_handler.py | 44 +-
airflow-core/src/airflow/utils/span_status.py | 33 --
airflow-core/src/airflow/utils/sqlalchemy.py | 55 ++-
airflow-core/tests/integration/otel/test_otel.py | 9 +-
.../core_api/routes/public/test_assets.py | 105 +++++
.../versions/head/test_asset_events.py | 207 +++++++++
.../tests/unit/callbacks/test_callback_requests.py | 27 ++
.../unit/cli/commands/test_command_deprecations.py | 1 +
.../tests/unit/dag_processing/test_manager.py | 25 ++
.../tests/unit/executors/test_base_executor.py | 8 +
.../tests/unit/executors/test_workloads.py | 60 ++-
airflow-core/tests/unit/jobs/test_scheduler_job.py | 1 +
airflow-core/tests/unit/models/test_dag_version.py | 29 ++
.../tests/unit/models/test_taskinstance.py | 2 -
airflow-core/tests/unit/models/test_trigger.py | 27 ++
.../tests/unit/utils/log/test_file_task_handler.py | 74 ++++
airflow-core/tests/unit/utils/test_db.py | 2 +
.../src/airflowctl/api/datamodels/generated.py | 6 +-
airflow-ctl/src/airflowctl/api/operations.py | 40 +-
.../tests/airflow_ctl/api/test_operations.py | 16 +-
clients/python/CHANGELOG.md | 49 +++
clients/python/version.txt | 2 +-
contributing-docs/14_metadata_database_updates.rst | 4 +-
dev/README_RELEASE_PROVIDERS.md | 125 +++++-
dev/breeze/doc/05_test_commands.rst | 21 +
dev/breeze/doc/ci/04_selective_checks.md | 10 +
.../output_setup_check-all-params-in-groups.svg | 2 +-
.../output_setup_check-all-params-in-groups.txt | 2 +-
.../output_setup_regenerate-command-images.svg | 8 +-
.../output_setup_regenerate-command-images.txt | 2 +-
dev/breeze/doc/images/output_testing.svg | 18 +-
dev/breeze/doc/images/output_testing.txt | 2 +-
.../images/output_testing_providers-e2e-tests.svg | 182 ++++++++
.../images/output_testing_providers-e2e-tests.txt | 1 +
.../airflow_breeze/commands/testing_commands.py | 169 ++++++++
.../commands/testing_commands_config.py | 20 +
dev/breeze/src/airflow_breeze/utils/run_tests.py | 6 +
.../src/airflow_breeze/utils/selective_checks.py | 30 +-
dev/breeze/tests/test_selective_checks.py | 147 +++++--
java-sdk/.gitattributes | 9 +-
java-sdk/README.md | 205 +++++++--
java-sdk/bom/build.gradle.kts | 51 +++
java-sdk/buildSrc/build.gradle.kts | 11 +
.../main/kotlin/airflow-jvm-conventions.gradle.kts | 14 +
java-sdk/sdk/build.gradle.kts | 17 +-
providers-e2e-tests/README.md | 111 +++++
providers-e2e-tests/openlineage/.gitignore | 7 +
.../openlineage}/.pre-commit-config.yaml | 6 +-
.../openlineage}/Dockerfile | 18 +-
providers-e2e-tests/openlineage/README.md | 75 ++++
.../openlineage/dags_extra/e2e_versioned_bundle.py | 62 +++
.../dags_extra/openlineage_warmup_dag.py | 24 +-
.../openlineage}/docker-compose-local.yaml | 31 +-
.../openlineage}/docker-compose.yaml | 57 ++-
providers-e2e-tests/openlineage/prepare_dags.py | 126 ++++++
.../openlineage}/pyproject.toml | 7 +-
providers-e2e-tests/openlineage/tests/conftest.py | 194 +++++++++
.../openlineage/tests}/constants.py | 22 +-
providers-e2e-tests/openlineage/tests/harness.py | 246 +++++++++++
providers-e2e-tests/openlineage/tests/task_logs.py | 111 +++++
.../openlineage/tests/test_openlineage_e2e.py | 72 ++++
providers/airbyte/README.rst | 10 +-
providers/airbyte/docs/changelog.rst | 20 +
providers/airbyte/docs/connections.rst | 5 +-
providers/airbyte/docs/index.rst | 10 +-
providers/airbyte/pyproject.toml | 7 +-
.../src/airflow/providers/airbyte/hooks/airbyte.py | 17 +-
.../tests/unit/airbyte/hooks/test_airbyte.py | 44 +-
providers/amazon/docs/operators/ssm.rst | 4 +-
.../amazon/aws/operators/redshift_data.py | 5 +
.../system/amazon/aws/example_bedrock_agentcore.py | 82 +++-
.../amazon/aws/operators/test_redshift_data.py | 15 +
providers/anthropic/docs/index.rst | 36 ++
providers/anthropic/docs/operators/anthropic.rst | 4 +
providers/anthropic/docs/quickstart.rst | 87 ++++
.../providers/anthropic/example_dags}/__init__.py | 0
.../anthropic/example_dags/example_batch.py | 57 +++
.../airflow/providers/anthropic/hooks/anthropic.py | 24 +-
.../airflow/providers/anthropic/operators/batch.py | 10 +-
.../tests/unit/anthropic/hooks/test_anthropic.py | 28 ++
.../tests/unit/anthropic/operators/test_batch.py | 12 +
.../apache/hive/docs/connections/hive_cli.rst | 24 ++
.../airflow/providers/apache/hive/hooks/hive.py | 29 ++
.../providers/apache/hive/operators/hive.py | 5 +
.../hive/tests/unit/apache/hive/hooks/test_hive.py | 118 +++++
.../tests/unit/apache/hive/operators/test_hive.py | 22 +
providers/apache/kafka/docs/index.rst | 1 +
.../providers/celery/executors/celery_executor.py | 3 +-
.../unit/celery/executors/test_celery_executor.py | 60 ++-
.../unit/cncf/kubernetes/utils/test_pod_manager.py | 55 +--
providers/common/ai/docs/index.rst | 40 ++
providers/common/ai/docs/operators/agent.rst | 63 +--
providers/common/ai/provider.yaml | 18 +-
.../airflow/providers/common/ai/durable/base.py | 59 +++
.../providers/common/ai/durable/caching_model.py | 9 +-
.../providers/common/ai/durable/caching_toolset.py | 7 +-
.../airflow/providers/common/ai/durable/storage.py | 7 +-
.../common/ai/durable/task_state_store.py | 185 ++++++++
.../providers/common/ai/get_provider_info.py | 2 +-
.../airflow/providers/common/ai/operators/agent.py | 47 +-
.../ai/tests/unit/common/ai/durable/test_base.py | 46 ++
.../unit/common/ai/durable/test_caching_model.py | 9 +-
.../unit/common/ai/durable/test_caching_toolset.py | 13 +-
.../common/ai/durable/test_task_state_store.py | 252 +++++++++++
.../tests/unit/common/ai/operators/test_agent.py | 73 ++--
.../databricks/docs/connections/databricks.rst | 41 ++
.../providers/databricks/hooks/databricks_base.py | 114 ++++-
.../unit/databricks/hooks/test_databricks_base.py | 228 +++++++++-
.../keycloak/auth_manager/routes/login.py | 4 +-
.../keycloak/auth_manager/routes/test_login.py | 43 ++
providers/openai/docs/index.rst | 36 ++
providers/openai/docs/quickstart.rst | 75 ++++
.../providers/openai/example_dags}/__init__.py | 0
.../openai/example_dags/example_response.py | 26 +-
.../tests/system/openlineage}/constants.py | 13 +-
.../example_openlineage_all_facets_dag.py | 2 +
.../example_openlineage_base_complex_dag.py | 2 +
.../example_openlineage_base_simple_dag.py | 2 +
...mple_openlineage_custom_operator_failure_dag.py | 2 +
...e_openlineage_custom_operator_ol_methods_dag.py | 2 +
.../example_openlineage_defer_simple_dag.py | 10 +-
.../example_openlineage_docs_file_dag.py | 2 +
.../example_openlineage_edge_labels_dag.py | 2 +
.../openlineage/example_openlineage_hitl_dag.py | 2 +
.../example_openlineage_manual_lineage_dag.py | 2 +
.../example_openlineage_mapped_simple_dag.py | 2 +
.../example_openlineage_policy_conf_locked_dag.py | 2 +
...mple_openlineage_policy_conf_source_code_dag.py | 2 +
...xample_openlineage_policy_dag_emit_false_dag.py | 2 +
...mple_openlineage_policy_dag_events_false_dag.py | 2 +
...ple_openlineage_policy_dag_override_task_dag.py | 2 +
...mple_openlineage_policy_extract_metadata_dag.py | 2 +
...xample_openlineage_policy_full_task_info_dag.py | 2 +
.../example_openlineage_policy_hook_lineage_dag.py | 2 +
.../example_openlineage_policy_source_code_dag.py | 2 +
...ample_openlineage_policy_task_emit_false_dag.py | 2 +
...ample_openlineage_schedule_asset_or_time_dag.py | 2 +
.../example_openlineage_schedule_cron_dag.py | 2 +
...nlineage_schedule_cron_trigger_timetable_dag.py | 2 +
...lineage_schedule_delta_trigger_timetable_dag.py | 2 +
...openlineage_schedule_list_complex_assets_dag.py | 2 +
...penlineage_schedule_list_multiple_assets_dag.py | 2 +
...e_openlineage_schedule_list_single_asset_dag.py | 2 +
...ple_openlineage_schedule_multiple_assets_dag.py | 2 +
...schedule_multiple_cron_trigger_timetable_dag.py | 2 +
...xample_openlineage_schedule_single_asset_dag.py | 2 +
.../example_openlineage_schedule_timedelta_dag.py | 2 +
.../example_openlineage_schedule_timetable_dag.py | 2 +
.../example_openlineage_setup_teardown_dag.py | 2 +
.../example_openlineage_short_circuit_dag.py | 2 +
.../example_openlineage_task_groups_dag.py | 2 +
.../example_openlineage_taskflow_simple_dag.py | 9 +-
.../openlineage/example_openlineage_trigger_dag.py | 5 +-
.../example_openlineage_trigger_dag_deferrable.py | 4 +
.../example_openlineage_trigger_failed_dag.py | 3 +
.../example_openlineage_versioned_dag.py | 2 +
.../openlineage_custom_operator_failure_dag.json | 2 +-
.../src/airflow/providers/ssh/utils/remote_job.py | 23 +-
.../ssh/tests/unit/ssh/utils/test_remote_job.py | 135 ++++--
pyproject.toml | 7 +
scripts/ci/prek/check_ci_workflows_in_sync.py | 4 +
.../ci/prek/known_airflow_core_utils_modules.txt | 1 -
...un_mypy_full_dist_local_venv_or_breeze_in_ci.py | 4 +
scripts/cov/core_coverage.py | 1 -
scripts/in_container/run_migration_round_trip.py | 1 -
task-sdk/src/airflow/sdk/api/client.py | 12 +-
task-sdk/src/airflow/sdk/execution_time/comms.py | 2 +
task-sdk/src/airflow/sdk/execution_time/context.py | 8 +
.../airflow/sdk/execution_time/schema/schema.json | 69 +++
.../src/airflow/sdk/execution_time/supervisor.py | 2 +
task-sdk/tests/task_sdk/api/test_client.py | 62 +++
.../tests/task_sdk/execution_time/test_context.py | 45 ++
.../task_sdk/execution_time/test_supervisor.py | 88 ++++
ts-sdk/src/generated/supervisor.ts | 20 +
ts-sdk/tests/coordinator/client.test.ts | 40 ++
ts-sdk/tests/coordinator/integration.test.ts | 2 +
uv.lock | 67 +--
246 files changed, 6210 insertions(+), 1033 deletions(-)
copy .github/workflows/{airflow-e2e-tests.yml => providers-e2e-tests.yml} (56%)
copy
airflow-core/src/airflow/migrations/versions/{0090_3_2_0_add_length_dag_bundle_team_bundle_name.py
=> 0124_3_4_0_add_gin_index_on_asset_event_extra.py} (57%)
copy
airflow-core/src/airflow/migrations/versions/{0111_3_3_0_add_timetable_periodic_to_dag.py
=> 0125_3_4_0_drop_span_status_column.py} (53%)
delete mode 100644 airflow-core/src/airflow/utils/span_status.py
create mode 100644 dev/breeze/doc/images/output_testing_providers-e2e-tests.svg
create mode 100644 dev/breeze/doc/images/output_testing_providers-e2e-tests.txt
create mode 100644 providers-e2e-tests/README.md
create mode 100644 providers-e2e-tests/openlineage/.gitignore
copy {shared/providers_discovery =>
providers-e2e-tests/openlineage}/.pre-commit-config.yaml (89%)
copy {docker-stack-docs/docker-examples/extending/add-pypi-packages-uv =>
providers-e2e-tests/openlineage}/Dockerfile (51%)
create mode 100644 providers-e2e-tests/openlineage/README.md
create mode 100644
providers-e2e-tests/openlineage/dags_extra/e2e_versioned_bundle.py
copy airflow-core/tests/unit/dags/test_dag_reserialize.py =>
providers-e2e-tests/openlineage/dags_extra/openlineage_warmup_dag.py (66%)
copy {task-sdk-integration-tests =>
providers-e2e-tests/openlineage}/docker-compose-local.yaml (50%)
copy {task-sdk-integration-tests =>
providers-e2e-tests/openlineage}/docker-compose.yaml (52%)
create mode 100644 providers-e2e-tests/openlineage/prepare_dags.py
copy {task-sdk-integration-tests =>
providers-e2e-tests/openlineage}/pyproject.toml (89%)
create mode 100644 providers-e2e-tests/openlineage/tests/conftest.py
copy {task-sdk-integration-tests/tests/task_sdk_tests =>
providers-e2e-tests/openlineage/tests}/constants.py (63%)
create mode 100644 providers-e2e-tests/openlineage/tests/harness.py
create mode 100644 providers-e2e-tests/openlineage/tests/task_logs.py
create mode 100644
providers-e2e-tests/openlineage/tests/test_openlineage_e2e.py
create mode 100644 providers/anthropic/docs/quickstart.rst
copy {airflow-core/src/airflow/_shared =>
providers/anthropic/src/airflow/providers/anthropic/example_dags}/__init__.py
(100%)
create mode 100644
providers/anthropic/src/airflow/providers/anthropic/example_dags/example_batch.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/durable/base.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/durable/task_state_store.py
create mode 100644
providers/common/ai/tests/unit/common/ai/durable/test_base.py
create mode 100644
providers/common/ai/tests/unit/common/ai/durable/test_task_state_store.py
create mode 100644 providers/openai/docs/quickstart.rst
copy {airflow-core/src/airflow/_shared =>
providers/openai/src/airflow/providers/openai/example_dags}/__init__.py (100%)
copy airflow-core/src/airflow/example_dags/example_simplest_dag.py =>
providers/openai/src/airflow/providers/openai/example_dags/example_response.py
(63%)
copy {docker-tests/tests/docker_tests =>
providers/openlineage/tests/system/openlineage}/constants.py (64%)