This is an automated email from the ASF dual-hosted git repository.
ephraimanierobi pushed a commit to branch v2-3-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/v2-3-test by this push:
new 8db8b9e5db Update version to 2.3.1 and add release notes
8db8b9e5db is described below
commit 8db8b9e5db3f97ce04e31ba717961af3943a0f11
Author: Ephraim Anierobi <[email protected]>
AuthorDate: Thu May 19 22:27:16 2022 +0100
Update version to 2.3.1 and add release notes
---
README.md | 14 ++--
RELEASE_NOTES.rst | 76 ++++++++++++++++++++++
airflow/utils/db.py | 1 +
.../installation/supported-versions.rst | 2 +-
docs/docker-stack/README.md | 10 +--
.../customizing/pypi-extras-and-deps.sh | 2 +-
.../customizing/pypi-selected-version.sh | 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/custom-providers/Dockerfile | 2 +-
.../extending/embedding-dags/Dockerfile | 2 +-
.../extending/writable-directory/Dockerfile | 2 +-
docs/docker-stack/entrypoint.rst | 18 ++---
.../ci/pre_commit/pre_commit_supported_versions.py | 2 +-
setup.py | 2 +-
17 files changed, 110 insertions(+), 33 deletions(-)
diff --git a/README.md b/README.md
index b7282212cb..3acb883dc4 100644
--- a/README.md
+++ b/README.md
@@ -85,7 +85,7 @@ Airflow is not a streaming solution, but it is often used to
process real-time d
Apache Airflow is tested with:
-| | Main version (dev) | Stable version (2.3.0)
|
+| | Main version (dev) | Stable version (2.3.1)
|
|---------------------|------------------------------|------------------------------|
| Python | 3.7, 3.8, 3.9, 3.10 | 3.7, 3.8, 3.9, 3.10
|
| Platform | AMD64/ARM64(\*) | AMD64/ARM64(\*)
|
@@ -160,15 +160,15 @@ them to the appropriate format and workflow that your
tool requires.
```bash
-pip install 'apache-airflow==2.3.0' \
- --constraint
"https://raw.githubusercontent.com/apache/airflow/constraints-2.3.0/constraints-3.7.txt"
+pip install 'apache-airflow==2.3.1' \
+ --constraint
"https://raw.githubusercontent.com/apache/airflow/constraints-2.3.1/constraints-3.7.txt"
```
2. Installing with extras (i.e., postgres, google)
```bash
-pip install 'apache-airflow[postgres,google]==2.3.0' \
- --constraint
"https://raw.githubusercontent.com/apache/airflow/constraints-2.3.0/constraints-3.7.txt"
+pip install 'apache-airflow[postgres,google]==2.3.1' \
+ --constraint
"https://raw.githubusercontent.com/apache/airflow/constraints-2.3.1/constraints-3.7.txt"
```
For information on installing provider packages, check
@@ -273,7 +273,7 @@ Apache Airflow version life cycle:
| Version | Current Patch/Minor | State | First Release | Limited
Support | EOL/Terminated |
|-----------|-----------------------|-----------|-----------------|-------------------|------------------|
-| 2 | 2.3.0 | Supported | Dec 17, 2020 | TBD
| TBD |
+| 2 | 2.3.1 | Supported | Dec 17, 2020 | TBD
| TBD |
| 1.10 | 1.10.15 | EOL | Aug 27, 2018 | Dec 17,
2020 | June 17, 2021 |
| 1.9 | 1.9.0 | EOL | Jan 03, 2018 | Aug 27,
2018 | Aug 27, 2018 |
| 1.8 | 1.8.2 | EOL | Mar 19, 2017 | Jan 03,
2018 | Jan 03, 2018 |
@@ -303,7 +303,7 @@ They are based on the official release schedule of Python
and Kubernetes, nicely
2. The "oldest" supported version of Python/Kubernetes is the default one
until we decide to switch to
later version. "Default" is only meaningful in terms of "smoke tests" in CI
PRs, which are run using this
default version and the default reference image available. Currently
`apache/airflow:latest`
- and `apache/airflow:2.3.0` images are Python 3.7 images. This means that
default reference image will
+ and `apache/airflow:2.3.1` images are Python 3.7 images. This means that
default reference image will
become the default at the time when we start preparing for dropping 3.7
support which is few months
before the end of life for Python 3.7.
diff --git a/RELEASE_NOTES.rst b/RELEASE_NOTES.rst
index 3a51174411..60944e7443 100644
--- a/RELEASE_NOTES.rst
+++ b/RELEASE_NOTES.rst
@@ -21,6 +21,82 @@
.. towncrier release notes start
+Airflow 2.3.1 (2022-05-23)
+--------------------------
+
+Significant Changes
+^^^^^^^^^^^^^^^^^^^
+No significant changes.
+
+Bug Fixes
+^^^^^^^^^
+
+- Fix ``dag-processor`` fetch metabase config (#23575)
+- Fix auto upstream dep when expanding non-templated field (#23771)
+- Fix task log is not captured (#23684)
+- Add ``reschedule`` to the serialized fields for the ``BaseSensorOperator``
(#23674)
+- Remove titles from link buttons (#23736)
+- Fix grid details header text overlap (#23728)
+- Ensure ``execution_timeout`` as timedelta (#23655)
+- Don't run pre-migration checks for downgrade (#23634)
+- Add index for event column in log table (#23625)
+- Implement ``send_callback`` method for ``CeleryKubernetesExecutor`` and
``LocalKubernetesExecutor`` (#23617)
+- Fix ``PythonVirtualenvOperator`` templated_fields (#23559)
+- Apply specific ID collation to ``root_dag_id`` too (#23536)
+- Prevent ``KubernetesJobWatcher`` getting stuck on resource too old (#23521)
+- Fix scheduler crash when expanding with mapped task that returned none
(#23486)
+- Fix broken dagrun links when many runs start at the same time (#23462)
+- Fix: Exception when parsing log #20966 (#23301)
+- Handle invalid date parsing in webserver views. (#23161)
+- Pools with negative open slots should not block other pools (#23143)
+- Move around overflow, position and padding (#23044)
+- Change approach to finding bad rows to LEFT OUTER JOIN. (#23528)
+- Only count bad refs when ``moved`` table exists (#23491)
+- Visually distinguish task group summarys (#23488)
+- Remove color change for highly nested groups (#23482)
+- Optimize ``2.3.0`` pre-upgrade check queries (#23458)
+- Add backward compatibility for ``core__sql_alchemy_conn__cmd`` (#23441)
+- Fix literal cross product expansion (#23434)
+- Fix broken task instance link in xcom list (#23367)
+- Fix connection test button (#23345)
+- fix cli ``airflow dags show`` for mapped operator (#23339)
+- Don't show grid actions if server would reject with permission denied
(#23332)
+- Use run_id for ``ti.mark_success_url`` (#23330)
+- Fix update user auth stats (#23314)
+- Use ``<Time />`` in Mapped Instance table (#23313)
+- Fix duplicated Kubernetes DeprecationWarnings (#23302)
+- Store grid view selection in url params (#23290)
+- Remove custom signal handling in Triggerer (#23274)
+- Override pool for TaskInstance when pool is passed from cli. (#23258)
+- Show warning if '/' is used in a DAG run ID (#23106)
+- Use kubernetes queue in kubernetes hybrid executors (#23048)
+- Add tags inside try block. (#21784)
+- Hide some task instance attributes (#23338)
+
+Doc only changes
+^^^^^^^^^^^^^^^^
+
+- Add slim images to docker-stack docs index (#23601)
+- Update dags.rst (#23579)
+- Move ``dag_processing.processor_timeouts`` to counters section (#23393)
+- Clarify that bundle extras should not be used for PyPi installs (#23697)
+- Synchronize support for Postgres and K8S in docs (#23673)
+- Replace DummyOperator references in docs (#23502)
+- Add doc notes for keyword-only args for ``expand()`` and ``partial()``
(#23373)
+
+Misc/Internal
+^^^^^^^^^^^^^
+
+- Add typing for airflow/configuration.py (#23716)
+- Disable Flower by default from docker-compose (#23685)
+- Added postgres 14 to support versions(including breeze) (#23506)
+- add K8S 1.24 support (#23637)
+- update K8S-KIND to 0.13.0 (#23636)
+- Refactor code references from tree to grid (#23254)
+- [FIX] remove python 3.6 (#23409)
+- Fix empty image preparation (#23304)
+
+
Airflow 2.3.0 (2022-04-30)
--------------------------
diff --git a/airflow/utils/db.py b/airflow/utils/db.py
index e624650dae..2999f08495 100644
--- a/airflow/utils/db.py
+++ b/airflow/utils/db.py
@@ -90,6 +90,7 @@ REVISION_HEADS_MAP = {
"2.2.4": "587bdf053233",
"2.2.5": "587bdf053233",
"2.3.0": "b1b348e02d07",
+ "2.3.1": "1de7bc13c950",
}
diff --git a/docs/apache-airflow/installation/supported-versions.rst
b/docs/apache-airflow/installation/supported-versions.rst
index fc6e06bef3..ad6672eeae 100644
--- a/docs/apache-airflow/installation/supported-versions.rst
+++ b/docs/apache-airflow/installation/supported-versions.rst
@@ -29,7 +29,7 @@ Apache Airflow version life cycle:
========= ===================== ========= ===============
================= ================
Version Current Patch/Minor State First Release Limited Support
EOL/Terminated
========= ===================== ========= ===============
================= ================
-2 2.3.0 Supported Dec 17, 2020 TBD
TBD
+2 2.3.1 Supported Dec 17, 2020 TBD
TBD
1.10 1.10.15 EOL Aug 27, 2018 Dec 17, 2020
June 17, 2021
1.9 1.9.0 EOL Jan 03, 2018 Aug 27, 2018
Aug 27, 2018
1.8 1.8.2 EOL Mar 19, 2017 Jan 03, 2018
Jan 03, 2018
diff --git a/docs/docker-stack/README.md b/docs/docker-stack/README.md
index bb5c92c088..ca95723ea8 100644
--- a/docs/docker-stack/README.md
+++ b/docs/docker-stack/README.md
@@ -31,12 +31,12 @@ Every time a new version of Airflow is released, the images
are prepared in the
[apache/airflow DockerHub](https://hub.docker.com/r/apache/airflow)
for all the supported Python versions.
-You can find the following images there (Assuming Airflow version `2.3.0`):
+You can find the following images there (Assuming Airflow version `2.3.1`):
* `apache/airflow:latest` - the latest released Airflow image with default
Python version (3.7 currently)
* `apache/airflow:latest-pythonX.Y` - the latest released Airflow image with
specific Python version
-* `apache/airflow:2.3.0` - the versioned Airflow image with default Python
version (3.7 currently)
-* `apache/airflow:2.3.0-pythonX.Y` - the versioned Airflow image with specific
Python version
+* `apache/airflow:2.3.1` - the versioned Airflow image with default Python
version (3.7 currently)
+* `apache/airflow:2.3.1-pythonX.Y` - the versioned Airflow image with specific
Python version
Those are "reference" regular images. They contain the most common set of
extras, dependencies and providers that are
often used by the users and they are good to "try-things-out" when you want to
just take Airflow for a spin,
@@ -47,8 +47,8 @@ via [Building the
image](https://airflow.apache.org/docs/docker-stack/build.html
* `apache/airflow:slim-latest` - the latest released Airflow
image with default Python version (3.7 currently)
* `apache/airflow:slim-latest-pythonX.Y` - the latest released Airflow
image with specific Python version
-* `apache/airflow:slim-2.3.0` - the versioned Airflow image with
default Python version (3.7 currently)
-* `apache/airflow:slim-2.3.0-pythonX.Y` - the versioned Airflow image with
specific Python version
+* `apache/airflow:slim-2.3.1` - the versioned Airflow image with
default Python version (3.7 currently)
+* `apache/airflow:slim-2.3.1-pythonX.Y` - the versioned Airflow image with
specific Python version
The Apache Airflow image provided as convenience package is optimized for
size, and
it provides just a bare minimal set of the extras and dependencies installed
and in most cases
diff --git
a/docs/docker-stack/docker-examples/customizing/pypi-extras-and-deps.sh
b/docs/docker-stack/docker-examples/customizing/pypi-extras-and-deps.sh
index ff3a581930..aeb40a6370 100755
--- a/docs/docker-stack/docker-examples/customizing/pypi-extras-and-deps.sh
+++ b/docs/docker-stack/docker-examples/customizing/pypi-extras-and-deps.sh
@@ -26,7 +26,7 @@ pushd "${TEMP_DOCKER_DIR}"
cp "${AIRFLOW_SOURCES}/Dockerfile" "${TEMP_DOCKER_DIR}"
# [START build]
-export AIRFLOW_VERSION=2.3.0
+export AIRFLOW_VERSION=2.3.1
export DEBIAN_VERSION="bullseye"
export DOCKER_BUILDKIT=1
diff --git
a/docs/docker-stack/docker-examples/customizing/pypi-selected-version.sh
b/docs/docker-stack/docker-examples/customizing/pypi-selected-version.sh
index dcec046cb7..c73f10fc4e 100755
--- a/docs/docker-stack/docker-examples/customizing/pypi-selected-version.sh
+++ b/docs/docker-stack/docker-examples/customizing/pypi-selected-version.sh
@@ -26,7 +26,7 @@ pushd "${TEMP_DOCKER_DIR}"
cp "${AIRFLOW_SOURCES}/Dockerfile" "${TEMP_DOCKER_DIR}"
# [START build]
-export AIRFLOW_VERSION=2.3.0
+export AIRFLOW_VERSION=2.3.1
export DOCKER_BUILDKIT=1
docker build . \
diff --git
a/docs/docker-stack/docker-examples/extending/add-apt-packages/Dockerfile
b/docs/docker-stack/docker-examples/extending/add-apt-packages/Dockerfile
index ca4508aeb4..c963327df0 100644
--- a/docs/docker-stack/docker-examples/extending/add-apt-packages/Dockerfile
+++ b/docs/docker-stack/docker-examples/extending/add-apt-packages/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:2.3.0
+FROM apache/airflow:2.3.1
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
diff --git
a/docs/docker-stack/docker-examples/extending/add-build-essential-extend/Dockerfile
b/docs/docker-stack/docker-examples/extending/add-build-essential-extend/Dockerfile
index f0e098c3ac..82ecb8a30a 100644
---
a/docs/docker-stack/docker-examples/extending/add-build-essential-extend/Dockerfile
+++
b/docs/docker-stack/docker-examples/extending/add-build-essential-extend/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:2.3.0
+FROM apache/airflow:2.3.1
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
diff --git
a/docs/docker-stack/docker-examples/extending/add-providers/Dockerfile
b/docs/docker-stack/docker-examples/extending/add-providers/Dockerfile
index 51b2bd8e66..7bc25a9120 100644
--- a/docs/docker-stack/docker-examples/extending/add-providers/Dockerfile
+++ b/docs/docker-stack/docker-examples/extending/add-providers/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:2.3.0
+FROM apache/airflow:2.3.1
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
diff --git
a/docs/docker-stack/docker-examples/extending/add-pypi-packages/Dockerfile
b/docs/docker-stack/docker-examples/extending/add-pypi-packages/Dockerfile
index e56a65166f..41ab576262 100644
--- a/docs/docker-stack/docker-examples/extending/add-pypi-packages/Dockerfile
+++ b/docs/docker-stack/docker-examples/extending/add-pypi-packages/Dockerfile
@@ -15,6 +15,6 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:2.3.0
+FROM apache/airflow:2.3.1
RUN pip install --no-cache-dir lxml
# [END Dockerfile]
diff --git
a/docs/docker-stack/docker-examples/extending/custom-providers/Dockerfile
b/docs/docker-stack/docker-examples/extending/custom-providers/Dockerfile
index f9dc7a7723..6f475d153e 100644
--- a/docs/docker-stack/docker-examples/extending/custom-providers/Dockerfile
+++ b/docs/docker-stack/docker-examples/extending/custom-providers/Dockerfile
@@ -15,6 +15,6 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:2.3.0
+FROM apache/airflow:2.3.1
RUN pip install --no-cache-dir apache-airflow-providers-docker==2.5.1
# [END Dockerfile]
diff --git
a/docs/docker-stack/docker-examples/extending/embedding-dags/Dockerfile
b/docs/docker-stack/docker-examples/extending/embedding-dags/Dockerfile
index fd0081fec5..9d536ddc2b 100644
--- a/docs/docker-stack/docker-examples/extending/embedding-dags/Dockerfile
+++ b/docs/docker-stack/docker-examples/extending/embedding-dags/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:2.3.0
+FROM apache/airflow:2.3.1
COPY --chown=airflow:root test_dag.py /opt/airflow/dags
diff --git
a/docs/docker-stack/docker-examples/extending/writable-directory/Dockerfile
b/docs/docker-stack/docker-examples/extending/writable-directory/Dockerfile
index 2d6e0529e1..733400544f 100644
--- a/docs/docker-stack/docker-examples/extending/writable-directory/Dockerfile
+++ b/docs/docker-stack/docker-examples/extending/writable-directory/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:2.3.0
+FROM apache/airflow:2.3.1
RUN umask 0002; \
mkdir -p ~/writeable-directory
# [END Dockerfile]
diff --git a/docs/docker-stack/entrypoint.rst b/docs/docker-stack/entrypoint.rst
index bdf8048787..c66c8e39ba 100644
--- a/docs/docker-stack/entrypoint.rst
+++ b/docs/docker-stack/entrypoint.rst
@@ -132,7 +132,7 @@ if you specify extra arguments. For example:
.. code-block:: bash
- docker run -it apache/airflow:2.3.0-python3.6 bash -c "ls -la"
+ docker run -it apache/airflow:2.3.1-python3.6 bash -c "ls -la"
total 16
drwxr-xr-x 4 airflow root 4096 Jun 5 18:12 .
drwxr-xr-x 1 root root 4096 Jun 5 18:12 ..
@@ -144,7 +144,7 @@ you pass extra parameters. For example:
.. code-block:: bash
- > docker run -it apache/airflow:2.3.0-python3.6 python -c "print('test')"
+ > docker run -it apache/airflow:2.3.1-python3.6 python -c "print('test')"
test
If first argument equals to "airflow" - the rest of the arguments is treated
as an airflow command
@@ -152,13 +152,13 @@ to execute. Example:
.. code-block:: bash
- docker run -it apache/airflow:2.3.0-python3.6 airflow webserver
+ docker run -it apache/airflow:2.3.1-python3.6 airflow webserver
If there are any other arguments - they are simply passed to the "airflow"
command
.. code-block:: bash
- > docker run -it apache/airflow:2.3.0-python3.6 help
+ > docker run -it apache/airflow:2.3.1-python3.6 help
usage: airflow [-h] GROUP_OR_COMMAND ...
positional arguments:
@@ -206,7 +206,7 @@ propagation (See the next chapter).
.. code-block:: Dockerfile
- FROM airflow:2.3.0
+ FROM airflow:2.3.1
COPY my_entrypoint.sh /
ENTRYPOINT ["/usr/bin/dumb-init", "--", "/my_entrypoint.sh"]
@@ -250,7 +250,7 @@ Similarly to custom entrypoint, it can be added to the
image by extending it.
.. code-block:: Dockerfile
- FROM airflow:2.3.0
+ FROM airflow:2.3.1
COPY my_after_entrypoint_script.sh /
Build your image and then you can run this script by running the command:
@@ -363,7 +363,7 @@ database and creating an ``admin/admin`` Admin user with
the following command:
--env "_AIRFLOW_DB_UPGRADE=true" \
--env "_AIRFLOW_WWW_USER_CREATE=true" \
--env "_AIRFLOW_WWW_USER_PASSWORD=admin" \
- apache/airflow:2.3.0-python3.8 webserver
+ apache/airflow:2.3.1-python3.8 webserver
.. code-block:: bash
@@ -372,7 +372,7 @@ database and creating an ``admin/admin`` Admin user with
the following command:
--env "_AIRFLOW_DB_UPGRADE=true" \
--env "_AIRFLOW_WWW_USER_CREATE=true" \
--env "_AIRFLOW_WWW_USER_PASSWORD_CMD=echo admin" \
- apache/airflow:2.3.0-python3.8 webserver
+ apache/airflow:2.3.1-python3.8 webserver
The commands above perform initialization of the SQLite database, create admin
user with admin password
and Admin role. They also forward local port ``8080`` to the webserver port
and finally start the webserver.
@@ -412,6 +412,6 @@ Example:
--env "_AIRFLOW_DB_UPGRADE=true" \
--env "_AIRFLOW_WWW_USER_CREATE=true" \
--env "_AIRFLOW_WWW_USER_PASSWORD_CMD=echo admin" \
- apache/airflow:2.3.0-python3.8 webserver
+ apache/airflow:2.3.1-python3.8 webserver
This method is only available starting from Docker image of Airflow 2.1.1 and
above.
diff --git a/scripts/ci/pre_commit/pre_commit_supported_versions.py
b/scripts/ci/pre_commit/pre_commit_supported_versions.py
index 730dbda71d..fee266c9be 100755
--- a/scripts/ci/pre_commit/pre_commit_supported_versions.py
+++ b/scripts/ci/pre_commit/pre_commit_supported_versions.py
@@ -25,7 +25,7 @@ AIRFLOW_SOURCES =
Path(__file__).resolve().parent.parent.parent.parent
HEADERS = ("Version", "Current Patch/Minor", "State", "First Release",
"Limited Support", "EOL/Terminated")
SUPPORTED_VERSIONS = (
- ("2", "2.3.0", "Supported", "Dec 17, 2020", "TBD", "TBD"),
+ ("2", "2.3.1", "Supported", "Dec 17, 2020", "TBD", "TBD"),
("1.10", "1.10.15", "EOL", "Aug 27, 2018", "Dec 17, 2020", "June 17,
2021"),
("1.9", "1.9.0", "EOL", "Jan 03, 2018", "Aug 27, 2018", "Aug 27, 2018"),
("1.8", "1.8.2", "EOL", "Mar 19, 2017", "Jan 03, 2018", "Jan 03, 2018"),
diff --git a/setup.py b/setup.py
index fe45e96dbe..711f60504f 100644
--- a/setup.py
+++ b/setup.py
@@ -44,7 +44,7 @@ PY39 = sys.version_info >= (3, 9)
logger = logging.getLogger(__name__)
-version = '2.3.0'
+version = '2.3.1'
my_dir = dirname(__file__)