Jump to: navigation, search

MagnetoDB/How To Contribute

Where can I discuss & propose changes?

  1. Our IRC channel: IRC server #magnetodb on irc.freenode.net;
  2. Openstack mailing list: openstack-dev@lists.openstack.org (see subscription and usage instructions);
  3. MagnetoDB team on Launchpad: Questions&Answers/Bugs/Blueprints.

How can I start?

It is extremetly simple to participate in different MagnetoDB development lines. MagnetoDB Launchpad page contains a wide range of tasks perfectly suited for you to start contributing to MagnetoDB. You can choose any unassigned bug or blueprint. As soon as you have chosen a bug, just assign it to you, and you can start fixing it. If you would like chose a blueprint, please contact core team at the #magnetodb IRC channel on irc.freenode.net.

The most bugs and blueprints contain basic descriptions of what is to be done there; in case you have questions or want to share your ideas, be sure to contact us in IRC.

How to contribute?

  1. First of all you need a Launchpad account. Make sure Launchpad has your SSH key, Gerrit (the code review system) uses this;
  2. Sign the Contributors License Agreement as outlined in section 3 of the How To Contribute wiki page;
  3. Tell git your details:

    git config --global user.name "Firstname Lastname"
    git config --global user.email "your_email@youremail.com"

  4. Install git-review. This tool takes a lot of the pain out of remembering commands to push code up to Gerrit for review and to pull it back down to edit it. It is installed using:

    pip install git-review

    NOTE: Several Linux distributions (notably Fedora 16 and Ubuntu 12.04) are also starting to include git-review in their repositories so it can also be installed using the standard package manager;
  5. Grab the MagnetoDB repository:

    git clone git@github.com:stackforge/magnetodb.git

  6. Checkout a new branch to hack on:

    git checkout -b TOPIC-BRANCH

  7. Start coding;
  8. Run the test suite locally to make sure nothing broke, e.g.:

    ./run_tests.sh

    or you can use tox test command line tool (install it with pip install tox).
    NOTE: If you extend MagnetoDB with new functionality, make sure you also have provided unit tests for it;
  9. Commit your work using:

    git commit -a

    or you can use the following to edit a previous commit:

    git commit -a --amend

    NOTE: Make sure you have supplied your commit with a neat commit message, containing a link to the corresponding blueprint/bug, if appropriate;
  10. Push the commit up for code review using:

    git review

    That is the awesome tool you installed earlier that does a lot of hard work for you;
  11. Watch your email or review site, it will automatically send your code for a battery of tests on our Jenkins setup and the core team for the project will review your code. If there is any changes that should be made they will let you know;
  12. When all is good the review site will automatically merge your code.

(This tutorial is based on: http://www.linuxjedi.co.uk/2012/03/real-way-to-start-hacking-on-openstack.html)