Update package READMEs as part of the release process#1683
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>
jeffhandley
left a comment
There was a problem hiding this comment.
@copilot In addition to the suggestions posted, please also update src/ModelContextProtocol.Extensions.Apps/ModelContextProtocol.Extensions.Apps.csproj to apply a <Description> of "MCP Apps extension for building interactive UI applications that render inside MCP hosts."
- readme-content.md: remove "four" count from shared README intro line - readme-snippets.md: shorten package-list note to two lines (drop enumerated names) - src/PACKAGE.md: update Extensions.Apps description - README.md: update Extensions.Apps description - ModelContextProtocol.Extensions.Apps.csproj: update Description element Co-authored-by: jeffhandley <1031940+jeffhandley@users.noreply.github.com>
Done in f0f1cb8 -- updated the |
jeffhandley
left a comment
There was a problem hiding this comment.
This addresses issues found in the 2.0.0-preview.1 package READMEs, and augments the process.
- We didn't add the MCP.Extensions.Apps package
- We were linking to the stable package versions for the badges
- We weren't linking to the release-notes from the package READMEs
- This integrates into the release process at the same stage as bumping the version
- It also integrates into the publishing stage for final pass validation over the content and sample code
This won't fix the 2.0.0-preview.1 READMEs that were published, but it gets the content updated and ready for 2.0.0-preview.2 to build on, illustrating where the changes will be applied going forward.
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.: