To file issues, please use the Calcite JIRA and select avatica-go
as the component.
To update the procotol buffer definitions, update AVATICA_VER
in gen-protobuf.bat
and gen-protobuf.sh
to match the version you want to generate protobufs for and then run the appropriate script for your platform.
The test suite takes around 4 minutes to run if you run both the Avatica HSQLDB and Apache Phoenix tests.
Install docker and docker-compose.
From the root of the repository, run docker-compose up --build
.
For Go 1.10 and below, install the dependencies (skip these steps if using Go 1.11 and above): 1a. Install dep: go get -u github.com/golang/dep/cmd/dep
1b. Install dependencies by running dep ensure -v
from the root of the repository.
You should then set the HSQLDB_HOST
and PHOENIX_HOST
environment variables. For example: {% highlight shell %} HSQLDB_HOST: http://hsqldb:8765 PHOENIX_HOST: http://phoenix:8765 {% endhighlight %}
To select the test suite, export AVATICA_FLAVOR=HSQLDB
for Avatica HSQLDB or AVATICA_FLAVOR=PHOENIX
for Phoenix.
Then run go test -v ./...
from the root of the repository to execute the test suite.
If you have not set up a GPG signing key, set one up by following these instructions.
If this release is a new major version (we are releasing 4.0.0 vs the current version 3.0.0), update the version in the import path in go.mod
. The import paths in the various sample code snippets should also be updated.
Since we need to support Go modules, tags must be prefixed with a v
. For example, tag as v3.1.0
rather than 3.1.0
.
From the root of the repository, run ./make-release-artifacts.sh
.
You will be asked to select the tag to build release artifacts for. The latest tag is automatically selected if no tag is selected.
The release artifacts will be placed in a folder named for the release within the dist/
folder.
The name of the release folder must be in the following format: apache-calcite-avatica-go-$version
. The version must include release candidate identifiers such as -rc0
, if they are present.
The files inside the release folder must have any release candidate identifiers such as -rc1
removed, even if the release is a release candidate. src
must also be added to the filename.
For example, if we are uploading the apache-calcite-avatica-go-3.0.0-rc1
folder, the files must be named apache-calcite-acatica-go-3.0.0.-srctar.gz
. Note the inclusion of src
in the filename.
The tar.gz must be named apache-calcite-avatica-go-$version-src.tar.gz
.
There must be a GPG signature for the tar.gz named: apache-calcite-avatica-go-$version-src.tar.gz.asc
There must be a SHA256 hash for the tar.gz named: apache-calcite-avatica-go-$version-src.tar.gz.sha256
svn
must be installed in order to upload release artifacts.
Check out the Calcite dev release subdirectory: svn co "https://dist.apache.org/repos/dist/dev/calcite/" calcite-dev
.
Move the release folder under dist/
into the calcite-dev
folder.
Add the new release to the svn repository: svn add apache-calcite-avatica-go-3.0.0-rc0
. Remember to change the folder name to the correct release in the command.
Commit to upload the artifacts: svn commit -m "apache-calcite-avatica-go-3.0.0-rc0" --username yourapacheusername --force-log
Note the use of --force-log
to suppress the svn warning, because the commit message is the same as the name of the directory.
svn
must be installed in order to upload release artifacts.
NOTE: Only official releases that has passed a vote may be uploaded to the release directory.
Check out the Calcite release directory: svn co "https://dist.apache.org/repos/dist/release/calcite/" calcite-release
.
Copy the release into the calcite-release
folder. Remember to check the name of the release's folder to ensure that it is in the correct format.
Add the release to the svn repository: svn add apache-calcite-avatica-go-3.0.0
. Remember to change the folder name to the correct release in the command.
Commit to upload the artifacts: svn commit -m "Release apache-calcite-avatica-go-3.0.0" --username yourapacheusername
.