Merged
Conversation
New tool to generate changes.json for .NET releases by comparing
source-manifest.json between two refs in dotnet/dotnet.
New projects:
- Dotnet.Release.Changes: Schema types (ChangeRecords, ChangeEntry,
CommitEntry, SourceManifest) with AOT-compatible serializer context
- Dotnet.Release.ChangesHandler: ManifestDiffer, ChangeCollector (GitHub
compare API), ChangesGenerator, CveCrossReference, ProductMapper
CLI command:
dotnet-release generate changes <repo-path> --base <ref> --head <ref>
[--branch <name>] [--version <ver>] [--date <date>]
[--cve-repo <path>] [--labels] [--jsonl] [--output <file>]
Features:
- Diffs source-manifest.json via local git (no network for manifest)
- Enumerates PRs via GitHub compare API for each changed child repo
- CVE cross-reference via --cve-repo (loads cve.json from dotnet/core
release-index branch, identifies security commits in range)
- Handles direct patches to dotnet/dotnet (10.0+ security model)
- PR label fetching via --labels for agent-led categorization
- JSONL output via --jsonl (one repo per line for streaming processing)
- Product mapping (repo -> product slug from taxonomy)
Also updates Directory.Build.props to net11.0 / LangVersion 14.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CI uses .NET 10 SDK which doesn't support net11.0. Revert Directory.Build.props back to net10.0/LangVersion 13. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update all CI workflows and Directory.Build.props to target .NET 11: - Directory.Build.props: net11.0, LangVersion 14 - ci.yml: dotnet-version 11.0.x (build, pack, pack-rid jobs) - publish.yml: dotnet-version 11.0.x (all 4 jobs) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.
New tool to generate
changes.jsonfor .NET releases by comparingsource-manifest.jsonbetween two refs indotnet/dotnet.New projects
Dotnet.Release.Changes— Schema types (ChangeRecords,ChangeEntry,CommitEntry,SourceManifest) with AOT-compatible serializer contextDotnet.Release.ChangesHandler—ManifestDiffer,ChangeCollector(GitHub compare API),ChangesGenerator,CveCrossReference,ProductMapperCLI command
Features
source-manifest.jsonvia local git clone (no network for manifest reads)--cve-repo(loadscve.jsonfromdotnet/corerelease-indexbranch, identifies security commits in range)dotnet/dotnet(10.0+ security model where fixes land directly in the VMR)--labelsfor agent-led categorization--jsonl(one repo per line for streaming/agent processing)Design
Follows the Cve/CveHandler pattern — schema types in one library, business logic in another. The tool is a complete, faithful data collector; it does not filter or categorize. Categorization is left to the consuming agent.
Designed for use in GitHub Agentic Workflows (
gh-aw) where an AI agent runs the tool and uses the structured output to draft release notes.Tested
dotnetrepoAlso
Directory.Build.propstonet11.0/LangVersion 14