Skip to content

Commit e202da4

Browse files
LucaBernsteinzkdev
authored andcommitted
Sort and group release note category entries by audience
1 parent 4129d44 commit e202da4

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

release_notes/model.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,15 @@ class ReleaseNotesAudience(enum.StrEnum):
7070
OPERATOR = 'operator'
7171
USER = 'user'
7272

73+
@staticmethod
74+
def audience_priority(audience: typing.Self) -> int:
75+
return {
76+
ReleaseNotesAudience.OPERATOR: 0,
77+
ReleaseNotesAudience.USER: 1,
78+
ReleaseNotesAudience.DEVELOPER: 2,
79+
ReleaseNotesAudience.DEPENDENCY: 3,
80+
}[audience]
81+
7382

7483
class AuthorType(enum.StrEnum):
7584
GITHUB_USER = 'githubUser'
@@ -151,12 +160,15 @@ def as_markdown(self) -> str | None:
151160
)
152161

153162
for category in sorted_categories:
154-
release_notes = categorised_release_notes[category]
163+
sorted_release_notes = sorted(
164+
categorised_release_notes[category],
165+
key=lambda rn: ReleaseNotesAudience.audience_priority(rn.audience)
166+
)
155167
title = ReleaseNotesCategory.category_title(category)
156168

157169
block_lines = [f'## {title}']
158170

159-
for release_note in release_notes:
171+
for release_note in sorted_release_notes:
160172
release_note: ReleaseNoteEntry
161173
author = f'@{release_note.author.username}'
162174
audience = release_note.audience.name

0 commit comments

Comments
 (0)