This is an automated email from the ASF dual-hosted git repository. potiuk pushed a commit to branch filter-versions-to-latest-minor in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 0cd15593160efd95fefa9bb358ac679b3c8ba3aa Author: Jarek Potiuk <[email protected]> AuthorDate: Sat Oct 25 10:46:26 2025 +0200 Only show latest minor versions in version drop-down in docs This does not remove the actual versions from S3 only limits the drop-down. All versions are available still to see and they are indexed, also links from PyPI continue to work, you can also manually update version in the URL. --- .../output_release-management_publish-docs.svg | 38 ++++++++-------------- .../output_release-management_publish-docs.txt | 2 +- .../commands/release_management_commands.py | 8 ----- .../commands/release_management_commands_config.py | 2 -- .../src/airflow_breeze/utils/publish_docs_to_s3.py | 34 ++++++++++++------- 5 files changed, 37 insertions(+), 47 deletions(-) diff --git a/dev/breeze/doc/images/output_release-management_publish-docs.svg b/dev/breeze/doc/images/output_release-management_publish-docs.svg index 56d51f42050..91f36f758b8 100644 --- a/dev/breeze/doc/images/output_release-management_publish-docs.svg +++ b/dev/breeze/doc/images/output_release-management_publish-docs.svg @@ -1,4 +1,4 @@ -<svg class="rich-terminal" viewBox="0 0 1482 1172.3999999999999" xmlns="http://www.w3.org/2000/svg"> +<svg class="rich-terminal" viewBox="0 0 1482 1099.2" xmlns="http://www.w3.org/2000/svg"> <!-- Generated with Rich https://www.textualize.io --> <style> @@ -45,7 +45,7 @@ <defs> <clipPath id="breeze-release-management-publish-docs-clip-terminal"> - <rect x="0" y="0" width="1463.0" height="1121.3999999999999" /> + <rect x="0" y="0" width="1463.0" height="1048.2" /> </clipPath> <clipPath id="breeze-release-management-publish-docs-line-0"> <rect x="0" y="1.5" width="1464" height="24.65"/> @@ -173,18 +173,9 @@ <clipPath id="breeze-release-management-publish-docs-line-41"> <rect x="0" y="1001.9" width="1464" height="24.65"/> </clipPath> -<clipPath id="breeze-release-management-publish-docs-line-42"> - <rect x="0" y="1026.3" width="1464" height="24.65"/> - </clipPath> -<clipPath id="breeze-release-management-publish-docs-line-43"> - <rect x="0" y="1050.7" width="1464" height="24.65"/> - </clipPath> -<clipPath id="breeze-release-management-publish-docs-line-44"> - <rect x="0" y="1075.1" width="1464" height="24.65"/> - </clipPath> </defs> - <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="1170.4" rx="8"/><text class="breeze-release-management-publish-docs-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: release-management publish-docs</text> + <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="1097.2" rx="8"/><text class="breeze-release-management-publish-docs-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: release-management publish-docs</text> <g transform="translate(26,22)"> <circle cx="0" cy="0" r="7" fill="#ff5f57"/> <circle cx="22" cy="0" r="7" fill="#febc2e"/> @@ -227,19 +218,16 @@ </text><text class="breeze-release-management-publish-docs-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-30)">│</text><text class="breeze-release-management-publish-docs-r8" x="488" y="752" textLength="951.6" clip-path="url(#breeze-release-management-publish-docs-line-30)">(TEXT)                            [...] </text><text class="breeze-release-management-publish-docs-r5" x="0" y="776.4" textLength="1464" clip-path="url(#breeze-release-management-publish-docs-line-31)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-31)"> </text><text class="breeze-release-management-publish-docs-r5" x="0" y="800.8" textLength="24.4" clip-path="url(#breeze-release-management-publish-docs-line-32)">╭─</text><text class="breeze-release-management-publish-docs-r5" x="24.4" y="800.8" textLength="219.6" clip-path="url(#breeze-release-management-publish-docs-line-32)"> Parallel running </text><text class="breeze-release-management-publish-docs-r5" x="244" y="800.8" textLength="1195.6" clip-path="url(#breeze-relea [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-33)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="825.2" textLength="207.4" clip-path="url(#breeze-release-management-publish-docs-line-33)">--debug-resources</text><text class="breeze-release-management-publish-docs-r1" x="378.2" y="825.2" textLength="768.6" clip-path="url(#breeze-release-management-pu [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-34)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="849.6" textLength="305" clip-path="url(#breeze-release-management-publish-docs-line-34)">--include-success-outputs</text><text class="breeze-release-management-publish-docs-r1" x="378.2" y="849.6" textLength="841.8" clip-path="url(#breeze-release-managem [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-35)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="874" textLength="158.6" clip-path="url(#breeze-release-management-publish-docs-line-35)">--parallelism</text><text class="breeze-release-management-publish-docs-r1" x="378.2" y="874" textLength="915" clip-path="url(#breeze-release-management-publish-docs-l [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-36)">│</text><text class="breeze-release-management-publish-docs-r8" x="378.2" y="898.4" textLength="915" clip-path="url(#breeze-release-management-publish-docs-line-36)">(INTEGER RANGE)                         [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-37)">│</text><text class="breeze-release-management-publish-docs-r5" x="378.2" y="922.8" textLength="915" clip-path="url(#breeze-release-management-publish-docs-line-37)">[default: 4; 1<=x<=8]                     & [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-38)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="947.2" textLength="207.4" clip-path="url(#breeze-release-management-publish-docs-line-38)">--run-in-parallel</text><text class="breeze-release-management-publish-docs-r1" x="378.2" y="947.2" textLength="854" clip-path="url(#breeze-release-management-publ [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-39)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="971.6" textLength="170.8" clip-path="url(#breeze-release-management-publish-docs-line-39)">--skip-cleanup</text><text class="breeze-release-management-publish-docs-r1" x="378.2" y="971.6" textLength="732" clip-path="url(#breeze-release-management-publish [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="996" textLength="1464" clip-path="url(#breeze-release-management-publish-docs-line-40)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="996" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-40)"> -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="1020.4" textLength="24.4" clip-path="url(#breeze-release-management-publish-docs-line-41)">╭─</text><text class="breeze-release-management-publish-docs-r5" x="24.4" y="1020.4" textLength="195.2" clip-path="url(#breeze-release-management-publish-docs-line-41)"> Common options </text><text class="breeze-release-management-publish-docs-r5" x="219.6" y="1020.4" textLength="1220" clip-path="url(#breeze-rele [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-42)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="1044.8" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-42)">--dry-run</text><text class="breeze-release-management-publish-docs-r7" x="158.6" y="1044.8" textLength="24.4" clip-path="url(#breeze-release-management-publish- [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-43)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="1069.2" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-43)">--verbose</text><text class="breeze-release-management-publish-docs-r7" x="158.6" y="1069.2" textLength="24.4" clip-path="url(#breeze-release-management-publish- [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-44)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="1093.6" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-44)">--help</text><text class="breeze-release-management-publish-docs-r7" x="158.6" y="1093.6" textLength="24.4" clip-path="url(#breeze-release-management-publish-docs [...] -</text><text class="breeze-release-management-publish-docs-r5" x="0" y="1118" textLength="1464" clip-path="url(#breeze-release-management-publish-docs-line-45)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="1118" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-45)"> +</text><text class="breeze-release-management-publish-docs-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-33)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="825.2" textLength="207.4" clip-path="url(#breeze-release-management-publish-docs-line-33)">--debug-resources</text><text class="breeze-release-management-publish-docs-r1" x="280.6" y="825.2" textLength="768.6" clip-path="url(#breeze-release-management-pu [...] +</text><text class="breeze-release-management-publish-docs-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-34)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="849.6" textLength="158.6" clip-path="url(#breeze-release-management-publish-docs-line-34)">--parallelism</text><text class="breeze-release-management-publish-docs-r1" x="280.6" y="849.6" textLength="915" clip-path="url(#breeze-release-management-publish- [...] +</text><text class="breeze-release-management-publish-docs-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-35)">│</text><text class="breeze-release-management-publish-docs-r5" x="280.6" y="874" textLength="915" clip-path="url(#breeze-release-management-publish-docs-line-35)">[default: 4; 1<=x<=8]                       [...] +</text><text class="breeze-release-management-publish-docs-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-36)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="898.4" textLength="207.4" clip-path="url(#breeze-release-management-publish-docs-line-36)">--run-in-parallel</text><text class="breeze-release-management-publish-docs-r1" x="280.6" y="898.4" textLength="854" clip-path="url(#breeze-release-management-publ [...] +</text><text class="breeze-release-management-publish-docs-r5" x="0" y="922.8" textLength="1464" clip-path="url(#breeze-release-management-publish-docs-line-37)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="922.8" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-37)"> +</text><text class="breeze-release-management-publish-docs-r5" x="0" y="947.2" textLength="24.4" clip-path="url(#breeze-release-management-publish-docs-line-38)">╭─</text><text class="breeze-release-management-publish-docs-r5" x="24.4" y="947.2" textLength="195.2" clip-path="url(#breeze-release-management-publish-docs-line-38)"> Common options </text><text class="breeze-release-management-publish-docs-r5" x="219.6" y="947.2" textLength="1220" clip-path="url(#breeze-release [...] +</text><text class="breeze-release-management-publish-docs-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-39)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="971.6" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-39)">--dry-run</text><text class="breeze-release-management-publish-docs-r7" x="158.6" y="971.6" textLength="24.4" clip-path="url(#breeze-release-management-publish-doc [...] +</text><text class="breeze-release-management-publish-docs-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-40)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="996" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-40)">--verbose</text><text class="breeze-release-management-publish-docs-r7" x="158.6" y="996" textLength="24.4" clip-path="url(#breeze-release-management-publish-docs-line [...] +</text><text class="breeze-release-management-publish-docs-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-41)">│</text><text class="breeze-release-management-publish-docs-r4" x="24.4" y="1020.4" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-41)">--help</text><text class="breeze-release-management-publish-docs-r7" x="158.6" y="1020.4" textLength="24.4" clip-path="url(#breeze-release-management-publish-docs [...] +</text><text class="breeze-release-management-publish-docs-r5" x="0" y="1044.8" textLength="1464" clip-path="url(#breeze-release-management-publish-docs-line-42)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="1044.8" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-42)"> </text> </g> </g> diff --git a/dev/breeze/doc/images/output_release-management_publish-docs.txt b/dev/breeze/doc/images/output_release-management_publish-docs.txt index cc300ab732b..7b07e4d1e09 100644 --- a/dev/breeze/doc/images/output_release-management_publish-docs.txt +++ b/dev/breeze/doc/images/output_release-management_publish-docs.txt @@ -1 +1 @@ -05431d65004156ec2a9784016a035517 +90b3e65f6dfe76c5580f0cb3880e688a diff --git a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py index 4507ab15bd1..dfad85b2c71 100644 --- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py +++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py @@ -1775,9 +1775,7 @@ def run_publish_docs_in_parallel( distributions_list: tuple[str, ...], airflow_site_directory: str, override_versioned: bool, - include_success_outputs: bool, parallelism: int, - skip_cleanup: bool, debug_resources: bool, ): """Run docs publishing in parallel""" @@ -1841,7 +1839,6 @@ def run_publish_docs_in_parallel( @option_dry_run @option_include_not_ready_providers @option_include_removed_providers -@option_include_success_outputs @click.option("-s", "--override-versioned", help="Overrides versioned directories.", is_flag=True) @click.option( "--package-filter", @@ -1861,13 +1858,11 @@ def run_publish_docs_in_parallel( ) @option_parallelism @option_run_in_parallel -@option_skip_cleanup @option_verbose def publish_docs( airflow_site_directory: str, debug_resources: bool, doc_packages: tuple[str, ...], - include_success_outputs: bool, include_not_ready_providers: bool, include_removed_providers: bool, override_versioned: bool, @@ -1875,7 +1870,6 @@ def publish_docs( distributions_list: str, parallelism: int, run_in_parallel: bool, - skip_cleanup: bool, ): """Publishes documentation to airflow-site.""" if not os.path.isdir(airflow_site_directory): @@ -1913,9 +1907,7 @@ def publish_docs( run_publish_docs_in_parallel( distributions_list=current_packages, parallelism=parallelism, - skip_cleanup=skip_cleanup, debug_resources=debug_resources, - include_success_outputs=include_success_outputs, airflow_site_directory=airflow_site_directory, override_versioned=override_versioned, ) diff --git a/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py b/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py index 903f547486d..2e843a04af6 100644 --- a/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py +++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py @@ -370,10 +370,8 @@ RELEASE_MANAGEMENT_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = { "name": "Parallel running", "options": [ "--debug-resources", - "--include-success-outputs", "--parallelism", "--run-in-parallel", - "--skip-cleanup", ], }, ], diff --git a/dev/breeze/src/airflow_breeze/utils/publish_docs_to_s3.py b/dev/breeze/src/airflow_breeze/utils/publish_docs_to_s3.py index dbf3b96fd5d..22a9ce71ba1 100644 --- a/dev/breeze/src/airflow_breeze/utils/publish_docs_to_s3.py +++ b/dev/breeze/src/airflow_breeze/utils/publish_docs_to_s3.py @@ -303,7 +303,7 @@ class S3DocsPublish: all_packages_infos = [ { "package-name": package_name, - "all-versions": (all_versions := self.get_all_versions(package_name, versions)), + "all-versions": (all_versions := self.get_latest_minor_versions(package_name, versions)), "stable-version": all_versions[-1], } for package_name, versions in package_versions.items() @@ -312,22 +312,34 @@ class S3DocsPublish: return all_packages_infos @staticmethod - def get_all_versions(package_name: str, versions: list[str]) -> list[str]: + def get_latest_minor_versions(package_name: str, versions: list[str]) -> list[str]: from packaging.version import Version - good_versions = [] - for version in versions: + get_console().print(f"[info]Getting package versions for {package_name} from:\n") + get_console().print(versions) + all_versions: list[Version] = [] + for v in versions: try: - Version(version) - good_versions.append(version) + all_versions.append(Version(v)) except ValueError as e: - get_console().print(f"[error]Invalid version {version}: {e}\n") + get_console().print(f"[error]Invalid version {v}: {e}\n") global version_error version_error = True - return sorted( - good_versions, - key=lambda d: Version(d), - ) + all_versions.sort(reverse=True) + minor_versions: list[str] = [] + good_versions = [] + for version in all_versions: + minor_version = str(version.major) + "." + str(version.minor) + if minor_version not in minor_versions: + get_console().print(f"[info]Latest minor version added: {version}\n") + minor_versions.append(minor_version) + good_versions.append(str(version)) + else: + get_console().print(f"[info]Not latest minor version skipped: {version}\n") + MAX_VERSIONS = 10 + selected_versions = good_versions[0:MAX_VERSIONS] + get_console().print(f"[info]Selected {MAX_VERSIONS} versions for {package_name}:\n") + return selected_versions @staticmethod def get_bucket_key(bucket_path: str) -> tuple[str, str]:
