Bazel as its build system. Never use `npm`, `yarn`, or `pnpm` for building or testing.
```bash
bazel test //... # All tests
bazel test //packages/intl-localematcher:unit_test # Specific package
bazel build //packages/intl-localematcher
15k2mo agoReviewMountCreate a free account to mount
Code style
- Do not add Go tests (`_test.go`) unless explicitly asked.
- Keep comments sparse: only for genuinely non-obvious mechanics, not one per block.
# Frontend migration
Steady4 mentions in 2 weeks
No other project uses it yet
15k13d agoReviewMountCreate a free account to mount
Development Commands
Claude can run these directly to build, test, and lint the codebase:
* **Build:** `pnpm compile` (add `--watch` flag to monitor)
* **Test:** `TEST_FILES=<name of file(s), comma
15k10d agoReviewMountCreate a free account to mount
make codegen`, which re-fetches them before generating.
Create or update tests covering affected codepaths and run them using `pnpm run test`.
Generate a changeset with `pnpm changeset
15k2mo agoReviewMountCreate a free account to mount
GOOS=windows GOARCH=amd64 go build ./cmd/hack-browser-data/
GOOS=linux GOARCH=amd64 go build ./cmd/hack-browser-data/
# Test
go test ./...
go test -v ./... -covermode=count -coverprofile=coverage.out
# Lint (requires golangci-lint v2)
golangci
15k7mo agoReviewMountCreate a free account to mount
json` and `fr/*.json`.
**Platform abstraction** — Never use `process.platform` directly. Import from `apps/desktop/src/main/platform/`. CI tests all three platforms.
**No time estimates** — Provide priority-based ordering instead of duration predictions
15k11mo agoReviewMountCreate a free account to mount
here.
---
## Tech stack (project-wide)
- **Java 1.8** (do not assume 11+ APIs; `dolphinscheduler-api-test` is the only Java 11 island).
- **Spring Boot 2.6.1** across servers, **Jetty** (Tomcat is excluded
No other project uses it yet
15k54d agoReviewMountCreate a free account to mount
plugin, not in the server. Don't add a global retry loop in `AlertSender`.
## Tests
- `alert-server/src/test/java` — unit tests for config, RPC, event queue, sender.
- Each plugin
No other project uses it yet
15k54d agoReviewMountCreate a free account to mount
endpoints (`@Operation`, `@Parameter`). Missing ones break auto-generated docs the UI team consumes.
## Tests
Unit tests live in `src/test/java`. **Integration tests live in `dolphinscheduler-api-test`** (separate module, Docker Compose
No other project uses it yet
15k54d agoReviewMountCreate a free account to mount
CLAUDE.md — dolphinscheduler-api-test
Integration test harness for the REST API. **Not** bundled into the release — this module exists to run curl-style black-box tests against a full DolphinScheduler
No other project uses it yet
15k54d agoReviewMountCreate a free account to mount
real infrastructure. When reading code that takes an `AwsConfig` map, expect either style.
## Tests
Minimal — auto-config wiring only. End-to-end auth is covered by `dolphinscheduler-api-test`.
## Related
No other project uses it yet
15k54d agoReviewMountCreate a free account to mount
canonical shutdown contract across every server; do not invent a new lifecycle interface.
## Tests
Standard `src/test/java`. No special infra.
## Related modules
- `dolphinscheduler-spi` — uses `common` as `provided`; keep
No other project uses it yet
15k54d agoReviewMountCreate a free account to mount
internally for its own plugin connections, but the core DolphinScheduler metadata DB uses HikariCP.
## Tests
`src/test/java` — a mix of unit and Testcontainers-based integration tests. The database-dialect-specific paths
No other project uses it yet
15k54d agoReviewMountCreate a free account to mount
MySQL 5.7+ (production).
- `dolphinscheduler-dao-postgresql` — PostgreSQL 9.6+ (production).
- `dolphinscheduler-dao-h2` — H2 (dev / tests / standalone server).
## How the right dialect is picked
Each sub-module registers a `@AutoConfiguration` class
No other project uses it yet
15k54d agoReviewMountCreate a free account to mount
Trino, Redshift, Snowflake, …). Used by the SQL-style task plugins, the API for connection testing, and the data-lineage tool.
**This directory is a Maven parent POM.**
## Sub-modules
### Framework
No other project uses it yet
15k54d agoReviewMountCreate a free account to mount
compliant**: excludes binaries, `.git*`, etc. Don't introduce large binaries into the repo.
## Tests
None. Verification is end-to-end via `dolphinscheduler-e2e` which runs against a built tarball.
## Related
No other project uses it yet
15k54d agoReviewMountCreate a free account to mount
CLAUDE.md — dolphinscheduler-e2e
End-to-end **browser** tests. Selenium drives a real Chrome instance against a full DolphinScheduler stack booted with Docker Compose via Testcontainers. Complements the REST-level tests
No other project uses it yet
15k54d agoReviewMountCreate a free account to mount
dolphinscheduler-common` dependencies to `-base` — it's kept lean on purpose (like `-spi`).
## Tests
Per sub-module `src/test/java`. Integration-style RPC tests live in the implementing modules (master/worker/alert), not here
No other project uses it yet
15k54d agoReviewMountCreate a free account to mount
A file Claude Code reads at the start of every session. It holds the commands, conventions and warnings the agent needs for this project.
Where does it go?
At the repository root. Claude Code also reads CLAUDE.md files in subdirectories when it works there.
What should it contain?
Build and test commands, the project's layout, conventions that aren't obvious from the code, and mistakes to avoid. Short files tend to work better than long ones.
CLAUDE.md or AGENTS.md?
Claude Code reads CLAUDE.md; most other agents read AGENTS.md. Many projects keep one and point the other at it.