diff --git a/release/release_notes/bug_fixes_per_major_release.py b/release/release_notes/bug_fixes_per_major_release.py index f9e794961ea..b7c934bc058 100644 --- a/release/release_notes/bug_fixes_per_major_release.py +++ b/release/release_notes/bug_fixes_per_major_release.py @@ -186,6 +186,9 @@ FIXED_OLD_ISSUE = "FIXED OLD" FIXED_PR = "FIXED PR" REVERT = "REVERT" +SORTED_CLASSIFICATIONS = [FIXED_NEW_ISSUE, FIXED_OLD_ISSUE] +VALID_CLASSIFICATIONS = [FIXED_NEW_ISSUE, NEEDS_MANUAL_SORTING, FIXED_OLD_ISSUE, FIXED_PR, REVERT] + OLDER_VERION = "OLDER" NEWER_VERION = "NEWER" SAME_VERION = "SAME" @@ -329,13 +332,13 @@ class CommitInfo: # If the fix was back-ported to a old release, then it fixed a old issue. self.classification = FIXED_OLD_ISSUE - def override_report_info(self, new_classification: str, new_title: str, new_module: str) -> None: - if new_classification in (FIXED_NEW_ISSUE, FIXED_OLD_ISSUE): + def override_report_info(self, new_classification: str, new_title: str, new_module: str) -> bool: + if new_classification in SORTED_CLASSIFICATIONS: # Clear classifications are more important then any other. So always override in this case. self.classification = new_classification self.report_title = new_title self.module = new_module - return + return True if new_classification in (NEEDS_MANUAL_SORTING, FIXED_PR): if (self.classification == UNKNOWN) or ((new_classification == @@ -346,7 +349,8 @@ class CommitInfo: self.classification = new_classification self.report_title = new_title self.module = new_module - return + + return False def get_module(self, labels: list[dict[Any, Any]]) -> str: # Figures out what module the report that was fixed belongs too. @@ -373,8 +377,6 @@ class CommitInfo: self.report_title = self.commit_title return - sorted_classes = (FIXED_NEW_ISSUE, FIXED_OLD_ISSUE) - for report_number in self.fixed_reports: report_information = url_json_get( f"https://projects.blender.org/api/v1/repos/blender/blender/issues/{report_number}") @@ -392,11 +394,9 @@ class CommitInfo: current_version=current_version, previous_version=previous_version, ) - self.override_report_info(classification, report_title, module) - - if self.classification in sorted_classes: - # The commit has been sorted. No need to process more reports. - break + if self.override_report_info(classification, report_title, module): + # The commit has been sorted. No need to process more reports. + break def generate_release_note_ready_string(self) -> str: # Breakup report_title based on words, and remove `:` if it's at the end of the first word. @@ -708,19 +708,12 @@ def prepare_for_print(list_of_commits: list[CommitInfo]) -> dict[str, dict[str, # This function takes in a list of commits, and sorts them based on their classification and module. dict_of_sorted_commits: dict[str, dict[str, list[CommitInfo]]] = {} - valid_classifications = [ - FIXED_OLD_ISSUE, - NEEDS_MANUAL_SORTING, - REVERT, - FIXED_PR, - FIXED_NEW_ISSUE, - ] - for item in valid_classifications: + for item in VALID_CLASSIFICATIONS: dict_of_sorted_commits[item] = {} for commit in list_of_commits: commit_classification = commit.classification - if commit_classification in valid_classifications: + if commit_classification in VALID_CLASSIFICATIONS: commit_module = commit.module try: # Try to append to a list. If it fails (The list doesn't exist), create the list. @@ -728,7 +721,7 @@ def prepare_for_print(list_of_commits: list[CommitInfo]) -> dict[str, dict[str, except KeyError: dict_of_sorted_commits[commit_classification][commit_module] = [commit] - for item in valid_classifications: + for item in VALID_CLASSIFICATIONS: # Sort modules alphabetically dict_of_sorted_commits[item] = dict(sorted(dict_of_sorted_commits[item].items()))