Development¶
Build requirements¶
- Mac OS X or Linux
- Java 23+, 64-bit
- Docker
Running Trino Gateway in your IDE¶
The best way to run Trino Gateway for development is to run the
TrinoGatewayRunner
class.
You need to run io.trino.gateway.TrinoGatewayRunner.main()
method on your IDE
or execute the following command:
./mvnw test-compile exec:java -pl gateway-ha -Dexec.classpathScope=test -Dexec.mainClass="io.trino.gateway.TrinoGatewayRunner"
Build and run¶
Locally¶
This project requires Java 23. Note that higher version of Java have not been verified and may run into unexpected issues.
Run ./mvnw clean install
to build trino-gateway
. VM options required for
compilation and testing are specified in .mvn/jvm.config
.
Edit the configuration file gateway-ha-config.yml
in the gateway-ha
folder
and update the mysql db information.
cd gateway-ha/target/
java -jar gateway-ha-{{VERSION}}-jar-with-dependencies.jar ../gateway-ha-config.yml
In Docker¶
Follow the separate instructions for building the container and running Trino
Gateway with docker compose from the README.md
file in the docker
folder.
Contact, help, and issues¶
You can contact the Trino Gateway users and contributors on
Trino slack in the #trino-gateway
and
#trino-gateway-dev
channels. Use these channels for questions and discussion
about Trino Gateway installation, usage, and development.
If you encounter specific issues or want to propose new features, file an issue and follow the contribution process for next steps.
Contributing¶
Want to help build Trino Gateway? Check out our contributing documentation
Maintainers¶
The following Trino and Trino Gateway maintainers are involved in Trino Gateway, and can help with pull request reviews and merges.
- chaho12 - Jaeho Yoo
- ebyhr - Yuya Ebihara
- mosabua - Manfred Moser
- oneonestar - Star Poon
- vishalya - Vishal Jadhav
- wendigo - Mateusz Gajewski
- willmostly - Will Morrison
Contributor meetings¶
Contributor meetings are open to anyone and held every two weeks. Meeting notes and other details are available on GitHub.
Release process¶
A full release process consists a number of steps:
Create a release notes pull request including the following changes:
- Add new release notes in
docs/release-notes.md
. - Update
VERSION
indocs/quickstart.md
. - Update
appVersion
to new version andversion
to new version with.0.0
appended inhelm/trino-gateway/Chart.yaml
. For example, update toappVersion: "10"
andversion: "10.0.0"
.
Organize review, approval, and merge for the PR.
Pull the changes locally:
Run a Maven release build:
A successful release build performs the necessary commits, and pushes the binaries to Maven Central staging.
Close and release the staging repository, and wait until the sync to Central is completed. Confirm the presence of the artifacts at https://repo.maven.apache.org/maven2/io/trino/gateway/gateway-ha/.
Ensure that you are logged into Docker Hub with suitable permissions, and run
the container release script with the version number that was just released,
for example 6
:
Once completed, verify the availability at https://hub.docker.com/r/trinodb/trino-gateway.
Announce the release on Trino Slack and LinkedIn.