-
Notifications
You must be signed in to change notification settings - Fork 696
Release v1.1.0 #1411
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
jeffhandley
merged 6 commits into
modelcontextprotocol:main
from
jeffhandley:release-1.1.0
Mar 6, 2026
Merged
Release v1.1.0 #1411
Changes from 5 commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
bbd6f44
Restructure release skills and update API diff tooling
jeffhandley 53dad39
Update breaking change classification and SemVer assessment for exper…
jeffhandley ce44ce6
Bump version to 1.1.0
jeffhandley f64e69f
Update copyright to Model Context Protocol a Series of LF Projects, LLC.
jeffhandley 12d2cde
Update package readme references
jeffhandley bd7bcd9
Simplify SemVer assessment: remove prerelease material, streamline cr…
jeffhandley File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
126 changes: 126 additions & 0 deletions
126
.github/skills/bump-version/references/semver-assessment.md
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,126 @@ | ||
| # Semantic Versioning Assessment Guide | ||
|
|
||
| This reference describes how to assess the appropriate [Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0.html) (SemVer) release level for the C# MCP SDK based on the changes queued since the previous release. | ||
|
|
||
| ## SemVer Summary | ||
|
|
||
| The SDK follows SemVer 2.0.0 as documented in the [C# SDK Versioning](https://modelcontextprotocol.github.io/csharp-sdk/versioning.html) documentation. Given a version `MAJOR.MINOR.PATCH`: | ||
|
|
||
| - **MAJOR**: Increment when incompatible API changes are included | ||
| - **MINOR**: Increment when functionality is added in a backward-compatible manner | ||
| - **PATCH**: Increment when only backward-compatible bug fixes are included | ||
|
|
||
| When incrementing: | ||
| - MAJOR resets MINOR and PATCH to 0 (e.g., `1.2.3` → `2.0.0`) | ||
| - MINOR resets PATCH to 0 (e.g., `1.2.3` → `1.3.0`) | ||
| - PATCH increments only the PATCH component (e.g., `1.2.3` → `1.2.4`) | ||
|
|
||
| ## Assessment Criteria | ||
|
|
||
| Evaluate every PR in the release range against these criteria, ordered from highest to lowest precedence. | ||
|
|
||
| ### MAJOR — Incompatible API Changes | ||
|
|
||
| Recommend a MAJOR version increment if **any** of the following are present: | ||
|
|
||
| - Confirmed breaking changes from the breaking change audit (API or behavioral) | ||
| - Removal of public types, members, or interfaces | ||
| - Changes to parameter types, order, or count on public methods | ||
| - Return type changes on public methods or properties | ||
| - Sealing of previously unsealed types (with accessible constructors) | ||
| - Escalation of `[Obsolete]` from warning to error | ||
| - Removal of previously obsolete APIs | ||
|
|
||
| **Exception — Experimental APIs**: Changes to APIs annotated with `[Experimental]` do not require a MAJOR increment, even if they would otherwise be considered breaking. This includes changes that only affect consumers who have opted into an `[Experimental]` code path — for example, adding an abstract member to a public abstract class whose only accessible constructor is `[Experimental]`. If every path to the breaking impact requires suppressing an experimental diagnostic, the change is not considered breaking for versioning purposes. Note these changes but classify the release level based on the non-experimental changes. | ||
|
|
||
| ### MINOR — Backward-Compatible New Functionality | ||
|
|
||
| Recommend a MINOR version increment if no MAJOR criteria are met but **any** of the following are present: | ||
|
|
||
| - New public types, methods, properties, or events | ||
| - New overloads or extension methods | ||
|
jeffhandley marked this conversation as resolved.
Outdated
|
||
| - New configuration options or parameters with default values | ||
| - New MCP capabilities or protocol features | ||
| - Addition of `[Obsolete]` attributes producing build warnings (step 1 of obsoletion lifecycle) | ||
| - Addition of `[Experimental]` attributes on new APIs | ||
| - New interfaces implemented by existing types | ||
| - Performance improvements that introduce new API surface | ||
|
jeffhandley marked this conversation as resolved.
Outdated
|
||
| - Changes to `[Experimental]` APIs (regardless of whether they would be breaking outside the experimental surface) | ||
|
|
||
| ### PATCH — Backward-Compatible Bug Fixes Only | ||
|
|
||
| Recommend a PATCH version increment if no MAJOR or MINOR criteria are met. PATCH-level changes include: | ||
|
|
||
| - Bug fixes that correct incorrect behavior | ||
| - Spec compliance corrections | ||
| - Security fixes | ||
| - Performance improvements with no API surface changes | ||
| - Documentation changes (XML doc comments shipped in packages) | ||
| - Test-only changes (no impact on shipped packages) | ||
| - Infrastructure-only changes (CI, build system, dependencies) | ||
|
jeffhandley marked this conversation as resolved.
Outdated
|
||
|
|
||
| **Note**: Releases that contain _only_ documentation, test, or infrastructure changes may not warrant a release at all. Flag this to the user if no shipped-package changes are present. | ||
|
|
||
| ## Computing the Recommended Version | ||
|
|
||
| 1. Parse the previous release tag to extract `MAJOR.MINOR.PATCH` and any pre-release suffix. | ||
| 2. Apply the assessed level: | ||
| - MAJOR: `(MAJOR+1).0.0` | ||
| - MINOR: `MAJOR.(MINOR+1).0` | ||
| - PATCH: `MAJOR.MINOR.(PATCH+1)` | ||
| 3. If the previous release had a pre-release suffix, carry the same suffix pattern forward (e.g., `-preview.1`). | ||
|
|
||
| **Examples** from previous release `v1.2.0`: | ||
|
|
||
| | Level | Recommended | | ||
| |-------|-------------| | ||
| | PATCH | `v1.2.1` | | ||
| | MINOR | `v1.3.0` | | ||
| | MAJOR | `v2.0.0` | | ||
|
|
||
| **Examples** from previous release `v1.0.0-preview.1`: | ||
|
|
||
| | Level | Recommended | | ||
| |-------|-------------| | ||
| | PATCH | `v1.0.1-preview.1` | | ||
| | MINOR | `v1.1.0-preview.1` | | ||
| | MAJOR | `v2.0.0-preview.1` | | ||
|
jeffhandley marked this conversation as resolved.
Outdated
|
||
|
|
||
| ## Comparing Against the Candidate Version | ||
|
|
||
| After computing the recommended version: | ||
|
|
||
| 1. Compare it against the candidate version (from `src/Directory.Build.props` or an existing draft release tag). | ||
| 2. Present one of three outcomes: | ||
| - **Match**: The candidate aligns with the assessment. Proceed with confidence. | ||
| - **Under-versioned**: The candidate uses a lower increment level than the changes warrant (e.g., candidate is `1.2.1` but changes include new APIs requiring `1.3.0`). Flag this as a concern — the version should be corrected. | ||
| - **Over-versioned**: The candidate uses a higher increment level than strictly required (e.g., candidate is `2.0.0` but no breaking changes). This is permitted by SemVer but worth noting for the user's awareness. | ||
|
|
||
| ## Presentation Format | ||
|
|
||
| Present the assessment as a summary table followed by a rationale: | ||
|
|
||
| ``` | ||
| ### Version Assessment | ||
|
|
||
| | Aspect | Finding | | ||
| |--------|---------| | ||
| | Previous release | v1.0.0 | | ||
| | Breaking changes | None confirmed | | ||
| | New API surface | Yes — 3 PRs add new public APIs | | ||
| | Bug fixes | Yes — 2 PRs fix runtime behavior | | ||
| | Recommended level | **MINOR** | | ||
| | Recommended version | `v1.1.0` | | ||
| | Candidate version | `1.1.0` ✅ matches | | ||
|
|
||
| **Rationale**: Three PRs introduce new public API surface (#101, #105, #112) | ||
| including new extension methods and configuration options. No confirmed breaking | ||
| changes. The candidate version in Directory.Build.props aligns with the MINOR | ||
| assessment. | ||
| ``` | ||
|
|
||
| When the candidate does not match, flag the discrepancy: | ||
|
|
||
| ``` | ||
| | Candidate version | `1.0.1` ⚠️ under-versioned (PATCH < MINOR) | | ||
| ``` | ||
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.