Add bundle release date command options#3072
Open
lcawl wants to merge 2 commits intobundle-release-datefrom
Open
Add bundle release date command options#3072lcawl wants to merge 2 commits intobundle-release-datefrom
lcawl wants to merge 2 commits intobundle-release-datefrom
Conversation
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.
Relates to #3030
This PR is a follow-up to #3066
Overview
This PR implements comprehensive release date automation for changelog bundles, focusing on CI/CD workflows while maintaining flexibility for different use cases. The feature allows release dates to be automatically populated and conditionally rendered based on configuration.
Key Features
🚀 Automatic Release Date Population
changelog gh-releaseautomatically uses the GitHub releasepublished_atdate--release-date YYYY-MM-DDflag for explicit date specification🎛️ Configurable Rendering Control
bundle.show_release_datesconfiguration (defaults tofalse)bundle.profiles.<name>.show_release_datesfor per-profile customization--no-release-dateto explicitly suppress date population🔧 Profile Mode Enhancement
changelog bundlebehave identicallyshow_release_datessettingMajor Files Changed
Configuration & Domain Models
BundleConfiguration.cs- AddedShowReleaseDatesproperty (default:false)Bundle.cs- AddedShowReleaseDatesproperty to domain modelChangelogConfigurationYaml.cs- YAML serialization supportChangelogConfigurationLoader.cs- Configuration parsing logicCore Services
ChangelogBundlingService.cs- Auto-population and profile resolution logicGitHubReleaseChangelogService.cs- GitHubpublished_atdate integrationGitHubReleaseService.cs- Extended GitHub API response parsingRendering Engine
ChangelogRenderingService.cs- Bundle-level rendering controlIndexMarkdownRenderer.cs- Conditional Markdown outputChangelogAsciidocRenderer.cs- Conditional AsciiDoc outputChangelogInlineRenderer.cs- Directive rendering updatesCLI Interface
ChangelogCommand.cs- Added--release-dateand--no-release-dateflags with validationDocumentation
bundle.md,gh-release.md)changelog.md)contribute/changelog.md)changelog.example.yml)Usage Examples
CLI Commands
Configuration
Technical Implementation
Resolution Order (ShowReleaseDates)
--no-release-datesets tofalse)bundle.profiles.<name>.show_release_dates)bundle.show_release_dates)false)Resolution Order (ReleaseDate)
--release-date)published_at(forgh-releasecommand)--no-release-date)Rendering Logic
Release dates appear in output only when:
ShowReleaseDatesistrueANDReleaseDatevalue is presentBackward Compatibility
show_release_datesdefaults tofalse- no impact on existing documentationchangelog bundle-amendpreserves existing release date metadataTesting Status
release-datefeaturesShowReleaseDatesfunctionality should be added in follow-up workBreaking Changes
None. All new functionality is opt-in with safe defaults.
This implementation prioritizes CI/CD automation while providing flexible control over release date rendering, supporting both automated workflows and manual release processes.
Generative AI disclosure
Tool(s) and model(s) used: claude-sonnet-4