You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by po...@apache.org on 2021/12/30 21:13:48 UTC
[airflow] branch main updated: Generate version documentation from single source of truth (#20594)
This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 18b2ca4 Generate version documentation from single source of truth (#20594)
18b2ca4 is described below
commit 18b2ca4ecf52e8c4d0c39923aa55fe29ea2d6c07
Author: Jarek Potiuk <ja...@potiuk.com>
AuthorDate: Thu Dec 30 22:13:10 2021 +0100
Generate version documentation from single source of truth (#20594)
We used to maintain supported versions separately in the docs
and it led to discrepancies. Now we have single source of truth which
is used to generate it automatically with pre-commits
---
.pre-commit-config.yaml | 7 +++
BREEZE.rst | 4 +-
README.md | 19 ++++---
STATIC_CODE_CHECKS.rst | 2 +
breeze-complete | 1 +
dev/README_RELEASE_AIRFLOW.md | 1 +
.../installation/supported-versions.rst | 28 +++++-----
scripts/ci/pre_commit/supported_versions.py | 63 ++++++++++++++++++++++
8 files changed, 103 insertions(+), 22 deletions(-)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index b33423f..4206f65 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -357,6 +357,13 @@ repos:
files: ^Dockerfile$
pass_filenames: false
additional_dependencies: ['rich']
+ - id: update-supported-versions
+ name: Updates supported versions in documentation
+ entry: ./scripts/ci/pre_commit/supported_versions.py
+ language: python
+ files: ^scripts/ci/pre_commit/supported_versions.py$|^README.md$|^docs/apache-airflow/supported-versions.rst$
+ pass_filenames: false
+ additional_dependencies: ['tabulate']
- id: update-version
name: Update version to the latest version in the documentation
entry: ./scripts/ci/pre_commit/pre_commit_update_versions.py
diff --git a/BREEZE.rst b/BREEZE.rst
index 03095e6..7659134 100644
--- a/BREEZE.rst
+++ b/BREEZE.rst
@@ -2209,8 +2209,8 @@ This is the current syntax for `./breeze <./breeze>`_:
pyupgrade restrict-start_date rst-backticks setup-order setup-extra-packages
shellcheck sort-in-the-wild sort-spelling-wordlist stylelint trailing-whitespace
ui-lint update-breeze-file update-extras update-local-yml-file update-setup-cfg-file
- update-versions vendor-k8s-json-schema verify-db-migrations-documented version-sync
- www-lint yamllint yesqa
+ update-supported-versions update-versions vendor-k8s-json-schema
+ verify-db-migrations-documented version-sync www-lint yamllint yesqa
You can pass extra arguments including options to the pre-commit framework as
<EXTRA_ARGS> passed after --. For example:
diff --git a/README.md b/README.md
index 2379e92..bbc837d 100644
--- a/README.md
+++ b/README.md
@@ -261,13 +261,18 @@ packages:
Apache Airflow version life cycle:
-| Version | Current Patch/Minor | State | First Release | Limited Support | EOL/Terminated |
-|---------|---------------------|-----------|---------------|-----------------|----------------|
-| 2 | 2.2.3 | 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 |
-| 1.7 | 1.7.1.2 | EOL | Mar 28, 2016 | Mar 19, 2017 | Mar 19, 2017 |
+<!-- This table is automatically updated by pre-commit scripts/ci/pre-commit/supported_versions.py -->
+<!-- Beginning of auto-generated table -->
+
+| Version | Current Patch/Minor | State | First Release | Limited Support | EOL/Terminated |
+|-----------|-----------------------|-----------|-----------------|-------------------|------------------|
+| 2 | 2.2.3 | 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 |
+| 1.7 | 1.7.1.2 | EOL | Mar 28, 2016 | Mar 19, 2017 | Mar 19, 2017 |
+
+<!-- End of auto-generated table -->
Limited support versions will be supported with security and critical bug fix only.
EOL versions will not get any fixes nor support.
diff --git a/STATIC_CODE_CHECKS.rst b/STATIC_CODE_CHECKS.rst
index 54de617..73eb373 100644
--- a/STATIC_CODE_CHECKS.rst
+++ b/STATIC_CODE_CHECKS.rst
@@ -278,6 +278,8 @@ require Breeze Docker images to be installed locally.
------------------------------------ ---------------------------------------------------------------- ------------
``update-setup-cfg-file`` Update setup.cfg file with all licenses
------------------------------------ ---------------------------------------------------------------- ------------
+``update-supported-versions`` Updates supported versions in documentation
+------------------------------------ ---------------------------------------------------------------- ------------
``update-versions`` Updates latest versions in the documentation
------------------------------------ ---------------------------------------------------------------- ------------
``vendor-k8s-json-schema`` Vendor k8s schema definitions in the helm chart schema file
diff --git a/breeze-complete b/breeze-complete
index 6ddfd85..121d8b9 100644
--- a/breeze-complete
+++ b/breeze-complete
@@ -151,6 +151,7 @@ update-breeze-file
update-extras
update-local-yml-file
update-setup-cfg-file
+update-supported-versions
update-versions
vendor-k8s-json-schema
verify-db-migrations-documented
diff --git a/dev/README_RELEASE_AIRFLOW.md b/dev/README_RELEASE_AIRFLOW.md
index 8c02a6a..aac2a86 100644
--- a/dev/README_RELEASE_AIRFLOW.md
+++ b/dev/README_RELEASE_AIRFLOW.md
@@ -957,6 +957,7 @@ EOF
This includes:
+- Modify `./scripts/ci/pre-commit/supported_versions.py` and let pre-commit do the job
- Sync `CHANGELOG.txt`, `UPDATING.md` and `README.md` changes
- Updating issue templates in `.github/ISSUE_TEMPLATE/` with the new version
diff --git a/docs/apache-airflow/installation/supported-versions.rst b/docs/apache-airflow/installation/supported-versions.rst
index c4a2a26..ccd81ab 100644
--- a/docs/apache-airflow/installation/supported-versions.rst
+++ b/docs/apache-airflow/installation/supported-versions.rst
@@ -23,19 +23,21 @@ Version Life Cycle
Apache Airflow version life cycle:
-+---------+-----------------+---------------+-----------------+----------------+
-| Version | State | First Release | Limited Support | EOL/Terminated |
-+---------+-----------------+---------------+-----------------+----------------+
-| 2 | Supported | Dec 17, 2020 | TBD | TBD |
-+---------+-----------------+---------------+-----------------+----------------+
-| 1.10 | EOL | Aug 27, 2018 | Dec 17, 2020 | June 2021 |
-+---------+-----------------+---------------+-----------------+----------------+
-| 1.9 | EOL | Jan 03, 2018 | Aug 27, 2018 | Aug 2018 |
-+---------+-----------------+---------------+-----------------+----------------+
-| 1.8 | EOL | Mar 19, 2017 | Jan 03, 2018 | Jan 2018 |
-+---------+-----------------+---------------+-----------------+----------------+
-| 1.7 | EOL | Mar 28, 2016 | Mar 19, 2017 | Mar 2017 |
-+---------+-----------------+---------------+-----------------+----------------+
+ .. This table is automatically updated by pre-commit scripts/ci/pre-commit/supported_versions.py
+ .. Beginning of auto-generated table
+
+========= ===================== ========= =============== ================= ================
+Version Current Patch/Minor State First Release Limited Support EOL/Terminated
+========= ===================== ========= =============== ================= ================
+2 2.2.3 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
+1.7 1.7.1.2 EOL Mar 28, 2016 Mar 19, 2017 Mar 19, 2017
+========= ===================== ========= =============== ================= ================
+
+ .. End of auto-generated table
+
Limited support versions will be supported with security and critical bug fix only.
EOL versions will not get any fixes nor support.
diff --git a/scripts/ci/pre_commit/supported_versions.py b/scripts/ci/pre_commit/supported_versions.py
new file mode 100755
index 0000000..dd5d26a
--- /dev/null
+++ b/scripts/ci/pre_commit/supported_versions.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python3
+# 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.
+from pathlib import Path
+
+from tabulate import tabulate
+
+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.2.3", "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"),
+ ("1.7", "1.7.1.2", "EOL", "Mar 28, 2016", "Mar 19, 2017", "Mar 19, 2017"),
+)
+
+
+def replace_text_between(file: Path, start: str, end: str, replacement_text: str):
+ original_text = file.read_text()
+ leading_text = original_text.split(start)[0]
+ trailing_text = original_text.split(end)[1]
+ file.write_text(leading_text + start + replacement_text + end + trailing_text)
+
+
+if __name__ == '__main__':
+ replace_text_between(
+ file=AIRFLOW_SOURCES / "README.md",
+ start="<!-- Beginning of auto-generated table -->\n",
+ end="<!-- End of auto-generated table -->\n",
+ replacement_text="\n"
+ + tabulate(
+ SUPPORTED_VERSIONS, tablefmt="github", headers=HEADERS, stralign="left", disable_numparse=True
+ )
+ + "\n\n",
+ )
+ replace_text_between(
+ file=AIRFLOW_SOURCES / "docs" / "apache-airflow" / "installation" / "supported-versions.rst",
+ start=" .. Beginning of auto-generated table\n",
+ end=" .. End of auto-generated table\n",
+ replacement_text="\n"
+ + tabulate(
+ SUPPORTED_VERSIONS, tablefmt="rst", headers=HEADERS, stralign="left", disable_numparse=True
+ )
+ + "\n\n",
+ )