Skip to content
cwelton edited this page May 22, 2012 · 32 revisions

Before You Start:

Step 1: Make friends with GitHub

  • Create an account on GitHub.com.
  • Get a git client from git-scm.com.
  • If you are not familiar with this version control software follow bootcamp guides on help.github.com 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 "connected" 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: http://help.github.com/send-pull-requests/.
    • Use an informative commit message, example:
      • [Line 1] Module Name: Main purpose in short
      • [Line 2] (blank)
      • [Line 3+] 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 closed manually, this will be done by the Committer who merges the pull request.