Changelog profile parity for the GitHub release workflow#2855
Open
Changelog profile parity for the GitHub release workflow#2855
Conversation
…dir precedence pattern (#2854)
Correct the claim that repo/owner are always ignored during profile-based removal. For source: github_release profiles they are actively used to fetch the GitHub release and build the PR URL list. - contribute/changelog.md: replace the blanket "ignored" statement with a per-profile-type breakdown; add a source: github_release removal example and GITHUB_TOKEN note. - changelog-remove.md: same correction to the note in the profile-based removal section; add a dedicated "Remove using a GitHub release profile" subsection with examples and a cross-reference to the profile config fields in changelog-bundle.md. Made-with: Cursor
🔍 Preview links for changed docs |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds
source: github_releaseprofile support tochangelog bundleandchangelog removeso that we continue to have full parity between the command-option-based and profile-based invocations.It also fixes several bugs discovered along the way, and substantially rewrites the changelog CLI documentation.
Details
New features
source: github_releaseprofile support (changelog bundleandchangelog remove)Profiles can now set
source: github_releaseto fetch the PR list directly from a published GitHub release instead of filtering pre-existing changelog files by product metadata. This is the profile-based equivalent of the existing--release-versionoption, letting you store your release workflow fully inchangelog.ymlrather than on the command line. Bothchangelog bundleandchangelog removesupport it.Lifecycle inference from release tags for
source: github_releaseprofilesThe
{lifecycle}placeholder inoutputandoutput_productspatterns is now inferred from the raw release tag returned by GitHub, so pre-release suffixes are preserved:v9.2.0-beta.1→beta,v1.34.1-preview.1→preview. Previously the tag was stripped to its base version before inference, meaning{lifecycle}was alwaysga.Bug fixes
changelog removesilently ignored--repoand--ownerin profile modeThese options are not permitted with a profile (all configuration must come from
changelog.yml), but no error was emitted. The command now returns an explicit error listing all forbidden options, consistent withchangelog bundle's existing validation. The error message also names the specific offending flags rather than issuing a generic rejection.--release-versioninconsistently auto-inferredoutput_productsWhen
--output-productswas omitted,--release-versionsilently derived a single product entry from the release tag and the internalproducts.ymlregistry — behavior that no other filter option (--prs,--issues,--report,--all) shares. This was removed. All option-based filters now consistently derive the products array from the matched changelog files when--output-productsis not provided.Misleading error for
source: github_releaseprofiles with a third argumentPassing a third command argument to a
github_releaseprofile produced the error "cannot be combined with a promotion report argument," which was confusing since no report is involved. The message now clearly explains the constraint and suggests hardcoding the lifecycle inoutput_productsif tag-suffix inference is not sufficient.Documentation corrections and improvements
outputprofile field was incorrectly marked "Required for bundling." It is optional; the command falls back tochangelog-bundle.yamlin the output directory.productsprofile field was incorrectly marked "Required unlesssource: github_releaseis set." It is only required when filtering by product metadata. Profiles backed by a promotion report, URL list, orsource: github_releasedo not need it.productsfield at all.changelog-bundle.mdandchangelog.mdcovering standard profiles (version argument → lifecycle) and GitHub release profiles (release tag → lifecycle), with worked examples for GA, beta, and preview releases.changelog.example.ymlto include commented-out examples for both standard profiles andsource: github_releaseprofiles.Steps to test
--release-versionoption. For example:source: github_releaseclause. For example:apm-agent-dotnet-1.34.1.yamlin thedocs/releasesfolder and it contained the four relevant changelogs and product metadata like this:docs/changelogfolder.outputandoutput_productsfields in the profile and then re-ran the bundle command. It created the bundle successfully in the appropriate directory with the default namechangelog-bundle.yaml. The product metadata in the bundle is derived from the GitHub release.bundle.repoandbundle.ownerfields in the profile and then re-ran the bundle command. It correctly fails with this error:Generative AI disclosure
Tool(s) and model(s) used: composer-1.5, clause-4.6-sonnet-medium