AbsaOSS / AbsaOSS/generate-release-notes

Feature: Robust Placeholder System and Output Formatting Engine

Open
#226 1 comment 1 reaction 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
13
Forks
0
Avg merge
6h 50m
Merged PRs (30d)
7

Description

### Feature Description

Implement a configurable, extensible placeholder system for generated release notes, supporting advanced formatting capabilities such as:
- New placeholder types (e.g., {closed-sub-issues-ratio}, custom contributors, etc.)
- User-defined prefix/postfix support and row formatting controls
- Contributor and user replacement mapping
- Chapter line formatting

### Problem / Opportunity

Current formatting via placeholders is inflexible for complex workflows: users are limited in the formatting of entries, cannot always add missing context or structure, and business requirements (such as custom contributor display or new rules for entry presence/ratio) are not easily satisfied by the template system. A robust system will improve output control for a range of documentation and compliance needs.

### Acceptance Criteria

- Users can add and use new placeholders in configuration.
- Formatting supports prefix, postfix, and row-level control.
- Contributors and co-authors are accessible via placeholders.
- Placeholder parsing is fully unit-tested (edge cases).
- Documentation includes usage and migration guides.
- User replacement mapping is supported in configuration.

### Proposed Solution

Build a flexible parsing engine for placeholders using a config-driven grammar. Enhance documentation and provide test cases for new features. Investigate backward compatibility layer or a migration guide for breaking changes.

### Dependencies / Related

#205, #189, #80, #78, #76, #56, #97

### Additional Context

This feature supports a wide range of release documentation requirements and is foundational for many governance and compliance use cases.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.