Skip to content

Contributing

Rowan Miller edited this page Jul 26, 2016 · 2 revisions

If you would like to contribute, consider these options:

  • Submit a bug report (for an 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!

Contributing Code

Make sure you can build the code (runtime, tools). Familiarize yourself with the project guidelines and our coding conventions. You might also read these two good 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 (using an issue) and ensure it follows the product roadmap. Note that all code submissions will be rigorously reviewed and tested by the Entity Framework 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 sign a Contributor License Agreement before submitting your pull request. To complete the Contributor License Agreement (CLA), you will need to submit a request via the form and then electronically sign the Contributor License Agreement when you receive the email containing the link to the document. This needs to only be done once for any Microsoft Open Technologies OSS project.

Then follow these steps:

  1. 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 such as:
  • Add a missing unit test.
  • Fix an FxCop issue.
  • Fix a defect in the issue list. Try something small first and work your way up to larger issues.
  1. Create a fork of the project.
  2. Clone the fork you created in the previous step to your machine.
  3. Make the relevant changes in your local clone (potentially adding a unit test if this is a bug fix).
  4. 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 (via an issue).
  5. Run build.cmd (if changing runtime code) or BuildEFTools.cmd (if changing tooling code) from the command line and make sure that there are 0 errors.
  6. 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.
  7. Pull from origin and merge your changes with the latest from origin (fix any merge conflicts you might have).
  8. If multiple local commits have been made, squash them into a single commit using git rebase -i.
  9. Push your changes up to your fork.
  10. Go to the Pull requests tab and send a pull request. Make sure the summary contains relevant bug numbers and a good description of your changes.
  11. If you need to revise your code, then do so locally and update the review. Repeat until we approve the review.
  12. 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.
Clone this wiki locally