This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch v3-1-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/v3-1-test by this push:
new fdf6f0f789b [v3-1-test] Only show latest minor versions in version
drop-down in docs (#57243) (#57262)
fdf6f0f789b is described below
commit fdf6f0f789b07cb2981430ca7b90f76fa2c3e2bb
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Sat Oct 25 23:14:04 2025 +0200
[v3-1-test] Only show latest minor versions in version drop-down in docs
(#57243) (#57262)
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.
(cherry picked from commit a0b4d2979bf6e72c2d99bb3a670dfc097b390180)
Co-authored-by: Jarek Potiuk <[email protected]>
---
.../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 | 35 +++++++++++++-------
5 files changed, 38 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 bba181f63d6..35a152f0b7e 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
@@ -1768,9 +1768,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"""
@@ -1834,7 +1832,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",
@@ -1854,13 +1851,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,
@@ -1868,7 +1863,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):
@@ -1906,9 +1900,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..26664ccbb1c 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,35 @@ 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 = 20
+ selected_versions = good_versions[:MAX_VERSIONS][::-1]
+ get_console().print(f"[info]Selected {MAX_VERSIONS} versions for
{package_name}:\n")
+ get_console().print(selected_versions)
+ return selected_versions
@staticmethod
def get_bucket_key(bucket_path: str) -> tuple[str, str]: