Update package READMEs as part of the release process#1683
Draft
Copilot wants to merge 2 commits into
Draft
Conversation
- Add readme-content.md reference: package-list closure, badge strategy, release-notes link, root README sync checklist - Fix stale readme-snippets.md table: replace non-existent per-package README paths with the actual src/PACKAGE.md shared file - Expand prepare-release Step 9 to run content checklist + snippet validation, with edge cases for new packages and forward-referencing release-notes links - Broaden publish-release Step 5 to full README review with final suggestions and edge cases for stale closure, wrong badge style, missing release link - Note embedded README updates in release-process.md prepare and publish sections - src/PACKAGE.md: add Extensions.Apps, non-counting closure, vpre badges, release-notes link for v2.0.0-preview.1 - README.md: mirror package-list closure change Co-authored-by: jeffhandley <1031940+jeffhandley@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Update package READMEs as part of the release process
Update package READMEs as part of the release process
Jun 30, 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.
The release skills and process docs had no step to keep the shared NuGet embedded README (
src/PACKAGE.md) current -- no package-list closure enforcement, no badge strategy, no release-notes link. The existing snippet-validation reference also pointed to per-package README paths that don't exist.Reference docs
prepare-release/references/readme-content.md-- maintenance checklist covering: single-shared-file invariant, package-list closure (non-counting phrasing), badge strategy (nuget/vpreduring prerelease /nuget/vfor stable), release-notes link pattern, and rootREADME.mdsync.prepare-release/references/readme-snippets.md-- replaced stale "Which READMEs to Validate" table (src/ModelContextProtocol.Core/README.md,src/ModelContextProtocol.AspNetCore/README.md-- neither exists) with the actualsrc/PACKAGE.md.Skill updates
prepare-releaseStep 9 -- expanded to run both the content checklist (closure, badges, release-notes link, root sync) and snippet validation. Added edge cases: new package introduced, release type change, forward-referencing release-notes link.publish-releaseStep 5 -- broadened from snippet-only to a full README review pass with final suggestions before the release is created. Added edge cases: stale closure, wrong badge style, missing/incorrect release-notes link.Process docs
release-process.md-- notes the README update work in both the prepare and publish sections.Live illustrative fix to
src/PACKAGE.mdModelContextProtocol.Extensions.Appsto the package list (was omitted, including from its own embedded README on nuget.org).nuget/vtonuget/vpre--nuget/vrenders nothing during a prerelease-only series.https://github.com/modelcontextprotocol/csharp-sdk/releases/tag/v2.0.0-preview.1.Root
README.mdmirrors the package-list closure change (Extensions.Apps added, non-counting phrasing); its badges remainnuget/vsince that view is GitHub, not nuget.org.Original prompt
Task: Keep NuGet embedded package READMEs current as part of the release process
Goal
The release process (
.github/release-process.md) and theprepare-release/publish-releaseskills are missing a step to refresh the NuGet embeddedREADME for each release. Add that step to the skills + process docs, fix a stale
reference doc, and apply an illustrative fix to the live shared README.
Make all changes on a new branch and open a pull request against
maintitledUpdate package READMEs as part of the release process.Essential codebase facts (verify before editing)
src/PACKAGE.md. Eachcsproj packs it via
<None Include="..\PACKAGE.md" Pack="true" PackagePath="\README.md" />with
<PackageReadmeFile>README.md</PackageReadmeFile>. Updatingsrc/PACKAGE.mdupdates every package's nuget.org README at once. The four packages are:
ModelContextProtocol.Core,ModelContextProtocol,ModelContextProtocol.AspNetCore, andModelContextProtocol.Extensions.Apps.src/PACKAGE.mdcurrently says "This SDK consists of three main packages" andlists only Core / ModelContextProtocol / AspNetCore — it omits
ModelContextProtocol.Extensions.Apps(including not listing itself in its ownembedded README on nuget.org).
src/PACKAGE.mduse shields.ionuget/v/...which always render thelatest stable version (currently 1.4.0), not the prerelease series the current
packages belong to.
README.md(the GitHub repo readme; NOT packed into packages) carriesthe same "three main packages" closure and should be kept in sync.
.github/skills/prepare-release/references/readme-snippets.mdis stale: its"Which READMEs to Validate" table lists
src/ModelContextProtocol.Core/README.mdand
src/ModelContextProtocol.AspNetCore/README.md, which DO NOT EXIST. The onlypacked README is
src/PACKAGE.md.src/Directory.Build.props:<VersionPrefix>2.0.0</VersionPrefix><VersionSuffix>preview.1</VersionSuffix>→2.0.0-preview.1.Confirmed decisions
nuget/vprebadges(latest including prereleases); for stable releases use
nuget/v. Document both.src/PACKAGE.mdlinking tohttps://github.com/modelcontextprotocol/csharp-sdk/releases/tag/v{version}(thesame link for all packages, since the README is shared). The tag will not exist at
prepare time but resolves by publish time.
src/PACKAGE.mdnow, illustratively. The PR description MUST statethat this change does NOT affect the already-published
2.0.0-preview.1package; itillustrates what the README updates will look like for
2.0.0-preview.2+.readme-snippets.mdreference to targetsrc/PACKAGE.md.Changes to make
1. New reference:
.github/skills/prepare-release/references/readme-content.mdCreate a maintenance checklist for the shared embedded README covering:
src/PACKAGE.mdinvariant (one file → every package README).newly introduced package, and including the package in its own README). Reword the
"three main packages" phrasing into a non-counting closure so adding a package
doesn't leave a stale count.
nuget/vpreduring a prerelease series,nuget/vfor stable;apply consistently to all package badges.
https://github.com/modelcontextprotocol/csharp-sdk/releases/tag/v{version}.README.mdsync: keep the repo readme's package-list closure aligned.2. Fix
.github/skills/prepare-release/references/readme-snippets.mdReplace the stale "Which READMEs to Validate" table (Core/AspNetCore per-package
READMEs that do not exist) with the actual packed file
src/PACKAGE.md. Update the"What to Extract" / source-file guidance so snippet validation extracts from
src/PACKAGE.md(and the rootREADME.mdif relevant). Keep the rest of thevalidation procedure intact.
3. Update
.github/skills/prepare-release/SKILL.mdIn Step 9 ("Review and Update Documentation"), sub-step 1 ("NuGet package READMEs"):
require BOTH (a) the existing snippet validation AND (b) running the README-content
checklist from the new
references/readme-content.md— verify package closure, applythe prerelease/stable badge strategy, and add/update the release-notes link for
v{version}. Reference the new doc. Add Edge Cases entries, e.g.: