If you're a Pivotal employee and would like to contribute to PDLTools, this guide is for you. Following these step-by-step instructions you should be able to easily add your module to PDLTools.
- Since you may not have push access to the master repo, fork the base repo pivotalsoftware/PDLTools, into your own account on GitHub.
- Clone your forked repo into a VM. You can download the GPDB sandbox VM here: GPDB Sandbox. Make sure you create an account on PivNet. You can get the latest GPDB sandbox VMs by going directly to greenplum.org
- Create a branch to keep track of your contribution:
git checkout -b my_contribution
- Look at one of the more recent contributions such as kd-tree to get an idea of all the files you'll have to touch to include your contribution. You can also look at the sample_contribution_kl_divergence commit to get a high level idea of what a contribution entails. Your contribution should include unit tests to validate the functionalities in your module. Also ensure your contribution is well documented. You can navigate to the
$BUILD/doc/user/html/index.html
or$BUILD/doc/user/latex/refman.pdf
files in your local repo to check if the documentation for your contribution is appearing as expected on Doxygen docs. - Commit your changes to your branch (ex:
my_contribution
) on your GitHub account. - Submit a pull-request from the branch you created on your head fork (ex: vatsan/PDLTools) to the same branch on the basefork (pivotalsoftware/PDLTools).
- This will automatically trigger a Travis CI build. If your contribution had no errors, you should see something like the following on CI. The committers to PDLTools will see the following:
- The committers to pivotalsoftware/PDLTools will then merge your contribution to the base fork and voila, you should be able to see your contribution on PDLTools User Docs. When a release is eventually created off the main branch, the installers for that release will contain your module.
If you're a committer
on the basefork pivotalsoftware/PDLTools and would like to create a new release of PDLTools, these instructions are for you.
The .travis.yml file is already setup to instruct Travis-CI to automatically upload the relevant artifacts that were generated (ex: a tarball of the source, rpms/gppkgs, HTML docs, PDF docs etc.) to a releases branch on the basefork on GitHub. The set of all available releases can be viewed at PDLTools Releases. Currently (as of Mar-2016), Travis CI will only generate a tarball of the source. PDF doc generation, rpm generation & gppkg generation are TBD. While the generation of those artifacts is under construction, we encourage you to manually create them on your VM and attach them to the generated release.
When you are ready to create a new release of PDLTools, do the following:
- Create a branch for your release:
git checkout -b 1.6
- Update the relevant files like
$PDLTOOLS_HOME/src/config/Version.yml
and$PDLTOOLS_HOME/doc/changelog.dox.in
to indicate the latest release, commit your changes and push the new branch to the basefork. - Create a tag for the latest release. Travis-CI will use this to automatically upload the generated artifacts against this release:
git tag -a v1.6 -m '1.6 release'
,git push origin —tags
. - You should be able to see your release automatically at pivotalsoftware/PDLTools: releases. Feel free to edit it, annotate it, uploaded any other binaries which weren't generated automatically by Travis (ex: gppkg, PDF docs etc.) and let users know that the latest release is available for use.