Enhance changelog bundle and remove commands with github release workflow#2843
Merged
Enhance changelog bundle and remove commands with github release workflow#2843
Conversation
2 tasks
reakaleek
approved these changes
Mar 4, 2026
57fb40f to
5413cbe
Compare
82c9cc0 to
8ff4061
Compare
This was referenced Mar 5, 2026
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
Per #2841, the
docs-builder changelog gh-releasecommand creates both changelog files and a bundle from a GitHub release.This PR enhances the other
docs-builder changelogcommands to have similar support in case teams want to separate the tasks.For example, maybe there's a case where they already have all the changelogs (created on a PR-by-PR basis) and just want to bundle up the appropriate changelogs for a release.
The PR finishes adding
--release-versionsupport to three commands:**changelog add**: Fetch PRs from a GitHub release and create changelog files (delegates toGitHubReleaseChangelogService)**changelog bundle**: Resolve a release into a PR list and bundle matching changelogs (equivalent to--prswith that list)**changelog remove**: Resolve a release into a PR list and remove matching changelogs (equivalent to--prswith that list)It also applies config fallbacks (
bundle.repo,bundle.owner,bundle.directory) forchangelog addin all modes and makes some general doc improvements (e.g. removal of repeated "mutual exclusivity" statements).Some of these changes were originally accomplished in sub-PRs but I've merged them together to fix the config fallbacks consistently. The following summary comes from a trial changelog-specific SKILL.md....
Architecture and flow
The implementation follows the expected flow:
ChangelogCommandvalidates mutual exclusivity and delegates to services--release-versionin bundle/remove resolves to a PR list viaIGitHubReleaseServiceandReleaseNoteParser, then proceeds as if--prswas specifiedInvocation modes
--release-versionis allowed only in option-based mode; profile mode continues to use config.--all,--input-products,--prs,--issues,--release-version, or--report.Owner/repo precedence
Matches SKILL guidance:
--repo>bundle.repoin config--owner>bundle.ownerin config >"elastic"Command synchronization
**changelog bundle**and**changelog remove**both support--release-versionwith the same semantics. Filter parity is preserved.**changelog gh-release**is unchanged in behavior; it already does add + bundle. The new--release-versionis an alternative way to drive bundle/remove, not a replacement for gh-release.Config extension steps
Not applicable: no new config fields were added.
config/changelog.example.ymlwas not modified, which is correct for a CLI-only option.Product/version/lifecycle uniformity
ChangelogTextUtilities.ExtractBaseVersionandChangelogTextUtilities.InferLifecycleFromVersionare used for tag inference.configurationContext.ProductsConfiguration.GetProductByRepositoryNameis used for repo-to-product mapping.Tests
The branch includes:
BundleReleaseVersionTests.cs— bundle--release-version(happy path, errors, config fallbacks)RemoveReleaseVersionTests.cs— remove--release-version(happy path, dry-run, mutual exclusivity, config fallbacks)ReleaseVersionTests.cs— add--release-version(in Create/)ChangelogConfigurationTests.cs— config loading/fallbacksChangelogRemoveTests.cs— profile vs option modeThis satisfies the SKILL test requirements.
Documentation checklist
changelog-bundle.md— options, exampleschangelog-remove.md— options, mutual exclusivity, precedencechangelog-add.md— optionschangelog-gh-release.mddocs/contribute/changelog.md--release-versiondocs/syntax/changelog.mdconfig/changelog.example.ymlVerification conclusion
The changes align with both AGENTS.md and the changelog-tool SKILL.
Steps to test
--release-versionoption. For example:--release-versionoption. For example:--release-versionoption. For example:bundle.repoandbundle.owneroptions to verify the fallback behaviour.Generative AI disclosure
Tool(s) and model(s) used: composer-1.5, clause-4.6-sonnet-medium