|
| 1 | +# Release Process |
| 2 | + |
| 3 | +The following process is used when publishing new releases to NuGet.org: |
| 4 | + |
| 5 | +1. **Ensure the CI workflow is fully green** |
| 6 | + - Some of the integration tests are flaky and require re-running |
| 7 | + - Once the state of the branch is known to be good, a release can proceed |
| 8 | + - **The release workflow _does not_ run tests** |
| 9 | + |
| 10 | +2. **Create a new Release in GitHub** |
| 11 | + - Use the link on the repo home page to [Create a new release](https://github.com/modelcontextprotocol/csharp-sdk/releases/new) |
| 12 | + - Click the 'Choose a tag' dropdown button |
| 13 | + - Type the name using the `v{major}.{minor}.{patch}-{suffix}` pattern |
| 14 | + - Click 'Create new tag: ... on publish' |
| 15 | + - Click the 'Target' dropdown button |
| 16 | + - Choose the 'Recent Commits' tab |
| 17 | + - Select the commit to use for the release, ensuring it's one from above where CI is known to be green |
| 18 | + - Click the 'Previous tag' dropdown button |
| 19 | + - Choose the previous release to use for generating release notes |
| 20 | + - Click the 'Generate release notes button' |
| 21 | + - This will add release notes into the Release description |
| 22 | + - The generated release notes include what has changed and the list of new contributors |
| 23 | + - Verify the Release title |
| 24 | + - It will be populated to match the tag name to be created |
| 25 | + - This should be retained, using the release title format matching the `v{major}.{minor}.{patch}-{suffix}` format |
| 26 | + - Augment the Release description as desired |
| 27 | + - This content is presented used on GitHub and is not persisted into any artifacts |
| 28 | + - Check the 'Set as a pre-release' button under the release description if appropriate |
| 29 | + - Click 'Public release' |
| 30 | + |
| 31 | +3. **Monitor the Release workflow** |
| 32 | + - After publishing the release, a workflow will begin for producing the release's build artifacts and publishing the NuGet package to NuGet.org |
| 33 | + - If the job fails, troubleshoot and re-run the workflow as needed |
| 34 | + - Verify the package version becomes listed on at [https://nuget.org/packages/ModelContextProtocol](https://nuget.org/packages/ModelContextProtocol) |
| 35 | + |
| 36 | +4. **Update the source to increment the version number** |
| 37 | + - Immediately after publishing a new release, the [`/src/Directory.Build.Props`](../../src/Directory.Build.props) file needs to be updated to bump the version to the next expected release version |
0 commit comments