# Contributing to DBX Thanks for taking a look at DBX. Whether you fix a typo, improve docs, or tackle a database-specific bug, every PR helps. ## Where to Start 1. Browse [open issues](https://github.com/t8y2/dbx/issues). Good first targets are labeled `documentation`, `good first issue`, or issues in a database you already use. 2. Comment on the issue you want to work on. Say what you plan to do so others do not duplicate the effort. For community issues, you can also comment `/claim` when that workflow is enabled. 3. Fork the repo, create a branch, and open a PR against `main`. If you are not sure what to pick, documentation and small UX fixes are a solid first contribution. See [examples/](examples/) and the [official docs](https://dbxio.com/en/docs/what-is-dbx) for the current structure. ## Development Setup ### Prerequisites - Node.js >= 22.13.0 - pnpm 10.27.0 - Rust >= 1.77 - Make Linux desktop builds also need WebKit/GTK packages. See [README.md](README.md#getting-started) for the exact commands. ### Run Locally ```bash git clone https://github.com/t8y2/dbx.git cd dbx make ``` `make` installs dependencies when needed and starts the Tauri desktop dev environment. Useful shortcuts: ```bash make dev-fast # skip DuckDB during local dev make dev-web # frontend only make dev-backend # web backend only make docs # preview the documentation site make cargo-check-fast # fast Rust checks ``` ### JDBC Agent Drivers Agent driver projects live under `agents/`. Java/JDBC driver builds and tests require JDK 21; Gradle can auto-download the toolchain when available. ```bash cd agents ./gradlew test ``` ## Project Layout | Path | Purpose | | --- | --- | | `src/` | Vue frontend | | `src-tauri/` | Tauri desktop shell and command layer | | `crates/dbx-core/` | Shared Rust database logic | | `crates/dbx-web/` | Docker / Web HTTP backend | | `packages/cli/` | `@dbx-app/cli` | | `packages/mcp-server/` | `@dbx-app/mcp-server` | | `packages/node-core/` | Shared Node.js bridge and direct-query logic | | `docs/` | Official documentation site | | `examples/` | Sample configs and automation scripts | | `agents/` | JDBC agent driver projects | ## Making Changes ### Branch Naming Use a short descriptive branch name, for example: - `docs/web-api-reference` - `fix/mysql-connection-timeout` - `feat/redis-key-search` ### Scope Keep PRs focused. A docs-only PR should not include unrelated code changes. A bug fix should not also refactor nearby modules unless that refactor is required for the fix. ### Commits Write commit messages in plain language: - `docs: add web API reference for Docker deployments` - `fix(redis): handle empty scan cursor` - `feat(schema): show catalog info for Doris` ### Tests Run the checks that match your change: ```bash make cargo-check-fast make cargo-test-fast pnpm test ``` For frontend or package changes, run the relevant package tests under `packages/` or `packages/app-tests/`. ### Documentation User-facing docs live in two places: - Repository docs: `README.md`, `CONTRIBUTING.md`, package READMEs, and `examples/` - Website docs: `docs/content/docs/` If you add a new docs page under `docs/content/docs/`, register it in: - `docs/content/docs/meta.json` - `docs/content/docs/meta.cn.json` Preview locally with: ```bash make docs ``` ## Pull Requests 1. Push your branch to your fork. 2. Open a PR against `https://github.com/t8y2/dbx` `main`. 3. Link the related issue in the PR description. 4. Explain what changed, how you tested it, and any screenshots if the UI changed. Small PRs are easier to review and merge. ## What We Are Looking For - Documentation improvements and translations - Reproducible bug fixes with clear before/after behavior - Database-specific fixes where you can verify against a real instance - Tests for non-trivial logic changes - Examples that show CLI, MCP, Docker, or Web API usage ## Community - [Discord](https://discord.gg/W7NyVDRt6a) - [GitHub Issues](https://github.com/t8y2/dbx/issues) - [Official docs](https://dbxio.com/en/docs/what-is-dbx) Merged contributors appear on the [DBX contributors wall](https://dbxio.com/en/community).