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 b3b8ae99ca Tracking airflow-github changelog activities using progress
bar (#36610)
b3b8ae99ca is described below
commit b3b8ae99ca1ef0524854148ca8a549232e2f3ae0
Author: Amogh Desai <[email protected]>
AuthorDate: Fri Jan 5 18:30:39 2024 +0530
Tracking airflow-github changelog activities using progress bar (#36610)
* Tracking airflow-github changelog activities using progress bar
* review comments from ephraimbuddy
---
dev/airflow-github | 41 ++++++++++++++++++++++++-----------------
1 file changed, 24 insertions(+), 17 deletions(-)
diff --git a/dev/airflow-github b/dev/airflow-github
index 7d4ad9ebb9..4b33802aef 100755
--- a/dev/airflow-github
+++ b/dev/airflow-github
@@ -31,6 +31,8 @@ import git
import rich_click as click
from github import Github
from packaging import version
+from rich.console import Console
+from rich.progress import Progress
if TYPE_CHECKING:
from github.Issue import Issue
@@ -40,7 +42,6 @@ GIT_COMMIT_FIELDS = ["id", "author_name", "author_email",
"date", "subject", "bo
GIT_LOG_FORMAT = "%x1f".join(["%h", "%an", "%ae", "%ad", "%s", "%b"]) + "%x1e"
pr_title_re = re.compile(r".*\((#[0-9]{1,6})\)$")
-
STATUS_COLOR_MAP = {
"Closed": "green",
"Open": "red",
@@ -318,13 +319,11 @@ def compare(target_version, github_token,
previous_version=None, show_uncherrypi
@click.argument("previous_version")
@click.argument("target_version")
@click.argument("github-token", envvar="GITHUB_TOKEN")
-def changelog(previous_version, target_version, github_token):
[email protected]("--disable-progress", is_flag=True, help="Disable the progress
bar")
+def changelog(previous_version, target_version, github_token,
disable_progress):
repo = git.Repo(".", search_parent_directories=True)
# Get a list of issues/PRs that have been committed on the current branch.
log = get_commits_between(repo, previous_version, target_version)
-
- print("Number of commits", len(log))
-
gh = Github(github_token)
gh_repo = gh.get_repo("apache/airflow")
sections = defaultdict(list)
@@ -335,18 +334,26 @@ def changelog(previous_version, target_version,
github_token):
if match:
existing_commits.add(match.group(1))
- for commit in log:
- tickets = pr_title_re.findall(commit["subject"])
- if tickets:
- issue = gh_repo.get_issue(number=int(tickets[0][1:]))
- issue_type = get_issue_type(issue)
- files = files_touched(repo, commit["id"])
- if commit["id"] in existing_commits:
- continue
- if is_core_commit(files):
- sections[issue_type].append(commit["subject"])
- else:
- sections[DEFAULT_SECTION_NAME].append(commit["subject"])
+ console = Console(width=180)
+
+ with Progress(console=console, disable=disable_progress) as progress:
+ task = progress.add_task("Processing commits from changelog",
total=len(log))
+ for commit in progress.track(log, description="Processing commits from
changelog"):
+ tickets = pr_title_re.findall(commit["subject"])
+ if tickets:
+ issue = gh_repo.get_issue(number=int(tickets[0][1:]))
+ issue_type = get_issue_type(issue)
+ files = files_touched(repo, commit["id"])
+ if commit["id"] in existing_commits:
+ continue
+ if is_core_commit(files):
+ sections[issue_type].append(commit["subject"])
+ progress.update(task, advance=1)
+ else:
+ sections[DEFAULT_SECTION_NAME].append(commit["subject"])
+ progress.update(task, advance=1)
+
+ console.print("\n")
print_changelog(sections)