Contributing to LeonsDB

Thanks for helping make LeonsDB better. This page explains how to build the project, what we expect from a pull request, and the one piece of paperwork we need.

The Contributor License Agreement (CLA)

Before we can merge your first pull request, you need to accept the LeonsDB CLA. A bot comments on your pull request with instructions; accepting takes one comment and you only do it once.

Why we ask for it. LeonsDB is funded by commercial agreements, such as hosting partnerships, and by paid products built on the free core. To offer those we need the right to license every line of the server under different terms, including yours. The CLA gives us that right. In return, it guarantees your contribution always stays available under the license it was submitted under, and you keep the copyright to your work.

Building

You need Go (see server/go.mod for the version) and a JDK 21 or newer.

# Server
cd server
go test ./...
go build -o leonsdb ./cmd/leonsdb

# Connector
cd connector
./gradlew build

After changing a .proto file, regenerate the Go code with scripts/gen-proto.sh (needs protoc, protoc-gen-go and protoc-gen-go-grpc) and commit the result. The Java code is generated during the Gradle build.

Pull requests

Reporting bugs and security issues

Open a GitHub issue for bugs. Do not open public issues for security problems; follow SECURITY.md instead.