Developer Setup

Quark now uses Qubole’s fork of incubator-calcite. Checkout calcite and install jars. The following code will install 1.5.0-qds-r6-SNAPSHOT

git clone git@github.com:qubole/incubator-calcite.git
cd incubator-calcite
git checkout qds-1.5
mvn install -DskipTests

Checkout and compile Quark

Make changes in incubator-calcite

You have to create a dev branch, change versions, develop and merge the changes once you are done.

git checkout -b dev_branch qds-1.5
change version to 1.5.0-qds-dev_branch in all pom.xml files. (We need to improve this)
change version in quark-calcite/pom.xml

Once you merge your changes back to qds-1.5, bump up the versions in all pom.xml files.

Release a new version of Quark

Releases are always created from master. During development, master has a version like X.Y.Z-SNAPSHOT.

To create a release, the version has to be changed, compile, deploy and bump the development version.

# Change version as per http://semver.org/
mvn versions:set -DnewVersion=X.Y.Z -DgenerateBackupPoms=false
git commit -m "Prepare release X.Y.Z" -a
git tag -a X.Y.Z -a "A useful comment here"
git push
git push --tags
# SSH to build machine if required
#Deploy to Maven Central
mvn deploy -P release
#Set new development version.
mvn versions:set -DnewVersion=X.Y.(Z+1)-SNAPSHOT -DgenerateBackupPoms=false
git commit -m "Set Development Version to X.Y.(Z+1)" -a