You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

 

This guide gives the way to contribute to Apache HAWQ. Contributing to HAWQ includes not only writing some code, it also includes helping new users on mailing list, testing releases and document improvement.

HAWQ Repositories

Branching 

The Gitflow branching model is used. Please reference the following links for details:

HAWQ issue tracking

HAWQ uses Jira for issue tracking. All changes are discussed and reviewed in Jira before commit.

Coding conventions

HAWQ follows the coding conventions of postgresql: http://www.postgresql.org/docs/9.1/static/source.html

Contribution process (for contributors)

The overall contribution process is to fork a repo from the github mirror repo, and work on the forked repo for any changes. Do code review by creating pull requests.

  • Fork the apache github mirror incubator-hawq repo; you will work on your own repo for new features or bug fixes

  • Clone your own repository to local
           # git clone https://github.com/changleicn/incubator-hawq
  • Add the apache github mirror as “upstream”

           # git remote add upstream https://github.com/apache/incubator-hawq.git

  • Fetch “upstream” repository

           # git fetch upstream

  •  (optional) Add local master branch

          # git checkout origin/master -b master

  •  Create a feature branch “feature-awesome” to work on

          # git checkout -b feature-awesome develop

  •  Make changes and commit to local. Please format commit message as follows and feel free to add additional comments.
    <jira ticket number>. <Commit Message>
    Example: HAWQ-1002. Add awesome feature 

  • Push it to your github repo
    # git push --set-upstream origin feature-awesome (or git push origin feature-hawq-123)

  • Now you can create pull requests on github for code review.

Code review

We expect that pull requests which have been submitted on github will be reviewed by committers, but will be visible to the community for comment as well. Contributor should learn the code review criteria in order to make the changes accepted.

 Code review criteria

  • Features should have a lot of potential use cases and benefit a lot of users

  • Fixes should fix the root cause of the problem
  • Easily tested and have tests
  • Changes have been discussed on JIRA
  • Code follows the coding conventions
  • Do not introduce potential performance regressions

Commit process (for committers) 

The overall commit process it to review the pull request. If the change passes code review, get the patch and commit it to Apache git repo.

  •  Clone the apache repository
    # git clone https://git-wip-us.apache.org/repos/asf/incubator-hawq.git

  • Add remote github mirror repository
    # git remote add github https://github.com/apache/incubator-hawq.git


  • Get the pull request
    # git fetch github pull/2/head:feature_awesome


  • Checkout develop branch
    # git checkout develop


  • Merge the patch
    # git merge feature_awesome


  • Run unit tests (more in future before committing to “develop” branch)
     # make installcheck_good


  • Push to apache repo (note: all commits needs an Apache JIRA)
    # git push origin


  • Delete the feature branch
    # git branch -d feature_awesome




  • No labels