Developer Tools#

Update Project Version#

build/mvn versions:set -DgenerateBackupPoms=false

Update Document Version#

Whenever project version updates, please also update the document version at docs/conf.py to target the upcoming release.

For example,

release = '1.2.0'

Update Dependency List#

Kyuubi uses the dev/dependencyList file to indicate what upstream dependencies will actually go to the server-side classpath.

For Pull requests, a linter for dependency check will be automatically executed in GitHub Actions.

You can run build/dependency.sh locally first to detect the potential dependency change first.

If the changes look expected, run build/dependency.sh --replace to update dev/dependencyList in your Pull request.

Format All Code#

Kyuubi uses Spotless with google-java-format and Scalafmt to format the Java and Scala code.

You can run dev/reformat to format all Java and Scala code.

Append descriptions of new configurations to settings.md#

Kyuubi uses settings.md to explain available configurations.

You can run KYUUBI_UPDATE=1 build/mvn clean test -pl kyuubi-server -am -Pflink-provided,spark-provided,hive-provided -DwildcardSuites=org.apache.kyuubi.config.AllKyuubiConfiguration to append descriptions of new configurations to settings.md.