Skip to content

Enhance release changelog generation and categorization in NuGet release workflow#24

Merged
Freezor merged 3 commits intomainfrom
codex/fix-changelog-categorization-issue
Mar 27, 2026
Merged

Enhance release changelog generation and categorization in NuGet release workflow#24
Freezor merged 3 commits intomainfrom
codex/fix-changelog-categorization-issue

Conversation

@Freezor
Copy link
Copy Markdown
Owner

@Freezor Freezor commented Mar 27, 2026

Motivation

  • Improve automated release notes generation to produce more structured, categorized changelogs for both PRs and direct commits.
  • Add label extraction and basic autolabeling heuristics so releases convey meaningful categories like Features, Bug Fixes, Docs, and Maintenance.

Description

  • Update the Build Changelog step (using mikepenz/release-changelog-builder-action@v6) to use mode: "HYBRID" and supply a configurationJson payload.
  • Provide a custom template and empty_template for the changelog output and set pr_template and commit_template formats.
  • Add categorized sections for PR-driven entries and commit-driven entries with regex rules for commit classification and sort configuration by mergedAt in ascending order.
  • Add label_extractor patterns and an autolabeler block to infer labels from file paths for docs, test, and ci changes.

Testing

  • No automated unit tests were changed or executed as part of this PR; the change updates CI workflow configuration and will be validated when the GitHub Actions workflow runs on the next release.

Codex Task

Summary by CodeRabbit

  • Chores
    • Improved changelog/release-note generation: unified hybrid mode with distinct handling for pull requests vs. direct commits, clearer category grouping (features, bug fixes, maintenance, docs, tests, security), deterministic sorting by merge date, label-to-category mapping, and automated labeling based on changed paths to produce more organized release notes.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Mar 27, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 550592b7-6b08-45aa-8a9c-a1b80920ca55

📥 Commits

Reviewing files that changed from the base of the PR and between 7efbeef and 8067330.

📒 Files selected for processing (1)
  • .github/workflows/release-nuget.yml
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/release-nuget.yml

Walkthrough

The .github/workflows/release-nuget.yml Build Changelog step now uses mode: "HYBRID" with an explicit configurationJson providing templates, PR/commit category rules (including regex), sort by mergedAt, label_extractor mappings, and autolabeler path-based rules.

Changes

Cohort / File(s) Summary
Changelog Configuration
​.github/workflows/release-nuget.yml
Replaced the changelog step inputs with mode: "HYBRID" and a detailed configurationJson: explicit template/empty_template, PR categories (label-based), commit categories (regex rules on title), sort by mergedAt, label_extractor mappings, and autolabeler path/glob rules for docs, test, and ci.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: enhancing the changelog generation with structured categorization in the NuGet release workflow using HYBRID mode and detailed configuration.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/fix-changelog-categorization-issue

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7efbeef9fa

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/release-nuget.yml Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
.github/workflows/release-nuget.yml (1)

299-302: Consider glob pattern case sensitivity.

The test file patterns include **/*.Tests/** (PascalCase) but the action's glob matching may be case-sensitive depending on the underlying implementation. If the repository also has lowercase test directories (e.g., .tests/), they might not match.

💡 Optional: Add case variant if needed

If case-insensitive matching is needed, consider adding lowercase variants:

               {
                 "label": "test",
-                "files": ["**/*test*/**", "**/*tests*/**", "**/*.Tests/**"]
+                "files": ["**/*test*/**", "**/*tests*/**", "**/*.Tests/**", "**/*.tests/**"]
               },
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/release-nuget.yml around lines 299 - 302, The "test" glob
list contains a PascalCase entry "**/*.Tests/**" which may not match lowercase
directories on case-sensitive runners; update the "test" label's files array
(the JSON entry with "label": "test") to include the lowercase variant(s) such
as "**/*.tests/**" (and any other case variants you expect) so both PascalCase
and lowercase test folders are matched reliably.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.github/workflows/release-nuget.yml:
- Around line 299-302: The "test" glob list contains a PascalCase entry
"**/*.Tests/**" which may not match lowercase directories on case-sensitive
runners; update the "test" label's files array (the JSON entry with "label":
"test") to include the lowercase variant(s) such as "**/*.tests/**" (and any
other case variants you expect) so both PascalCase and lowercase test folders
are matched reliably.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a358a9a0-8e90-44e3-bea9-b782d65fe14d

📥 Commits

Reviewing files that changed from the base of the PR and between 34563ea and 7efbeef.

📒 Files selected for processing (1)
  • .github/workflows/release-nuget.yml

@Freezor Freezor merged commit a419797 into main Mar 27, 2026
3 checks passed
@Freezor Freezor deleted the codex/fix-changelog-categorization-issue branch March 28, 2026 21:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant