メインコンテンツまでスキップ
バージョン: 次期

Repository layout

Use the source module that owns a behavior and its nearest test before broadening a change. This map is current for c8ed147.

AreaOwnsClosest verification
src/Rust CLI, Pingora proxy, runtime snapshots, control plane, security, clustering, plugins, and observability.Matching tests/*.rs; for example routing.rs, reload.rs, proxy_*.rs, and control_plane_*.rs.
crates/bearust-plugin-sdk/Guest-side ABI types, allocation helpers, and hook contracts for Rust-to-WASM plugins.tests/plugin_runtime.rs and plugin fixture tests.
frontend/Vite dashboard, generated TanStack routes, typed API client, i18n, component tests, and Playwright E2E tests.npm test --prefix frontend -- --run, then npm run test:e2e --prefix frontend.
migrations/Ordered SQLx migrations for SQLite, PostgreSQL, and MySQL control-plane data.tests/control_plane_repository.rs, affected repository/API tests, and opt-in tests/external_database.rs.
tests/Integration and behavior tests, including fixture-driven proxy, cluster, TLS, WAF, and plugin coverage.Run the focused test target first, then cargo test --workspace --locked.
config/Example server, pools, routes, optional subsystem configuration.tests/config_validation.rs and bearust validate --config <file>.
Dockerfile, Dockerfile.devProduction multi-stage image and cargo-watch development image.CI container build/run steps.
docker-compose.yml, docker-compose.dev.ymlProduction and hot-reload service topology, ports, profiles, volumes, and environment.docker compose config, dev config, and scripts/*smoke*.sh.
.github/workflows/ci.ymlRequired Rust, frontend, Playwright, and container gates.Reproduce the listed CI command for the touched area.
scripts/Development Compose and production smoke scripts.Run scripts/dev-compose-smoke.sh or scripts/smoke-test.sh when changing their path.

Top-level Cargo.toml defines the Rust workspace and includes the plugin SDK member; frontend/package.json owns frontend scripts and dependencies. Avoid changing generated frontend/src/routeTree.gen.ts by hand—its Vite plugin generates it from frontend/src/routes/.