Update package READMEs as part of the release process (#1683)

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jeffhandley <1031940+jeffhandley@users.noreply.github.com>
This commit is contained in:
Copilot 2026-07-07 15:13:32 -04:00 • committed by GitHub
commit 1214556707
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 152 additions and 26 deletions

View file

@ -0,0 +1,94 @@
# README Content Checklist
This reference describes what to review and update in the shared embedded NuGet README
(`src/PACKAGE.md`) and the root repository README (`README.md`) as part of every release.
## The Shared Embedded README
All SDK packages embed the **same** README file: `src/PACKAGE.md`.
Each project packs it identically:
```xml
<None Include="..\PACKAGE.md" Pack="true" PackagePath="\README.md" />
<PackageReadmeFile>README.md</PackageReadmeFile>
```
Updating `src/PACKAGE.md` updates every package's nuget.org README at once.
There are no per-package README files; `src/ModelContextProtocol.Core/README.md` and
similar paths do not exist.
## Checklist
### 1. Package-list closure
Every shipping SDK package must be listed in the packages section of `src/PACKAGE.md`,
including packages introduced after the initial SDK launch and including the package
being viewed in its own embedded README on nuget.org.
Current packages to list:
- `ModelContextProtocol.Core`
- `ModelContextProtocol`
- `ModelContextProtocol.AspNetCore`
- `ModelContextProtocol.Extensions.Apps`
Avoid counting phrases such as "three main packages" -- they become stale when packages
are added. Use a non-counting closure such as "The SDK packages are:" instead.
When a new package is introduced, add it to the list in both `src/PACKAGE.md` and the
root `README.md` (see section below).
### 2. Badge strategy
Each package entry carries a nuget.org version badge. The correct badge endpoint depends
on the release type:
| Release type | Badge endpoint | Example |
|---|---|---|
| Prerelease series (e.g., `2.0.0-preview.*`) | `nuget/vpre/{package}` | `https://img.shields.io/nuget/vpre/ModelContextProtocol.svg` |
| Stable release | `nuget/v/{package}` | `https://img.shields.io/nuget/v/ModelContextProtocol.svg` |
`nuget/v` renders only the latest stable version and shows nothing (or a placeholder)
during a prerelease-only series. `nuget/vpre` renders the latest version including
prereleases. Switch all package badges together when the release type changes.
Verify every badge in `src/PACKAGE.md` uses the correct endpoint for this release.
### 3. Release-notes link
`src/PACKAGE.md` must contain one statement linking to the release notes for the
current version:
```markdown
See the [release notes](https://github.com/modelcontextprotocol/csharp-sdk/releases/tag/v{version})
for what's new in this version.
```
Replace `{version}` with the exact version being released, including any prerelease
suffix (e.g., `2.0.0-preview.2`).
At prepare time the tag does not yet exist; the link is forward-referencing. The link
resolves once the GitHub release is published during the publish-release step.
Update this link for every release -- it must point to the tag being created, not a
prior release.
### 4. Root README.md sync
The root `README.md` (the GitHub repo readme, NOT packed into packages) has its own
package-list section. Keep it aligned with `src/PACKAGE.md`:
- Same set of packages listed
- Same non-counting closure phrasing
- Badge strategy in `README.md` may also be updated for consistency, but the root
README is visible on GitHub (not nuget.org) so the badge choice is less critical
## Salient content to review
Beyond the structural checks above, read the current `src/PACKAGE.md` for any content
that has become stale due to changes in this release:
- Package descriptions (are they still accurate?)
- Getting-started links (do they resolve and describe the current API?)
- Code samples, if any (do they compile against the current SDK? see
[readme-snippets.md](readme-snippets.md))
- Any version-specific notes from a prior release that should be removed or updated

View file

@ -4,19 +4,21 @@ This reference describes how to validate that C# code samples in README files co
## Which READMEs to Validate
Validate code samples from the **package README** files — these are shipped with NuGet packages and are the primary documentation users see:
Validate code samples from the **package README** and the root repository README:
| README | Package |
|--------|---------|
| `README.md` (root) | ModelContextProtocol |
| `src/ModelContextProtocol.Core/README.md` | ModelContextProtocol.Core |
| `src/ModelContextProtocol.AspNetCore/README.md` | ModelContextProtocol.AspNetCore |
| README | Notes |
|--------|-------|
| `src/PACKAGE.md` | The single shared embedded README packed into every SDK package. This is the primary documentation users see on nuget.org. |
| `README.md` (root) | The GitHub repository readme. Not packed into packages, but visible to developers browsing the repo. |
Sample README files (`samples/*/README.md`) are excluded — the samples themselves are buildable projects and are validated by CI.
All SDK packages embed `src/PACKAGE.md` via their `.csproj` files. There are no per-package
README files; paths such as `src/ModelContextProtocol.Core/README.md` do not exist.
Sample README files (`samples/*/README.md`) are excluded -- the samples themselves are buildable projects and are validated by CI.
## What to Extract
Extract only fenced code blocks tagged as `csharp` (` ```csharp `). Skip blocks tagged as plain ` ``` ` (shell commands, install instructions) or any other language.
Extract only fenced code blocks tagged as `csharp` (` ```csharp `) from `src/PACKAGE.md` and `README.md`. Skip blocks tagged as plain ` ``` ` (shell commands, install instructions) or any other language.
### Handling Incomplete Snippets