This is an automated email from the ASF dual-hosted git repository.

ephraimanierobi 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 9e5879576d Add `renamed` and `previous_name` in config sections 
(#28324)
9e5879576d is described below

commit 9e5879576d7427517dc33d2891f58d791db6c7bf
Author: Ephraim Anierobi <splendidzig...@gmail.com>
AuthorDate: Wed Dec 14 08:51:26 2022 +0100

    Add `renamed` and `previous_name` in config sections (#28324)
    
    This helps us retain the version-added value of config options when
    the config section is renamed.
    This information of rename is also made available in the config 
documentation
---
 airflow/config_templates/config.yml            |  3 +++
 dev/validate_version_added_fields_in_config.py | 14 ++++++++++++++
 docs/apache-airflow/configurations-ref.rst     |  4 ++++
 3 files changed, 21 insertions(+)

diff --git a/airflow/config_templates/config.yml 
b/airflow/config_templates/config.yml
index 2759eef2ff..962de33d9d 100644
--- a/airflow/config_templates/config.yml
+++ b/airflow/config_templates/config.yml
@@ -2368,6 +2368,9 @@
       default: "True"
 - name: kubernetes_executor
   description: ~
+  renamed:
+    previous_name: kubernetes
+    version: 2.5.0
   options:
     - name: pod_template_file
       description: |
diff --git a/dev/validate_version_added_fields_in_config.py 
b/dev/validate_version_added_fields_in_config.py
index a43e149175..e7920620d6 100755
--- a/dev/validate_version_added_fields_in_config.py
+++ b/dev/validate_version_added_fields_in_config.py
@@ -34,6 +34,9 @@ KNOWN_FALSE_DETECTIONS = {
     ("logging", "extra_logger_names", "2.2.0")
 }
 
+# Renamed sections: (new_section, old_section, version_before_renaming)
+RENAMED_SECTIONS = [("kubernetes_executor", "kubernetes", "2.4.3")]
+
 
 def fetch_pypi_versions() -> list[str]:
     r = requests.get("https://pypi.org/pypi/apache-airflow/json";)
@@ -71,6 +74,14 @@ def read_local_config_options() -> set[tuple[str, str, str]]:
     return config_options
 
 
+computed_option_new_section = set()
+for new_section, old_section, version_before_renaming in RENAMED_SECTIONS:
+    options = fetch_config_options_for_version(version_before_renaming)
+    options = {
+        (new_section, option_name) for section_name, option_name in options if 
section_name == old_section
+    }
+    computed_option_new_section.update(options)
+
 # 1. Prepare versions to checks
 airflow_version = fetch_pypi_versions()
 airflow_version = sorted(airflow_version, key=semver.VersionInfo.parse)
@@ -83,6 +94,9 @@ for prev_version, curr_version in zip(to_check_versions[:-1], 
to_check_versions[
     options_1 = fetch_config_options_for_version(prev_version)
     options_2 = fetch_config_options_for_version(curr_version)
     new_options = options_2 - options_1
+    # Remove existing options in new section
+    new_options -= computed_option_new_section
+    # Update expected options with version added field
     expected_computed_options.update(
         {(section_name, option_name, curr_version) for section_name, 
option_name in new_options}
     )
diff --git a/docs/apache-airflow/configurations-ref.rst 
b/docs/apache-airflow/configurations-ref.rst
index c77a33cd22..ab0ccd5f64 100644
--- a/docs/apache-airflow/configurations-ref.rst
+++ b/docs/apache-airflow/configurations-ref.rst
@@ -48,6 +48,10 @@ that you run airflow components on is synchronized (for 
example using ntpd) othe
     [{{ section["name"] }}]
     {{ "=" * (section["name"]|length + 2) }}
 
+    {% if 'renamed' in section %}
+    *Renamed in version {{ section['renamed']['version'] }}, previous name was 
{{ section['renamed']['previous_name'] }}*
+    {% endif %}
+
     {% if section["description"] %}
     {{ section["description"] }}
     {% endif %}

Reply via email to