Skip to content

Conversation

@maxisbey
Copy link
Contributor

@maxisbey maxisbey commented Dec 9, 2025

Adds a "Before You Start" section to CONTRIBUTING.md that sets clear expectations for contributors about when to open an issue before submitting a PR.

Motivation and Context

Currently, we occasionally receive large unsolicited PRs (e.g., major refactoring, new architectural patterns) without prior discussion. This creates awkward situations where we have to close well-intentioned contributions because they don't align with the SDK's direction. Having clear policy in CONTRIBUTING.md gives us something to reference and sets expectations upfront.

This is inspired by how Ruff and other major open source projects handle this.

How Has This Been Tested?

N/A - documentation only change. Verified that the issue filter links work correctly.

Breaking Changes

None.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

The new section covers:

  • Bug fixes: Welcome to PR directly for straightforward bugs
  • New features/enhancements: Please open an issue first to discuss
  • What counts as "significant": New APIs, architectural changes, multi-module changes, spec-level features
  • Good candidates: Points to good first issue, help wanted, and ready for work labels
  • Not good candidates: Issues labeled needs confirmation or needs maintainer action

Adds a "Before You Start" section to CONTRIBUTING.md that:
- Encourages opening issues before significant PRs
- Defines what counts as "significant" changes
- Points contributors to well-labeled issues
- Warns against working on issues needing maintainer input

This gives maintainers clear policy to reference when closing
unsolicited large PRs that weren't previously discussed.
CONTRIBUTING.md Outdated

### Good Candidates for Contribution

Issues labeled [`good first issue`](https://github.com/modelcontextprotocol/python-sdk/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) or [`help wanted`](https://github.com/modelcontextprotocol/python-sdk/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) are great places to start. Issues labeled [`ready for work`](https://github.com/modelcontextprotocol/python-sdk/issues?q=is%3Aopen+is%3Aissue+label%3A%22ready+for+work%22) have been triaged and are ready for implementation.
Copy link
Contributor

@felixweinberger felixweinberger Dec 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we have a help wanted label right now? I don't think we do, should probably create one

We should also do a sweep of issues labelled "good first issue" whether we still agree with that assessment based on this guidance before we ship this

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea fully agree on both

- Require issues for all PRs (except trivial fixes like typos)
- Add requirement to wait for maintainer buy-in before starting work
- Add "SDK is opinionated" section for maintainer discretion
- Restructure with clearer "What Needs Discussion" section
- Add welcoming opening to balance strict rules
@maxisbey maxisbey marked this pull request as ready for review December 11, 2025 11:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants