So, you want to help out with pgjdbc-ng development, great !
The pgjdbc-ng project welcomes any contributions that improves the project in one way or another; features, bug-fixes, documentation, test cases or whatever you can think of.
Clone the repository
git clone git@github.com:yourname/pgjdbc-ng.git
cd pgjdbc-ng
git remote add upstream git@github.com:impossibl/pgjdbc-ng.git
Feature branch
git checkout -b feature_develop develop
It is considered good practice to name your feature branch with a postfix that identifies the target branch.
Do development
Implement your feature and remember to run the test suite.
Do
git commit -a -m "My feature Part x"
along the way if you get to a point where it is nice to have a check point in the code.
Once you are done with your feature you need to ready your branch for a pull request.
Squash your commits into a single commit
git rebase -i HEAD~x
where 'x' is the number of commits you have done, and write a description of the feature as the commit message. You can use
gitk
to verify your branch history.
Next rebase against upstream
git fetch upstream
git rebase -i upstream/develop
and resolve any conflicts, and push your feature to your repository
git push origin feature_develop
Submit your pull request
Use GitHub's "Submit pull request" to submit.
Review
The committers of pgjdbc-ng will then review your pull request. People from the pgjdbc-ng community may jump in with feedback too.
If there are any comments on your pull request fix those, and submit those as a separate commit on your branch. You can use
git push -f origin feature_develop
to do so. Remember to rebase against upstream.
Merging of your pull request
Once the feature is ready to be merged into the main repository the committer will likely ask you to squash your commits again - if multiple exists.
This helps keeping the history linear, and makes it easier to backport your feature to other branches.
Time to Party
Once the feature has been merged to the main repository you can update your local copy
git checkout develop
git fetch upstream
git rebase -i upstream/develop
git push origin develop
and delete your remote and local feature branch
git push origin :feature_develop
git branch -d feature_develop
And it is time to party !