Development

Contributor documentation for developing and testing dwarvenpick.

Local checks

Backend:

./gradlew clean ktlintCheck test

Frontend:

cd frontend
npm ci
npm run lint
npm run format:check
npm run test
npm run build

Local stack (Docker Compose)

For UI + integration smoke tests (including OIDC SSO via Keycloak):

docker compose -f deploy/docker/docker-compose.yml up -d --build

Open:

  • UI: http://localhost:3000
  • Keycloak admin: http://localhost:8081 (admin / admin)

LDAP integration tests

LDAP authentication is covered by a Testcontainers-based integration test suite and requires Docker:

./gradlew :backend:app:test --tests com.dwarvenpick.app.auth.LdapAuthContainerTests

Datasource integration tests

Query execution is covered by Testcontainers-based integration tests (Postgres, MySQL, Trino) and requires Docker:

./gradlew :backend:app:test --tests com.dwarvenpick.app.QueryExecutionManagerContainerTests

Versioning and releases

dwarvenpick uses Git tags for release versions.

  • Dev builds default to 0.4.2-SNAPSHOT.
  • Release builds use the pushed tag name (for example v0.4.2 becomes version 0.4.2).

To cut a release:

  1. Create a tag:
   git tag v0.4.2
   git push origin v0.4.2
  1. GitHub Actions runs the Release workflow and publishes a GitHub Release with:
    • versioned backend jar
    • versioned Helm chart package

To build a versioned jar locally without tagging:

DWARVENPICK_VERSION=0.4.2 ./gradlew :backend:app:bootJar

Table of contents


Apache-2.0 licensed. Copyright (c) dwarvenpick contributors.

This site uses Just the Docs, a documentation theme for Jekyll.