Developing Avatica

Want to help add a feature or fix a bug?

Source code

You can get the source code by downloading a release or from source control.

Calcite uses git for version control. The canonical source is in Apache, but most people find the GitHub mirror more user-friendly.

Download source, build, and run tests

Prerequisites are Git, and Java (JDK 8 or later) on your path.

Create a local copy of the git repository, cd to its root directory, then build using maven:

$ git clone git://github.com/apache/calcite-avatica.git avatica
$ cd calcite-avatica
$ ./gradlew build

The HOWTO describes how to build from a source distribution, run more or fewer tests and run integration tests.

Contributing

We welcome contributions.

If you are planning to make a large contribution, talk to us first! It helps to agree on the general approach. Log a JIRA case for your proposed feature or start a discussion on the dev list.

Fork the github repository, and create a branch for your feature.

Develop your feature and test cases, and make sure that ./gradlew build succeeds. (Run extra tests if your change warrants it.)

Commit your change to your branch, and use a comment that starts with the JIRA case number, like this:

[CALCITE-345] AssertionError in RexToLixTranslator comparing to date literal

If your change had multiple commits, use git rebase -i main to squash them into a single commit, and to bring your code up to date with the latest on the main line.

Then push your commit(s) to github, and create a pull request from your branch to the calcite main branch. Update the JIRA case to reference your pull request, and a committer will review your changes.

Getting started

Calcite is a community, so the first step to joining the project is to introduce yourself. Join the developers list and send an email.

If you have the chance to attend a meetup, or meet members of the community at a conference, that’s also great.

Choose an initial task to work on. It should be something really simple, such as a bug fix or a Jira task that we have labeled “newbie”. Follow the contributing guidelines to get your change committed.

After you have made several useful contributions we may invite you to become a committer. We value all contributions that help to build a vibrant community, not just code. You can contribute by testing the code, helping verify a release, writing documentation or the web site, or just by answering questions on the list.