Contributing to MidoNet

Sandro Mathys edited this page Sep 3, 2015 · 15 revisions

There are many ways to contribute to MidoNet including

  • Working on documentation
  • Submitting bug reports
  • Benchmarking MidoNet on various platforms and sharing the results
  • Being an active user that voices opinions regarding new features and integrations
  • Fixing bugs or adding new features
  • Being an evangelist for MidoNet (speaking, writing blogs, etc)

We welcome anyone who is interested in making MidoNet the de facto open network virtualization platform for Infrastructure-as-a-Service clouds.

MidoNet Participation

Contributor License Agreement

Before contributing code or documentation to MidoNet, you must sign the MidoNet Contributor License Agreement (CLA). You must complete this form even if you are contributing on behalf of a company.

Mailing Lists and Chat (Slack)

Mailing lists and Slack chat channels are good ways to ask questions about MidoNet and to get to know others in the community.

Reporting or Fixing a Bug

One way to contribute is to find and report bugs in MidoNet. Another is to fix the reported bugs. Follow the bug guideline to report or fix a bug. Bugs that are relatively fast and easy to fix can be found under the label low hanging fruit.

Proposing a Feature

If you want to propose a new feature in MidoNet, follow the steps described in feature proposal guideline.

Contributing Code

Whether you are fixing a bug or implementing a new feature, read the developer's guide to learn about how to submit a code change.

Code approval process

First time contributors will need to create an account on the MidoNet Gerrit

  • use the same username you have on GitHub
  • upload your public SSH key
  • you will have access to view, comment on, vote +1/0/-1, and propose commits; access to cast +2/-2 votes on commits requires administrative intervention
  • install git-review
  • in your local checkout, add a "gerrit" remote: git remote add gerrit ssh://<username>@review.gerrithub.io:29418/midonet.git

When you have a commit you're ready to propose for review, run git review <branch> (<branch> will usually be master). This will upload your commit to Gerrit, making it available to reviewers. If the code review leads you to modify your proposed commit, you can make the changes locally and run git commit --amend (preserving the Change-Id tag) and then git-review will update the proposal instead of creating a new one.

Once your commit proposal has received 2 "+2" votes and no "-2" votes in at least 72 hours, it can be submitted to GitHub. The intention is to give Committer-level devs the power to approve (+2) or veto (-2) changes, while Contributor-level devs can make their opinions known with non-binding +1 or -1 votes.

Note we do not accept merge commits. If you have merges in your development branch, you'll have to git rebase or git cherry-pick to eliminate the merge commits before they'll be considered for review.

Master and Release Branches

Details on the branches and the workflow associated to the releases are available in this Release Workflow.

Reviewing Code

A good way to familiarize yourself with MidoNet code is to review the submitted changes. The code review process is explained in the developer's guide.

Helping with Documentation

You are welcome to contribute to the MidoNet documentation, by either opening a ticket or personally editing the sources. The documentation repository is publicly available on GitHub. The documentation is written in AsciiDoc format, which is similar to wiki markdown, so it is user friendly and easy to edit (see http://en.wikipedia.org/wiki/AsciiDoc for more information).

Similar to MidoNet code, to contribute to documentation you must sign the MidoNet Contributor License Agreement (CLA).

Community interaction guidelines

See our Code of Conduct.