This project uses Task to automate changelog generation for releases.
-
Install Task:
# macOS brew install go-task/tap/go-task # Or download from https://taskfile.dev/installation/
-
Install dependencies:
# GitHub CLI brew install gh # jq for JSON processing brew install jq # python3 (usually pre-installed on macOS) python3 --version
-
Authenticate with GitHub:
gh auth login
# Generate changelog for version 0.8.0
task generate-changelog VERSION=0.8.0
# Generate changelog with more PRs (default is 10)
task generate-changelog VERSION=0.8.0 LIMIT=20This will:
- Fetch the last 10 (or specified number) of merged PRs
- Categorize them into Added/Fixed/Dependencies sections
- Update
CHANGELOG.mdwith the new version - Update
src/main/resources/META-INF/plugin.xmlchange-notes section - Extract unique contributors
# See what changes would be included without making modifications
task preview-changes VERSION=0.8.0# Remove temporary files
task clean-temp# Show all available tasks and examples
task help
# or just
task-
CHANGELOG.md: Adds a new version section with:
- Date-stamped version header
- Categorized changes (Added, Fixed, Dependencies)
- PR numbers and links
- List of contributors
-
plugin.xml: Updates the
<change-notes>section with:- HTML-formatted list of key changes
- Focuses on user-facing features and fixes
- Limits dependency updates to avoid clutter
The Taskfile can be customized by editing Taskfile.yml:
- Modify PR categorization rules in the
jqfilters - Change the number of dependency updates shown in plugin.xml
- Adjust the changelog format
- Add additional tasks for related release processes
After running the automation:
- Review CHANGELOG.md - Ensure categorization is correct and edit descriptions if needed
- Review plugin.xml - Make sure change-notes are user-friendly and properly formatted
- Commit changes - The automation doesn't commit, allowing you to review first
- "gh not found": Install GitHub CLI with
brew install gh - "jq not found": Install jq with
brew install jq - "No PRs found": Check if you're authenticated with
gh auth status - Permission issues: Ensure you have read access to the repository