Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 22 additions & 14 deletions release_notes_generator/chapters/service_chapters.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,18 @@
This module contains the ServiceChapters class which is responsible for representing the service chapters in the release
notes.
"""
import logging
from typing import Optional, cast

from release_notes_generator.action_inputs import ActionInputs
from release_notes_generator.chapters.base_chapters import BaseChapters
from release_notes_generator.model.chapter import Chapter
from release_notes_generator.model.record.commit_record import CommitRecord
from release_notes_generator.model.record.hierarchy_issue_record import HierarchyIssueRecord
from release_notes_generator.model.record.issue_record import IssueRecord
from release_notes_generator.model.record.pull_request_record import PullRequestRecord
from release_notes_generator.model.record.record import Record
from release_notes_generator.model.record.sub_issue_record import SubIssueRecord
from release_notes_generator.utils.constants import (
CLOSED_ISSUES_WITHOUT_PULL_REQUESTS,
CLOSED_ISSUES_WITHOUT_USER_DEFINED_LABELS,
Expand All @@ -38,6 +41,8 @@
)
from release_notes_generator.utils.enums import DuplicityScopeEnum

logger = logging.getLogger(__name__)


# pylint: disable=too-many-instance-attributes
class ServiceChapters(BaseChapters):
Expand Down Expand Up @@ -121,20 +126,23 @@ def populate(self, records: dict[str, Record]) -> None:

# other edge case situations
else:
if (
record.is_open
and isinstance(record, IssueRecord)
and cast(IssueRecord, record).pull_requests_count() == 0
):
# no change increment delivered
pass
elif (
record.is_open
and isinstance(record, IssueRecord)
and cast(IssueRecord, record).pull_requests_count() > 0
):
self.chapters[MERGED_PRS_LINKED_TO_NOT_CLOSED_ISSUES].add_row(record_id, record.to_chapter_row())
self.used_record_numbers.append(record_id)
pr_count = cast(IssueRecord, record).pull_requests_count()
is_issue_like = isinstance(record, (IssueRecord, SubIssueRecord))
is_hierarchy = isinstance(record, HierarchyIssueRecord)

if record.is_open:
if is_hierarchy and record.is_present_in_chapters:
logger.debug("Skipping open HierarchyIssueRecord %s (pr_count=%d)", record_id, pr_count)
elif is_issue_like and pr_count > 0:
# Open issue/sub-issue with linked PRs → add to the specific chapter
self.chapters[MERGED_PRS_LINKED_TO_NOT_CLOSED_ISSUES].add_row(
record_id, record.to_chapter_row()
)
logger.debug("Linked PRs for open issue %s; added to chapter.", record_id)
self.used_record_numbers.append(record_id)
else:
# Open issue/sub-issue with no PRs → explicitly do nothing (keeps original behavior)
pass
else:
if record_id not in self.used_record_numbers:
self.chapters[OTHERS_NO_TOPIC].add_row(record_id, record.to_chapter_row())
Expand Down
93 changes: 3 additions & 90 deletions tests/release_notes/builder/test_release_notes_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -269,36 +269,7 @@
All closed PRs are linked to issues.

### Merged PRs Linked to 'Not Closed' Issue ⚠️
- 🔔 None: _HI302 open_ #302
- _Release Notes_:
- Hierarchy level release note
- 🔔 N/A: #451 _SI451 closed_ developed by @pr_author_101, @user in #150
- Hierarchy level release note
- Fixed bug
- Improved performance
+ More nice code
* Awesome architecture
- 🔔 None: _HI303 open_ #303
- _Release Notes_:
- Hierarchy level release note
- 🔔 N/A: #452 _SI452 closed_ developed by @author, @pr_author_101, @user in #151
- Hierarchy level release note
- Fixed bug
- Improved performance
+ More nice code
* Awesome architecture
- 🔔 None: _HI304 open_ #304
- _Release Notes_:
- Hierarchy level release note
- 🔔 None: _HI350 open_ #350
- _Release Notes_:
- Sub-hierarchy level release note
- 🔔 N/A: #453 _SI453 closed_ developed by @author, @pr_author_101, @user in #152
- Hierarchy level release note
- Fixed bug
- Improved performance
+ More nice code
* Awesome architecture
All merged PRs are linked to Closed issues.

### Direct commits ⚠️
- Commit: merge_c... - Direct commit example
Expand Down Expand Up @@ -362,36 +333,7 @@
* Awesome architecture

### Merged PRs Linked to 'Not Closed' Issue ⚠️
- 🔔 Epic: _HI302 open_ #302
- _Release Notes_:
- Hierarchy level release note
- 🔔 Task: #451 _SI451 closed_ developed by @pr_author_101, @user in #150
- Hierarchy level release note
- Fixed bug
- Improved performance
+ More nice code
* Awesome architecture
- 🔔 Epic: _HI303 open_ #303
- _Release Notes_:
- Hierarchy level release note
- 🔔 Task: #452 _SI452 closed_ developed by @author, @pr_author_101, @user in #151
- Hierarchy level release note
- Fixed bug
- Improved performance
+ More nice code
* Awesome architecture
- 🔔 Epic: _HI304 open_ #304
- _Release Notes_:
- Hierarchy level release note
- 🔔 Feature: _HI350 open_ #350
- _Release Notes_:
- Sub-hierarchy level release note
- 🔔 Task: #453 _SI453 closed_ developed by @author, @pr_author_101, @user in #152
- Hierarchy level release note
- Fixed bug
- Improved performance
+ More nice code
* Awesome architecture
All merged PRs are linked to Closed issues.

### Direct commits ⚠️
- Commit: merge_c... - Direct commit example
Expand Down Expand Up @@ -458,36 +400,7 @@
All closed PRs are linked to issues.

### Merged PRs Linked to 'Not Closed' Issue ⚠️
- 🔔 Epic: _HI302 open_ #302
- _Release Notes_:
- Hierarchy level release note
- 🔔 Task: #451 _SI451 closed_ developed by @pr_author_101, @user in #150
- Hierarchy level release note
- Fixed bug
- Improved performance
+ More nice code
* Awesome architecture
- 🔔 Epic: _HI303 open_ #303
- _Release Notes_:
- Hierarchy level release note
- 🔔 Task: #452 _SI452 closed_ developed by @author, @pr_author_101, @user in #151
- Hierarchy level release note
- Fixed bug
- Improved performance
+ More nice code
* Awesome architecture
- 🔔 Epic: _HI304 open_ #304
- _Release Notes_:
- Hierarchy level release note
- 🔔 Feature: _HI350 open_ #350
- _Release Notes_:
- Sub-hierarchy level release note
- 🔔 Task: #453 _SI453 closed_ developed by @author, @pr_author_101, @user in #152
- Hierarchy level release note
- Fixed bug
- Improved performance
+ More nice code
* Awesome architecture
All merged PRs are linked to Closed issues.

### Direct commits ⚠️
- Commit: merge_c... - Direct commit example
Expand Down
Loading