Simplifying console logs for prepare_provider_documentation when we do version bump only (#39339)
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 ba59e2b..e49c33b 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
@@ -636,32 +636,41 @@
for provider_id in provider_packages:
provider_metadata = basic_provider_checks(provider_id)
if os.environ.get("GITHUB_ACTIONS", "false") != "true":
- get_console().print("-" * get_console().width)
+ if not only_min_version_update:
+ get_console().print("-" * get_console().width)
try:
with_breaking_changes = False
maybe_with_new_features = False
- with ci_group(f"Update release notes for package '{provider_id}' "):
- get_console().print("Updating documentation for the latest release version.")
+ with ci_group(
+ f"Update release notes for package '{provider_id}' ",
+ skip_printing_title=only_min_version_update,
+ ):
if not only_min_version_update:
+ get_console().print("Updating documentation for the latest release version.")
with_breaking_changes, maybe_with_new_features = update_release_notes(
provider_id,
reapply_templates_only=reapply_templates_only,
base_branch=base_branch,
regenerate_missing_docs=reapply_templates_only,
non_interactive=non_interactive,
+ only_min_version_update=only_min_version_update,
)
update_min_airflow_version(
provider_package_id=provider_id,
with_breaking_changes=with_breaking_changes,
maybe_with_new_features=maybe_with_new_features,
)
- with ci_group(f"Updates changelog for last release of package '{provider_id}'"):
+ with ci_group(
+ f"Updates changelog for last release of package '{provider_id}'",
+ skip_printing_title=only_min_version_update,
+ ):
update_changelog(
package_id=provider_id,
base_branch=base_branch,
reapply_templates_only=reapply_templates_only,
with_breaking_changes=with_breaking_changes,
maybe_with_new_features=maybe_with_new_features,
+ only_min_version_update=only_min_version_update,
)
except PrepareReleaseDocsNoChangesException:
no_changes_packages.append(provider_id)
@@ -682,10 +691,18 @@
success_packages.append(provider_id)
get_console().print()
get_console().print("\n[info]Summary of prepared documentation:\n")
- provider_action_summary("Success", MessageType.SUCCESS, success_packages)
+ provider_action_summary(
+ "Success" if not only_min_version_update else "Min Version Bumped",
+ MessageType.SUCCESS,
+ success_packages,
+ )
provider_action_summary("Scheduled for removal", MessageType.SUCCESS, removed_packages)
provider_action_summary("Docs only", MessageType.SUCCESS, doc_only_packages)
- provider_action_summary("Skipped on no changes", MessageType.WARNING, no_changes_packages)
+ provider_action_summary(
+ "Skipped on no changes" if not only_min_version_update else "Min Version Not Bumped",
+ MessageType.WARNING,
+ no_changes_packages,
+ )
provider_action_summary("Suspended", MessageType.WARNING, suspended_packages)
provider_action_summary("Skipped by user", MessageType.SPECIAL, user_skipped_packages)
provider_action_summary("Errors", MessageType.ERROR, error_packages)
diff --git a/dev/breeze/src/airflow_breeze/prepare_providers/provider_documentation.py b/dev/breeze/src/airflow_breeze/prepare_providers/provider_documentation.py
index f24c548..c2b46b1 100644
--- a/dev/breeze/src/airflow_breeze/prepare_providers/provider_documentation.py
+++ b/dev/breeze/src/airflow_breeze/prepare_providers/provider_documentation.py
@@ -262,6 +262,7 @@
provider_package_id: str,
base_branch: str,
reapply_templates_only: bool,
+ only_min_version_update: bool,
) -> tuple[bool, list[list[Change]], str]:
"""Retrieves all changes for the package.
@@ -325,21 +326,24 @@
except subprocess.CalledProcessError:
# ignore when the commit mentioned as last doc-only change is obsolete
pass
- get_console().print(
- f"[warning]The provider {provider_package_id} has {len(changes.splitlines())} "
- f"changes since last release[/]"
- )
- get_console().print(f"\n[info]Provider: {provider_package_id}[/]\n")
+ if not only_min_version_update:
+ get_console().print(
+ f"[warning]The provider {provider_package_id} has {len(changes.splitlines())} "
+ f"changes since last release[/]"
+ )
+ get_console().print(f"\n[info]Provider: {provider_package_id}[/]\n")
changes_table, array_of_changes = _convert_git_changes_to_table(
f"NEXT VERSION AFTER + {provider_details.versions[0]}",
changes,
base_url="https://github.com/apache/airflow/commit/",
markdown=False,
)
- _print_changes_table(changes_table)
+ if not only_min_version_update:
+ _print_changes_table(changes_table)
return False, [array_of_changes], changes_table
else:
- get_console().print(f"[info]No changes for {provider_package_id}")
+ if not only_min_version_update:
+ get_console().print(f"[info]No changes for {provider_package_id}")
return False, [], ""
if len(provider_details.versions) == 1:
get_console().print(
@@ -653,6 +657,7 @@
base_branch: str,
regenerate_missing_docs: bool,
non_interactive: bool,
+ only_min_version_update: bool,
) -> tuple[bool, bool]:
"""Updates generated files.
@@ -669,6 +674,7 @@
provider_package_id=provider_package_id,
base_branch=base_branch,
reapply_templates_only=reapply_templates_only,
+ only_min_version_update=only_min_version_update,
)
with_breaking_changes = False
maybe_with_new_features = False
@@ -711,6 +717,7 @@
provider_package_id=provider_package_id,
base_branch=base_branch,
reapply_templates_only=reapply_templates_only,
+ only_min_version_update=only_min_version_update,
)
else:
_update_source_date_epoch_in_provider_yaml(provider_package_id)
@@ -913,6 +920,7 @@
reapply_templates_only: bool,
with_breaking_changes: bool,
maybe_with_new_features: bool,
+ only_min_version_update: bool,
):
"""Internal update changelog method.
@@ -929,12 +937,16 @@
maybe_with_new_features=maybe_with_new_features,
)
proceed, changes, _ = _get_all_changes_for_package(
- provider_package_id=package_id, base_branch=base_branch, reapply_templates_only=reapply_templates_only
+ provider_package_id=package_id,
+ base_branch=base_branch,
+ reapply_templates_only=reapply_templates_only,
+ only_min_version_update=only_min_version_update,
)
if not proceed:
- get_console().print(
- f"[warning]The provider {package_id} is not being released. Skipping the package.[/]"
- )
+ if not only_min_version_update:
+ get_console().print(
+ f"[warning]The provider {package_id} is not being released. Skipping the package.[/]"
+ )
raise PrepareReleaseDocsNoChangesException()
if reapply_templates_only:
get_console().print("[info]Only reapply templates, no changelog update[/]")
diff --git a/dev/breeze/src/airflow_breeze/utils/ci_group.py b/dev/breeze/src/airflow_breeze/utils/ci_group.py
index a3e6807..b8efb91 100644
--- a/dev/breeze/src/airflow_breeze/utils/ci_group.py
+++ b/dev/breeze/src/airflow_breeze/utils/ci_group.py
@@ -31,7 +31,12 @@
@contextmanager
-def ci_group(title: str, message_type: MessageType | None = MessageType.INFO, output: Output | None = None):
+def ci_group(
+ title: str,
+ message_type: MessageType | None = MessageType.INFO,
+ output: Output | None = None,
+ skip_printing_title: bool = False,
+):
"""
If used in GitHub Action, creates an expandable group in the GitHub Action log.
Otherwise, display simple text groups.
@@ -44,19 +49,21 @@
yield
return
if os.environ.get("GITHUB_ACTIONS", "false") != "true":
- if message_type is not None:
- get_console(output=output).print(f"\n[{message_type.value}]{title}\n")
- else:
- get_console(output=output).print(f"\n{title}\n")
+ if not skip_printing_title:
+ if message_type is not None:
+ get_console(output=output).print(f"\n[{message_type.value}]{title}\n")
+ else:
+ get_console(output=output).print(f"\n{title}\n")
yield
return
_in_ci_group = True
- if message_type is not None:
- get_console().print(f"::group::[{message_type.value}]{title}[/]")
- else:
- get_console().print(f"::group::{title}")
- try:
- yield
- finally:
- get_console().print("::endgroup::")
- _in_ci_group = False
+ if not skip_printing_title:
+ if message_type is not None:
+ get_console().print(f"::group::[{message_type.value}]{title}[/]")
+ else:
+ get_console().print(f"::group::{title}")
+ try:
+ yield
+ finally:
+ get_console().print("::endgroup::")
+ _in_ci_group = False