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 2022/06/03 19:25:57 UTC
[airflow] branch main updated: Better summary of status of AIP-47 (#24169)
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 bcb77c9973 Better summary of status of AIP-47 (#24169)
bcb77c9973 is described below
commit bcb77c9973258e4577dbc534aa5c92196f8b467a
Author: Jarek Potiuk <ja...@polidea.com>
AuthorDate: Fri Jun 3 21:25:51 2022 +0200
Better summary of status of AIP-47 (#24169)
Result is here: https://github.com/apache/airflow/issues/24168
---
dev/system_tests/update_issue_status.py | 71 +++++++++++++++++++++++++++++----
1 file changed, 64 insertions(+), 7 deletions(-)
diff --git a/dev/system_tests/update_issue_status.py b/dev/system_tests/update_issue_status.py
index d1bd9af566..0f9fe1d5db 100755
--- a/dev/system_tests/update_issue_status.py
+++ b/dev/system_tests/update_issue_status.py
@@ -17,10 +17,10 @@
# under the License.
import textwrap
from pathlib import Path
-from typing import Optional, Tuple
+from typing import Dict, List, Optional, Tuple
import rich_click as click
-from github import Github
+from github import Github, Issue
from rich.console import Console
console = Console(width=400, color_system="standard")
@@ -140,18 +140,26 @@ def update_issue_status(
"""Update status of the issues regarding the AIP-47 migration."""
g = Github(github_token)
repo = g.get_repo(repository)
- issues = repo.get_issues(labels=labels.split(','))
+ issues = repo.get_issues(labels=labels.split(','), state='all')
max_issues = max_issues if max_issues is not None else issues.totalCount
total_re_added = 0
total_completed = 0
total_count_done = 0
total_count_all = 0
num_issues = 0
+ completed_open_issues: List[Issue.Issue] = []
+ completed_closed_issues: List[Issue.Issue] = []
+ not_completed_closed_issues: List[Issue.Issue] = []
+ not_completed_opened_issues: List[Issue.Issue] = []
+ per_issue_num_done: Dict[int, int] = {}
+ per_issue_num_all: Dict[int, int] = {}
for issue in issues[start_from : start_from + max_issues]:
console.print(f"[blue] {issue.id}: {issue.title}")
new_body, count_re_added, count_completed, count_done, count_all = process_paths_from_body(
issue.body, dry_run=dry_run, verbose=verbose
)
+ if count_all == 0:
+ continue
if count_re_added != 0 or count_completed != 0:
if dry_run:
print(new_body)
@@ -168,16 +176,65 @@ def update_issue_status(
total_completed += count_completed
total_count_done += count_done
total_count_all += count_all
+ per_issue_num_all[issue.id] = count_all
+ per_issue_num_done[issue.id] = count_done
+ if count_done == count_all:
+ if issue.state == "closed":
+ completed_closed_issues.append(issue)
+ else:
+ completed_open_issues.append(issue)
+ else:
+ if issue.state == "closed":
+ not_completed_closed_issues.append(issue)
+ else:
+ not_completed_opened_issues.append(issue)
num_issues += 1
- console.print()
- console.print()
- console.print(f"[green]Summary of ALL performed actions: for {num_issues} issues[/]")
+ console.print(f"[green]Summary of ALL actions: for {num_issues} issues[/]")
console.print(f" Re-added file number: {total_re_added}")
console.print(f" Completed file number: {total_completed}")
+ console.print()
+ console.print()
+ console.print(f"[green]Summary of ALL issues: for {num_issues} issues[/]")
console.print(
- f" Done {total_count_done}/{total_count_all} = {(total_count_done * 100/ total_count_all):.2f}%"
+ f" Completed and closed issues: {len(completed_closed_issues)}/{num_issues}: "
+ f"{len(completed_closed_issues) * 100/num_issues:.2f}%"
)
+ console.print(
+ f" Completed files {total_count_done}/{total_count_all} = "
+ f"{(total_count_done * 100/ total_count_all):.2f}%"
+ )
+ console.print()
+ if not_completed_closed_issues:
+ console.print("[yellow] Issues that are not completed and should be opened:[/]\n")
+ for issue in not_completed_closed_issues:
+ all = per_issue_num_all[issue.id]
+ done = per_issue_num_done[issue.id]
+ console.print(
+ fr" * \[[yellow]{issue.title}[/]]({issue.html_url}): "
+ f"{done}/{all} : {done * 100 / all:.2f}%"
+ )
+ console.print()
+ if completed_open_issues:
+ console.print("[yellow] Issues that are completed and should be closed:[/]\n")
+ for issue in completed_open_issues:
+ console.print(fr" * \[[yellow]{issue.title}[/]]({issue.html_url})")
+ console.print()
+ if not_completed_opened_issues:
+ console.print("[yellow] Issues that are not completed and are still opened:[/]\n")
+ for issue in not_completed_opened_issues:
+ all = per_issue_num_all[issue.id]
+ done = per_issue_num_done[issue.id]
+ console.print(
+ fr" * \[[yellow]{issue.title}[/]]({issue.html_url}): "
+ f"{done}/{all} : {done * 100 / all:.2f}%"
+ )
+ console.print()
+ if completed_closed_issues:
+ console.print("[green] Issues that are completed and are already closed:[/]\n")
+ for issue in completed_closed_issues:
+ console.print(fr" * \[[green]{issue.title}[/]]({issue.html_url})")
+ console.print()
console.print()