Welcome, Contributor!

Thank you for your interest in contributing to the .NET ecosystem. Your contributions, whether code, documentation, bug reports, or feedback, are invaluable in making .NET the best cross-platform, open-source platform for developers everywhere.

This guide outlines the process for contributing to the .NET projects hosted by Microsoft, including the .NET runtime, SDK, libraries, and many related projects. We aim to make the contribution process as clear and welcoming as possible.

Getting Started

Before you dive in, here are a few essential steps:

  1. Familiarize yourself with the .NET project: Explore the .NET Runtime repository and other relevant repositories on GitHub. Understand the project's goals and current direction.
  2. Read the Code of Conduct: We are committed to fostering an open and welcoming community. Please review our Code of Conduct to understand the expected standards of behavior.
  3. Set up your development environment: Ensure you have the necessary tools installed, such as the .NET SDK, Git, and your preferred IDE. Detailed instructions can be found in the README of each project.

How to Contribute

There are several ways you can contribute:

  • Reporting Bugs: If you find a bug, please report it in the appropriate GitHub repository's 'Issues' section. Provide a clear title, detailed steps to reproduce the issue, expected behavior, and actual behavior. Including environment details (OS, .NET version) is also helpful.
  • Suggesting Features: For new feature ideas, we encourage you to open an 'Issue' to discuss your proposal with the community and maintainers. This helps ensure alignment and gathers feedback early on.
  • Submitting Code Changes:
    • Fork the repository: Create your own copy of the repository.
    • Create a new branch: Make your changes in a dedicated branch.
    • Write your code: Follow the coding style and conventions of the project.
    • Write tests: Ensure your changes are well-tested.
    • Commit your changes: Write clear and concise commit messages.
    • Submit a Pull Request (PR): Open a PR from your fork to the main repository. Describe your changes thoroughly.
  • Improving Documentation: Clear and accurate documentation is crucial. If you find errors, omissions, or areas that could be clearer, please submit a PR to improve them.

Pull Request Process

Once you submit a Pull Request, it will be reviewed by project maintainers. We aim to provide constructive feedback in a timely manner. Please be patient, and respond to feedback by making necessary adjustments to your PR.

Key steps in the PR process:

  • CI Checks: Automated checks will run to ensure code quality and test coverage.
  • Code Review: Maintainers and other community members will review your code for correctness, style, and adherence to project standards.
  • Discussion: Engage in the discussion on your PR to address feedback and clarify your changes.
  • Merging: Once approved, your PR will be merged into the main branch.

Finding Something to Work On

Looking for a way to get started? Here are some good places to look:

  • Good First Issue: Many projects tag issues suitable for newcomers with labels like 'good first issue' or 'help wanted'.
  • Bug Triage: Help us by verifying bug reports and ensuring they are reproducible.
  • Documentation: Look for areas where documentation could be improved or expanded.

We appreciate every contribution, no matter how small. Let's build amazing things together!

Explore .NET on GitHub