Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add OpenLineage support to S3ToRedshiftOperator #41422

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
a1ba7da
add OpenLineage support to S3ToRedshiftOperator
Artuz37 Aug 9, 2024
2855d9a
add tests
Artuz37 Aug 13, 2024
ce8990f
Update airflow/providers/amazon/aws/transfers/s3_to_redshift.py
Artuz37 Aug 13, 2024
b5813cf
rename open_lineage.py to openlineage.py
Artuz37 Aug 14, 2024
4d82e4d
remove isinstance occurences for hook type checking in s3ToRedshiftOp…
Artuz37 Aug 14, 2024
cdbfe82
add tests to aws/utils/openlineage.py
Artuz37 Aug 16, 2024
feb51f0
Move wrongly placed newsfragment (#41435)
vincbeck Aug 13, 2024
2bf4d20
Fix tests/models/test_variable.py for database isolation mode (#41414)
jscheffl Aug 13, 2024
eee6c1a
Remove deprecated SubDags (#41390)
kaxil Aug 13, 2024
c0b35e8
Rename @span decorator to @add_span to avoid collisions (#41444)
dstandish Aug 13, 2024
6d299a6
Skipping tests for db isolation because similar tests were skipped (#…
bugraoz93 Aug 13, 2024
8801d11
Issue-41243 Fix the Exception name and unpin dependency (#41256)
vikramaditya91 Aug 13, 2024
b927676
ydb provider: add database to table name in bulk upsert, use bulk ups…
uzhastik Aug 14, 2024
ba5ad83
Send context using in venv operator (#41363)
phi-friday Aug 14, 2024
0d4132e
Properly implement termination grace period seconds (#41374)
eakmanrq Aug 14, 2024
b06e8dc
Temporarily disable doc publishing waiting for ASF self-hosted runne…
potiuk Aug 14, 2024
058db4d
Remove deprecated and unused methods / properties on DAG (#41440)
dstandish Aug 14, 2024
8c00fbb
Remove support for deprecated imports like operators/hooks/sensors (#…
jedcunningham Aug 14, 2024
1eab95d
Support templated hostname in NOTES (#41423)
romsharon98 Aug 14, 2024
d34adf5
Check breaking changes have a news fragment (#41443)
uranusjr Aug 14, 2024
65914e2
Rephrase max_tis_per_query config docs (#41448)
RNHTTR Aug 14, 2024
817bb92
Add 2.10.0rc1 to issue template (#41459)
ephraimbuddy Aug 14, 2024
e4a30a0
Update Airflow version to `3.0.0.dev0` (#41456)
jedcunningham Aug 14, 2024
9378fe2
fix: rm deprecated import (#41461)
phi-friday Aug 14, 2024
61d6d3d
Allow 3.x Docker images (#41466)
uranusjr Aug 14, 2024
706e515
Describe behaviour in docstring correctly (#41458)
BasPH Aug 14, 2024
54ea557
feat(docker): Replace `use_dill` with `serializer` (#41356)
phi-friday Aug 14, 2024
4465c08
Export Azure Container Instance log messages to XCOM (#41142)
perry2of5 Aug 14, 2024
90fe944
Deprecate implicit default DAG schedule (#41321)
uranusjr Aug 14, 2024
0ade7a9
Enable pull requests to be run from v*test branches (#41474)
potiuk Aug 14, 2024
7fd3eaf
Microsoft Power BI operator to refresh the dataset (#40356)
ambika-garg Aug 14, 2024
bb04a8b
Prevent provider lowest-dependency tests to run in non-main branch (#…
potiuk Aug 14, 2024
d9fd909
Skip database isolation case for task mapping taskinstance tests (#4…
potiuk Aug 14, 2024
653629b
Make PROD image building works in non-main PRs (#41480)
potiuk Aug 14, 2024
26fd799
Bump axios from 1.6.1 to 1.7.4 in /airflow/www (#41451)
dependabot[bot] Aug 14, 2024
22d05c1
Field Deletion Warning when editing Connections (#41144)
lh5844 Aug 14, 2024
d5a1bd3
Fix news fragment check conditional (#41491)
uranusjr Aug 15, 2024
2d67255
Fix try selector refresh (#41483)
bbovenzi Aug 15, 2024
06f5af1
Fix: Pass hook parameters to SnowflakeSqlApiHook and prep them for AP…
BTeclaw Aug 15, 2024
b218c8f
Fix Kinesis Analytics test (#41489)
ferruzzi Aug 15, 2024
4ea24cd
fix: get task dependencies without serializing task tree to string (#…
mobuchowski Aug 15, 2024
1f5210a
Mark TestSparkKubernetes test as db test (#41500)
potiuk Aug 15, 2024
da73dbb
Fix Non-DB test calculation for main builds (#41499)
potiuk Aug 15, 2024
037e3bc
Remove deprecated code is AWS provider (#41407)
vincbeck Aug 15, 2024
56fb450
Add incremental export and cross account export functionality in `Dyn…
Ghoul-SSZ Aug 15, 2024
ae2048b
Fix variable interpolation in Airflow core release guide (#41510)
jedcunningham Aug 15, 2024
47e5d34
fix: docker decorator pyi signature (#41509)
benbenbang Aug 15, 2024
a2640ea
Partial fix for example_dynamodb_to_s3.py (#41517)
ferruzzi Aug 16, 2024
2fdc824
Fixing user_confirmation for quit action for prepare-provider-documen…
amoghrajesh Aug 16, 2024
8a0f273
Update version_added field for config that are released in 2.10 (#41530)
utkarsharma2 Aug 16, 2024
3555777
Removed deprecated param from local_filesystem (#41533)
gopidesupavan Aug 16, 2024
1571b2c
Fix failing pydantic v1 tests (#41534)
potiuk Aug 16, 2024
9203881
Incorrect try number subtraction producing invalid span id for OTEL a…
howardyoo Aug 16, 2024
e19a754
Util helper deprecated functions removal (#41520)
dirrao Aug 16, 2024
0b709b4
Airflow 3: airflow date utils date_range and days_ago deprecations re…
dirrao Aug 16, 2024
3569838
Delete experimental API (#41434)
vincbeck Aug 16, 2024
e27912d
Refactor DataprocCreateBatchOperator and Dataproc system tests (#41527)
moiseenkov Aug 16, 2024
ced5d36
Airflow 3: store_serialized_dags deprecated parameter usage removal (…
dirrao Aug 16, 2024
6fb650b
Skip task in example_dynamodb_to_s3.py (#41546)
ferruzzi Aug 16, 2024
3ed47e7
Fix `ElasticsearchSQLHook` fails with `AttributeError: __enter__` (#4…
Owen-CH-Leung Aug 17, 2024
bc93fb8
Fix `AwsTaskLogFetcher` missing logs (#41515)
vincbeck Aug 17, 2024
9f3524f
restore python 3.12 support for papermill (#41548)
morokosi Aug 17, 2024
30a9781
Chart: Default airflow version to 2.10.0 (#41529)
utkarsharma2 Aug 17, 2024
012f878
Fix changelog template for new providers w/o relevant commits (#41566)
jscheffl Aug 18, 2024
e24259c
Support pre-versions in version handling (#41565)
jscheffl Aug 18, 2024
29391ee
airflow deprecated settings session_lifetime_days, force_log_out_afte…
dirrao Aug 18, 2024
2e56935
smtp email user and password deprecated config removal (#41539)
dirrao Aug 18, 2024
bed7b14
base excutor deprecated unused validate_command function removal (#41…
dirrao Aug 18, 2024
0bec0ee
Remove debian bullseye support (#41568)
potiuk Aug 18, 2024
24bc4ce
Cleanup installed packages when running provider compatibility tests …
potiuk Aug 18, 2024
0426564
Airflow 3: processor_poll_interval deprecated parameter usage removal…
dirrao Aug 18, 2024
7ff7991
Prepare docs for Aug 2nd wave of providers (#41559)
eladkal Aug 19, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/airflow_bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ body:
the latest release or main to see if the issue is fixed before reporting it.
multiple: false
options:
- "2.10.0b1"
- "2.10.0rc1"
- "2.9.3"
- "main (development)"
- "Other Airflow 2 version (please specify below)"
Expand Down
3 changes: 0 additions & 3 deletions .github/boring-cyborg.yml
Original file line number Diff line number Diff line change
Expand Up @@ -549,12 +549,9 @@ labelPRBasedOnFilePath:
area:API:
- airflow/api/**/*
- airflow/api_connexion/**/*
- airflow/www/api/**/*
- clients/**/*
- docs/apache-airflow/deprecated-rest-api-ref.rst
- docs/apache-airflow/stable-rest-api-ref.rst
- tests/api_connexion/**/*
- tests/www/api/**/*

area:dev-tools:
- scripts/**/*
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -241,14 +241,14 @@ jobs:
pull-request-target: "true"
is-committer-build: ${{ needs.build-info.outputs.is-committer-build }}
push-image: "true"
use-uv: ${{ needs.build-info.outputs.default-branch == 'main' && 'true' || 'false' }}
use-uv: "true"
image-tag: ${{ needs.build-info.outputs.image-tag }}
platform: "linux/amd64"
python-versions: ${{ needs.build-info.outputs.python-versions }}
default-python-version: ${{ needs.build-info.outputs.default-python-version }}
branch: ${{ needs.build-info.outputs.default-branch }}
constraints-branch: ${{ needs.build-info.outputs.constraints-branch }}
build-provider-packages: "true"
build-provider-packages: ${{ needs.build-info.outputs.default-branch == 'main' }}
upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
chicken-egg-providers: ${{ needs.build-info.outputs.chicken-egg-providers }}
docker-cache: ${{ needs.build-info.outputs.docker-cache }}
5 changes: 5 additions & 0 deletions .github/workflows/check-providers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ on: # yamllint disable-line rule:truthy
description: "Tag to set for the image"
required: true
type: string
canary-run:
description: "Whether this is a canary run"
required: true
type: string
default-python-version:
description: "Which version of python should be used by default"
required: true
Expand Down Expand Up @@ -209,6 +213,7 @@ jobs:
PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
VERSION_SUFFIX_FOR_PYPI: "dev0"
VERBOSE: "true"
CLEAN_AIRFLOW_INSTALLATION: "${{ inputs.canary-run }}"
if: inputs.skip-provider-tests != 'true'
steps:
- name: "Cleanup repo"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-image-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ on: # yamllint disable-line rule:truthy
default: "true"
type: string
debian-version:
description: "Base Debian distribution to use for the build (bookworm/bullseye)"
description: "Base Debian distribution to use for the build (bookworm)"
type: string
default: "bookworm"
install-mysql-client-type:
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ on: # yamllint disable-line rule:truthy
push:
branches: ['v[0-9]+-[0-9]+-test']
pull_request:
branches: ['main']
branches: ['main', 'v[0-9]+-[0-9]+-test']
workflow_dispatch:
permissions:
# All other permissions are set to none
Expand Down Expand Up @@ -319,6 +319,7 @@ jobs:
with:
runs-on-as-json-default: ${{ needs.build-info.outputs.runs-on-as-json-default }}
image-tag: ${{ needs.build-info.outputs.image-tag }}
canary-run: ${{ needs.build-info.outputs.canary-run }}
default-python-version: ${{ needs.build-info.outputs.default-python-version }}
upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
affected-providers-list-as-string: ${{ needs.build-info.outputs.affected-providers-list-as-string }}
Expand Down Expand Up @@ -541,7 +542,7 @@ jobs:
default-python-version: ${{ needs.build-info.outputs.default-python-version }}
branch: ${{ needs.build-info.outputs.default-branch }}
push-image: "true"
use-uv: ${{ needs.build-info.outputs.default-branch == 'main' && 'true' || 'false' }}
use-uv: "true"
build-provider-packages: ${{ needs.build-info.outputs.default-branch == 'main' }}
upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
chicken-egg-providers: ${{ needs.build-info.outputs.chicken-egg-providers }}
Expand Down
53 changes: 53 additions & 0 deletions .github/workflows/news-fragment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
---
name: CI

on: # yamllint disable-line rule:truthy
pull_request:
types: [labeled, unlabeled, opened, reopened, synchronize]

jobs:
check-news-fragment:
name: Check News Fragment
runs-on: ubuntu-20.04
if: "contains(github.event.pull_request.labels.*.name, 'airflow3.0:breaking')"

steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
# `towncrier check` runs `git diff --name-only origin/main...`, which
# needs a non-shallow clone.
fetch-depth: 0

- name: Check news fragment
run: >
pipx run towncrier check
--dir .
--config newsfragments/config.toml
--compare-with origin/${{ github.base_ref }}
||
{
printf "\033[1;33mMissing significant newsfragment for PR labeled with
'airflow3.0:breaking'.\nCheck
https://github.com/apache/airflow/blob/main/contributing-docs/16_contribution_workflow.rst
for guidance.\033[m\n"
&&
false
; }
2 changes: 1 addition & 1 deletion .github/workflows/prod-image-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ on: # yamllint disable-line rule:truthy
required: true
type: string
debian-version:
description: "Base Debian distribution to use for the build (bookworm/bullseye)"
description: "Base Debian distribution to use for the build (bookworm)"
type: string
default: "bookworm"
install-mysql-client-type:
Expand Down
21 changes: 0 additions & 21 deletions .github/workflows/prod-image-extra-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,27 +64,6 @@ on: # yamllint disable-line rule:truthy
required: true
type: string
jobs:
bullseye-image:
uses: ./.github/workflows/prod-image-build.yml
with:
runs-on-as-json-public: ${{ inputs.runs-on-as-json-public }}
build-type: "Bullseye"
upload-package-artifact: "false"
image-tag: bullseye-${{ inputs.image-tag }}
debian-version: "bullseye"
python-versions: ${{ inputs.python-versions }}
default-python-version: ${{ inputs.default-python-version }}
platform: "linux/amd64"
branch: ${{ inputs.branch }}
# Always build images during the extra checks and never push them
push-image: "false"
use-uv: ${{ inputs.use-uv }}
build-provider-packages: ${{ inputs.build-provider-packages }}
upgrade-to-newer-dependencies: ${{ inputs.upgrade-to-newer-dependencies }}
chicken-egg-providers: ${{ inputs.chicken-egg-providers }}
constraints-branch: ${{ inputs.constraints-branch }}
docker-cache: ${{ inputs.docker-cache }}

myssql-client-image:
uses: ./.github/workflows/prod-image-build.yml
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/push-image-cache.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ on: # yamllint disable-line rule:truthy
required: true
type: string
debian-version:
description: "Base Debian distribution to use for the build (bookworm/bullseye)"
description: "Base Debian distribution to use for the build (bookworm)"
type: string
default: "bookworm"
install-mysql-client-type:
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/static-checks-mypy-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,9 @@ jobs:
INCLUDE_SUCCESS_OUTPUTS: "${{ inputs.include-success-outputs }}"
PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
VERBOSE: "true"
if: inputs.canary-run == 'true' && inputs.branch == 'main'
# Temporary disabled it until self-hosted ASF runners will be working again
if: false
# if: inputs.canary-run == 'true' && inputs.branch == 'main'
steps:
- name: "Cleanup repo"
shell: bash
Expand Down
19 changes: 1 addition & 18 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -124,11 +124,7 @@ function get_runtime_apt_deps() {
echo
echo "DEBIAN CODENAME: ${debian_version}"
echo
if [[ "${debian_version}" == "bullseye" ]]; then
debian_version_apt_deps="libffi7 libldap-2.4-2 libssl1.1 netcat"
else
debian_version_apt_deps="libffi8 libldap-2.5-0 libssl3 netcat-openbsd"
fi
debian_version_apt_deps="libffi8 libldap-2.5-0 libssl3 netcat-openbsd"
echo
echo "APPLIED INSTALLATION CONFIGURATION FOR DEBIAN VERSION: ${debian_version}"
echo
Expand Down Expand Up @@ -177,19 +173,6 @@ function install_debian_dev_dependencies() {
echo
echo "DEBIAN CODENAME: ${debian_version}"
echo
if [[ "${debian_version}" == "bullseye" ]]; then
echo
echo "Bullseye detected - replacing dependencies in additional dev apt deps"
echo
# Replace dependencies in additional dev apt deps to be compatible with Bullseye
ADDITIONAL_DEV_APT_DEPS=${ADDITIONAL_DEV_APT_DEPS//libgcc-11-dev/libgcc-10-dev}
ADDITIONAL_DEV_APT_DEPS=${ADDITIONAL_DEV_APT_DEPS//netcat-openbsd/netcat}
echo
echo "Replaced bullseye dev apt dependencies"
echo "${ADDITIONAL_DEV_APT_COMMAND}"
echo
fi

# shellcheck disable=SC2086
apt-get install -y --no-install-recommends ${DEV_APT_DEPS} ${ADDITIONAL_DEV_APT_DEPS}
}
Expand Down
42 changes: 17 additions & 25 deletions Dockerfile.ci
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,7 @@ function get_runtime_apt_deps() {
echo
echo "DEBIAN CODENAME: ${debian_version}"
echo
if [[ "${debian_version}" == "bullseye" ]]; then
debian_version_apt_deps="libffi7 libldap-2.4-2 libssl1.1 netcat"
else
debian_version_apt_deps="libffi8 libldap-2.5-0 libssl3 netcat-openbsd"
fi
debian_version_apt_deps="libffi8 libldap-2.5-0 libssl3 netcat-openbsd"
echo
echo "APPLIED INSTALLATION CONFIGURATION FOR DEBIAN VERSION: ${debian_version}"
echo
Expand Down Expand Up @@ -123,19 +119,6 @@ function install_debian_dev_dependencies() {
echo
echo "DEBIAN CODENAME: ${debian_version}"
echo
if [[ "${debian_version}" == "bullseye" ]]; then
echo
echo "Bullseye detected - replacing dependencies in additional dev apt deps"
echo
# Replace dependencies in additional dev apt deps to be compatible with Bullseye
ADDITIONAL_DEV_APT_DEPS=${ADDITIONAL_DEV_APT_DEPS//libgcc-11-dev/libgcc-10-dev}
ADDITIONAL_DEV_APT_DEPS=${ADDITIONAL_DEV_APT_DEPS//netcat-openbsd/netcat}
echo
echo "Replaced bullseye dev apt dependencies"
echo "${ADDITIONAL_DEV_APT_COMMAND}"
echo
fi

# shellcheck disable=SC2086
apt-get install -y --no-install-recommends ${DEV_APT_DEPS} ${ADDITIONAL_DEV_APT_DEPS}
}
Expand Down Expand Up @@ -997,15 +980,23 @@ function determine_airflow_to_use() {
echo
exit 0
fi
if [[ ${CLEAN_AIRFLOW_INSTALLATION=} == "true" ]]; then
echo
echo "${COLOR_BLUE}Uninstalling all packages first${COLOR_RESET}"
echo
pip freeze | grep -ve "^-e" | grep -ve "^#" | grep -ve "^uv" | xargs pip uninstall -y --root-user-action ignore
# Now install rich ad click first to use the installation script
uv pip install rich rich-click click --python "/usr/local/bin/python" \
--constraint https://raw.githubusercontent.com/apache/airflow/constraints-main/constraints-${PYTHON_MAJOR_MINOR_VERSION}.txt
fi
python "${IN_CONTAINER_DIR}/install_airflow_and_providers.py"
echo
echo "${COLOR_BLUE}Reinstalling all development dependencies${COLOR_RESET}"
echo
python "${IN_CONTAINER_DIR}/install_devel_deps.py" \
--constraint https://raw.githubusercontent.com/apache/airflow/constraints-main/constraints-${PYTHON_MAJOR_MINOR_VERSION}.txt
# Some packages might leave legacy typing module which causes test issues
pip uninstall -y typing || true
# Upgrade pytest and pytest extensions to latest version if they have been accidentally
# downgraded by constraints
pip install --upgrade pytest pytest aiofiles aioresponses pytest-asyncio pytest-custom-exit-code \
pytest-icdiff pytest-instafail pytest-mock pytest-rerunfailures pytest-timeouts \
pytest-xdist pytest requests_mock time-machine \
--constraint https://raw.githubusercontent.com/apache/airflow/constraints-main/constraints-${PYTHON_MAJOR_MINOR_VERSION}.txt
fi

if [[ "${USE_AIRFLOW_VERSION}" =~ ^2\.2\..*|^2\.1\..*|^2\.0\..* && "${AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=}" != "" ]]; then
Expand Down Expand Up @@ -1068,8 +1059,9 @@ function check_pydantic() {
echo
echo "${COLOR_YELLOW}Downgrading Pydantic to < 2${COLOR_RESET}"
echo
# Pydantic 1.10.17/1.10.15 conflicts with aws-sam-translator so we need to exclude it
# shellcheck disable=SC2086
${PACKAGING_TOOL_CMD} install ${EXTRA_INSTALL_FLAGS} --upgrade "pydantic<2.0.0"
${PACKAGING_TOOL_CMD} install ${EXTRA_INSTALL_FLAGS} --upgrade "pydantic<2.0.0,!=1.10.17,!=1.10.15"
pip check
else
echo
Expand Down
6 changes: 3 additions & 3 deletions INSTALL
Original file line number Diff line number Diff line change
Expand Up @@ -256,9 +256,9 @@ Those extras are available as regular core airflow extras - they install optiona

# START CORE EXTRAS HERE

aiobotocore, apache-atlas, apache-webhdfs, async, cgroups, cloudpickle, deprecated-api, github-
enterprise, google-auth, graphviz, kerberos, ldap, leveldb, otel, pandas, password, pydantic,
rabbitmq, s3fs, saml, sentry, statsd, uv, virtualenv
aiobotocore, apache-atlas, apache-webhdfs, async, cgroups, cloudpickle, github-enterprise, google-
auth, graphviz, kerberos, ldap, leveldb, otel, pandas, password, pydantic, rabbitmq, s3fs, saml,
sentry, statsd, uv, virtualenv

# END CORE EXTRAS HERE

Expand Down
12 changes: 3 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,9 +122,7 @@ The work to add Windows support is tracked via [#10388](https://github.com/apach
it is not a high priority. You should only use Linux-based distros as "Production" execution environment
as this is the only environment that is supported. The only distro that is used in our CI tests and that
is used in the [Community managed DockerHub image](https://hub.docker.com/p/apache/airflow) is
`Debian Bookworm`. We also have support for legacy ``Debian Bullseye`` base image if you want to build a
custom image but it is deprecated and option to do it will be removed in the Dockerfile that
will accompany Airflow 2.9.3 so you are advised to switch to ``Debian Bookworm`` for your custom images.
`Debian Bookworm`.

<!-- END Requirements, please keep comment here to allow auto update of PyPI readme.md -->
<!-- START Getting started, please keep comment here to allow auto update of PyPI readme.md -->
Expand Down Expand Up @@ -347,13 +345,9 @@ building and testing the OS version. Approximately 6 months before the end-of-re
previous stable version of the OS, Airflow switches the images released to use the latest supported
version of the OS.

For example since ``Debian Buster`` end-of-life was August 2022, Airflow switched the images in `main` branch
to use ``Debian Bullseye`` in February/March 2022. The version was used in the next MINOR release after
the switch happened. In case of the Bullseye switch - 2.3.0 version used ``Debian Bullseye``.
The images released in the previous MINOR version continue to use the version that all other releases
for the MINOR version used. Similar switch from ``Debian Bullseye`` to ``Debian Bookworm`` has been implemented
For example switch from ``Debian Bullseye`` to ``Debian Bookworm`` has been implemented
before 2.8.0 release in October 2023 and ``Debian Bookworm`` will be the only option supported as of
Airflow 2.9.0.
Airflow 2.10.0.

Users will continue to be able to build their images using stable Debian releases until the end of regular
support and building and verifying of the images happens in our CI but no unit tests were executed using
Expand Down
2 changes: 0 additions & 2 deletions RELEASE_NOTES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3674,8 +3674,6 @@ Details in the `SQLAlchemy Changelog <https://docs.sqlalchemy.org/en/14/changelo

Previously, only one backend was used to authorize use of the REST API. In 2.3 this was changed to support multiple backends, separated by comma. Each will be tried in turn until a successful response is returned.

This setting is also used for the deprecated experimental API, which only uses the first option even if multiple are given.

``airflow.models.base.Operator`` is removed (#21505)
""""""""""""""""""""""""""""""""""""""""""""""""""""

Expand Down
2 changes: 1 addition & 1 deletion airflow/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
# under the License.
from __future__ import annotations

__version__ = "2.10.0.dev0"
__version__ = "3.0.0.dev0"

import os
import sys
Expand Down
12 changes: 2 additions & 10 deletions airflow/api/client/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,27 +19,19 @@

from __future__ import annotations

from importlib import import_module
from typing import TYPE_CHECKING

from airflow import api
from airflow.configuration import conf

if TYPE_CHECKING:
from airflow.api.client.api_client import Client
from airflow.api.client.local_client import Client


def get_current_api_client() -> Client:
"""Return current API Client based on current Airflow configuration."""
api_module = import_module(conf.get_mandatory_value("cli", "api_client"))
auth_backends = api.load_auth()
session = None
for backend in auth_backends:
session_factory = getattr(backend, "create_client_session", None)
if session_factory:
session = session_factory()
api_client = api_module.Client(
api_base_url=conf.get("cli", "endpoint_url"),
api_client = Client(
auth=getattr(backend, "CLIENT_AUTH", None),
session=session,
)
Expand Down
Loading