Merge branch 'blender-v4.4-release'

This commit is contained in:
Alaska
2025-03-04 01:54:13 +13:00

View File

@@ -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()))