Skip to content

Contribution Guide

Rahul Iyer edited this page · 32 revisions

Before You Start:

Step 1: Make friends with GitHub

  • Create an account on
  • Get a git client from
  • If you are not familiar with this version control software follow bootcamp guides on to gain some confidence.

Step 2: Find your task

  • Create an account on MADlib JIRA and review the open issues (new module, feature request or bug fix).
  • Check again the Module Development Status page.
  • Get in touch with us on MADlib Dev Forum
    • Tell us what you'd like to work on OR,
    • We can discuss the most pressing needs and suggest a task.
  • Once we have a consensus we'll open a JIRA ticket (bug, task, or new feature) to track the progress and update the Dev Status on Wiki.

Step 3: Fork MADlib® project

  • Go to GitHub MADlib repo and fork the project using the FORK button (top right).
    • This step will create a "tracked" copy of madlib/madlib repo under yourGitHubAccount/madlib.
    • Need some help with forking? Check here

Step 4: Develop away...

by using your own copy/fork of the MADlib repository.

Make sure you have all the module components in place: MADlib Module Anatomy

And remember about:

Step 5: Send pull-request

Done with coding? Follow this to get your code checked-in:

  • Test build/install/execution on your side.
  • Create a pull-request from your forked repository.
    • Use different topic branches to separate your commits into few pull-requests.
    • If this sounds like Greek: read more about pull-requests here:
    • Use an informative commit message, example:
      • [Line 1] Module Name: Main purpose in short
      • [Line 2] (blank)
      • [Line 3] Jira: MADLIB-12345
      • [Line 4+] Description
  • Update the corresponding MADlib JIRA ticket
    • Mark the issue "For Review"
    • Add a comment pointing to your pull request.
    • If you know who would be the best reviewer assigne the JIRA to that person. Otherwise don't worry.
  • Code comments are easy to add on Github. JIRA better serves as a high level log tracker.
  • Once the code is merged:
    • Github pull request closes automagically
    • JIRA must be resolved manually, this will be done by the Committer who merges the pull request.

Step 6: Testing

Once the code is developed all work is not yet done. A functional test suite must be developed and added to the testsuite repository to ensure that automated test cases are run regularly.

  • A Tester will review Resolved issues and work with the Developer to put together a test plan.
  • The test plan will be implemented and integrated into the testsuite github fork.
  • Once all tests are passing and the issue has been verified the Tester will transition the Jira from Resolved to Closed.
Something went wrong with that request. Please try again.