Ways to Contribute
If you would like to contribute, consider these options:
- Submit a bug report (for a guide on submitting good bug reports, read
Painless Bug Tracking).
- Verify fixes for bugs.
- Submit a code fix for a bug.
- Submit a feature request.
- Help answer questions in the discussions list.
- Submit a unit test.
- Tell others about the project.
- Tell the developers how much you appreciate the product!
Note: ASP.NET MVC, Web API and Web Pages are currently driving to a final release candidate, and as such we are not adding new features at this time and are instead focusing on stabilization. We will open a new source branch to add new
features for the vnext release after the release candidate ships.
Make sure you can build the code. Familiarize yourself with the
project guidelines and our
coding conventions. You might also read these two blogs posts on contributing code:
Open Source Contribution Etiquette by Miguel de Icaza and
Don’t “Push” Your Pull Requests by Ilya Grigorik.
Before submitting a feature or substantial code contribution please
discuss it with the team and ensure it follows the product roadmap. Note that all code submissions will be rigorously reviewed and tested by the ASP.NET Team, and only those that meet an extremely high bar for both quality and design/roadmap appropriateness
will be merged into the source.
You will need to submit a
Contributor License Agreement form before submitting your pull request. This needs to only be done once for any Microsoft OSS project. Download the Contributor License Agreement (CLA). Please fill in, sign, scan and email it email@example.com.
Then follow these steps:
- Decide what feature or bug fix you plan to take on and start a discussion with the title of the bug so we know someone is already working on it. e.g. "I'm going to fix issue 59: Something's Broken." If you're just starting out, pick something small to fix
- Add a missing unit test.
- Fix an FxCop issue.
- Search for a // TODO comment in the code and address one.
- Fix a defect in the issue list (do a search for “UpForGrabs” or just find one with the “Proposed” status). Try something small first and work
your way up to larger issues.
- Create a fork of the project.
- Clone the fork you created in the previous step to your machine.
- Make the relevant changes in your local clone (potentially adding a unit test if this is a bug fix).
- Please only contribute code which you wrote or have the rights to contribute. If you do need to add 3rd party code please discuss it with us first.
- Run build.cmd from the command line and make sure that there are 0 errors.
Note:; Before building you may need to obtain
NuGet packages from the OuterCurve Foundation NuGet public feed*.
- Commit your changes in your local clone. You may end up repeating steps 4-6 multiple times as you work. When you are finished and ready to have us accept your change, go to step 8.
- Pull from Main and merge your changes with the latest from Main (fix any merge conflicts you might have).
- Push your changes up to your fork.
- Go to the
source control tab and send a pull request. Make sure the summary contains relevant bug numbers and a good description of your changes.
- If you need to revise your code, then do so locally and update the review. Repeat until we approve the review.
- Wait for your review to be approved. We'll try to get to it as soon as possible. Once the review is approved, someone from the team will push your changes to the main source repository. Then you can delete your fork.
*By running build RestorePackages, you will be initiating the download of other software from a NuGet-based feed that is owned by the Outercurve Foundation. You are responsible for locating, reading and complying with the license terms that accompany
each such software. Each software that you obtain through this feed is licensed to you by its respective owner. We grant you no rights for third party software from this feed.