From f5f50f2eed96831fb587bc536d10804c1957eab2 Mon Sep 17 00:00:00 2001 From: Jayden Lee <41176085+tkxkd0159@users.noreply.github.com> Date: Tue, 28 May 2024 11:43:42 +0900 Subject: [PATCH 1/4] force user to follow release note rule --- RELEASE_DESCR.md | 2 ++ scripts/release-note.py | 60 ++++++++++++++++++++++++----------------- 2 files changed, 37 insertions(+), 25 deletions(-) diff --git a/RELEASE_DESCR.md b/RELEASE_DESCR.md index 09496874..38029e8b 100644 --- a/RELEASE_DESCR.md +++ b/RELEASE_DESCR.md @@ -40,3 +40,5 @@ This version based on finschia-sdk v0.46.0-rc2 ## [v0.1.0] - 2021-11-01 This is the first release of the Finschia blockchain. It is based on [gaia v4.0.4](https://github.com/cosmos/gaia/releases/tag/v4.0.4). + + diff --git a/scripts/release-note.py b/scripts/release-note.py index 2178f286..52da64d4 100644 --- a/scripts/release-note.py +++ b/scripts/release-note.py @@ -28,8 +28,12 @@ def get_prev_gittag(target_tag: str) -> str: ) -def extract_package_version(document: str, package_name: str): - pattern = rf"{re.escape(package_name)} (v[^\s]+)" +def extract_package_version( + document: str, package_name: str, version_suffix: bool +) -> str: + suffix_pattern = r"\/v\d+" if version_suffix else "" + pattern = rf"{re.escape(package_name)}{suffix_pattern} (v[^\s]+)" + match = re.search(pattern, document) if match: return match.group(1) @@ -37,7 +41,7 @@ def extract_package_version(document: str, package_name: str): raise ValueError(f"Package {package_name} not found in the document.") -def extract_go_version(document: str): +def extract_go_version(document: str) -> str: pattern = r"go ([^\s]+)" match = re.search(pattern, document) if match: @@ -52,25 +56,29 @@ def extract_release_contents(target: str, cur_tag: str, prev_tag: str) -> str: with open(target, "r") as f: document = f.read() - start_marker = f"## [{cur_tag}]" - start_pos = document.find(start_marker) + len(start_marker) + len(" - YYYY-MM-DD") - if start_pos != -1: - if prev_tag is None: - end_pos = document.find("") - if end_pos == -1: - match = re.search(r"## \[v\d+\.\d+\.\d+] - \d{4}-\d{2}-\d{2}", document[start_pos:]) - if match is None: - end_pos = -1 - else: - end_pos = start_pos + match.start() - 1 - else: - end_marker = f"## [{prev_tag}]" - end_pos = document.find(end_marker) - if end_pos == -1: - match = re.search(r"## \[v\d+\.\d+\.\d+] - \d{4}-\d{2}-\d{2}", document[start_pos:]) - end_pos = start_pos + match.start() - 1 + + start_marker = f"## [{cur_tag}] - " + start_pos = document.find(start_marker) + + if start_pos == -1: + raise ValueError(f"Start marker for tag '{cur_tag}' not found in the document.") + + start_pos += len(start_marker) + len("YYYY-MM-DD") + + if prev_tag: + end_marker = f"## [{prev_tag}]" + end_pos = document.find(end_marker, start_pos) + if end_pos == -1: + raise ValueError( + f"End marker for previous tag '{prev_tag}' not found in the document." + ) else: - raise ValueError("Content not found between the specified markers.") + end_pos = document.find("", start_pos) + if end_pos == -1: + raise ValueError( + "End marker '' not found in the document." + ) + return document[start_pos:end_pos].strip() @@ -85,10 +93,12 @@ def extract_release_contents(target: str, cur_tag: str, prev_tag: str) -> str: TAG = args[0] PREV_TAG = get_prev_gittag(TAG) GO_VERSION = extract_go_version(gomod) -OSTRACON_VERSION = extract_package_version(gomod, "github.com/Finschia/ostracon") -FNSASDK_VERSION = extract_package_version(gomod, "github.com/Finschia/finschia-sdk") -WASMD_VERSION = extract_package_version(gomod, "github.com/Finschia/wasmd") -IBC_VERSION = extract_package_version(gomod, "github.com/cosmos/ibc-go/v4") +OSTRACON_VERSION = extract_package_version(gomod, "github.com/Finschia/ostracon", False) +FNSASDK_VERSION = extract_package_version( + gomod, "github.com/Finschia/finschia-sdk", False +) +WASMD_VERSION = extract_package_version(gomod, "github.com/Finschia/wasmd", False) +IBC_VERSION = extract_package_version(gomod, "github.com/cosmos/ibc-go", True) release_note = f"""# Finschia {TAG} Release Note From ecb884866c4a55c3c75bfed35e60a3926673c9a3 Mon Sep 17 00:00:00 2001 From: Jayden Lee <41176085+tkxkd0159@users.noreply.github.com> Date: Tue, 28 May 2024 11:59:54 +0900 Subject: [PATCH 2/4] Add CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e5d54ee..3759b9e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,6 +48,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (fswap, fbridge) [\#380](https://github.com/Finschia/finschia/pull/380) Bump github.com/Finschia/finschia-sdk from v0.49.0-rc6 to v0.49.0-rc7 ### Improvements +* (ci) [\#385](https://github.com/Finschia/finschia/pull/385) Force user to follow the rule of release note generation ### Bug Fixes From ec58837d0050668dd7832ac3b705b4081a1de906 Mon Sep 17 00:00:00 2001 From: Jayden Lee <41176085+tkxkd0159@users.noreply.github.com> Date: Tue, 28 May 2024 15:11:32 +0900 Subject: [PATCH 3/4] chore --- scripts/release-note.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/scripts/release-note.py b/scripts/release-note.py index 52da64d4..a3c874d9 100644 --- a/scripts/release-note.py +++ b/scripts/release-note.py @@ -61,23 +61,21 @@ def extract_release_contents(target: str, cur_tag: str, prev_tag: str) -> str: start_pos = document.find(start_marker) if start_pos == -1: - raise ValueError(f"Start marker for tag '{cur_tag}' not found in the document.") + raise ValueError(f"Start marker for tag '{cur_tag}' not found in {target}.") start_pos += len(start_marker) + len("YYYY-MM-DD") + end_marker = f"## [{prev_tag}]" if prev_tag else "" if prev_tag: - end_marker = f"## [{prev_tag}]" end_pos = document.find(end_marker, start_pos) if end_pos == -1: raise ValueError( - f"End marker for previous tag '{prev_tag}' not found in the document." + f"End marker for previous tag '{prev_tag}' not found in {target}." ) else: - end_pos = document.find("", start_pos) + end_pos = document.find(end_marker, start_pos) if end_pos == -1: - raise ValueError( - "End marker '' not found in the document." - ) + raise ValueError(f"End marker '{end_marker}' not found in {target}.") return document[start_pos:end_pos].strip() From 425df3066ff0eb868dbf908978832d87feee6d1d Mon Sep 17 00:00:00 2001 From: Jayden Lee <41176085+tkxkd0159@users.noreply.github.com> Date: Tue, 28 May 2024 17:42:28 +0900 Subject: [PATCH 4/4] chore --- scripts/release-note.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/scripts/release-note.py b/scripts/release-note.py index a3c874d9..d3991c7e 100644 --- a/scripts/release-note.py +++ b/scripts/release-note.py @@ -61,21 +61,18 @@ def extract_release_contents(target: str, cur_tag: str, prev_tag: str) -> str: start_pos = document.find(start_marker) if start_pos == -1: - raise ValueError(f"Start marker for tag '{cur_tag}' not found in {target}.") + raise ValueError(f"Start marker for tag '{cur_tag}' not found in {target}") start_pos += len(start_marker) + len("YYYY-MM-DD") end_marker = f"## [{prev_tag}]" if prev_tag else "" + end_pos = document.find(end_marker, start_pos) - if prev_tag: - end_pos = document.find(end_marker, start_pos) - if end_pos == -1: - raise ValueError( - f"End marker for previous tag '{prev_tag}' not found in {target}." - ) - else: - end_pos = document.find(end_marker, start_pos) - if end_pos == -1: - raise ValueError(f"End marker '{end_marker}' not found in {target}.") + if end_pos == -1: + raise ValueError( + f"End marker for previous tag '{prev_tag}' not found in {target}" + if prev_tag + else f"End marker '{end_marker}' not found in {target}" + ) return document[start_pos:end_pos].strip()