chore: reset repository history

This commit is contained in:
xixu-me committed 2026-03-21 19:31:31 +08:00
commit b451771169
172 files changed
+26281

No files matched your search

+35
View File
@@ -0,0 +1,35 @@
# Repository Guidelines
## Project Structure & Module Organization
`Xdrop` is a monorepo with a React frontend and Go API. Put browser code in `apps/web/src` (`app`, `components`, `features`, `lib`), public assets in `apps/web/public`, shared TypeScript helpers in `packages/shared/src`, and backend code in `apps/api` with the entrypoint at `apps/api/cmd/api` and domain packages under `apps/api/internal`. End-to-end tests live in `tests/e2e`, infra files in `infra`, and repo automation in `scripts` and `.github/workflows`.
## Build, Test, and Development Commands
Install JS dependencies once with `bun install --frozen-lockfile`.
- `bun run dev:web`: start the Vite dev server for the frontend.
- `bun run build:web`: type-check and build the web app, then generate SEO assets.
- `bun run lint:web`: run ESLint on `apps/web`.
- `bun run test:web` / `bun run test:web:coverage`: run Vitest, with or without coverage output.
- `bun run test:e2e`: run the Playwright suite in `tests/e2e`.
- `bun run format` / `bun run format:check`: run Prettier plus Go formatting checks.
- `go test ./... -coverprofile=coverage.out -covermode=atomic` from `apps/api`: run API tests the same way CI does.
- `go run ./cmd/api` from `apps/api`: run the API locally.
- `docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --build`: boot the full stack on `http://localhost:8080`.
## Coding Style & Naming Conventions
Follow `.editorconfig`: 2 spaces for most files, tabs for `.go`, UTF-8, LF endings. Prettier enforces no semicolons, single quotes, and a 100-column wrap. Use PascalCase for React components, `useX` for hooks, camelCase for TS utilities, and lowercase Go package names. Keep tests beside the code they cover.
## Testing Guidelines
Frontend unit tests use Vitest, Testing Library, and `src/test/setup.ts`; name them `*.test.ts` or `*.test.tsx`. Browser flows use Playwright in `tests/e2e/*.spec.ts`. Backend tests use Go’s `testing` package, with integration coverage already present in `*_integration_test.go`. CI uploads frontend and backend coverage to Codecov; avoid reducing backend coverage below the current 90% target.
## Commit & Pull Request Guidelines
Recent history follows Conventional Commit style such as `feat:`, `fix:`, `test:`, and `docs:`. Keep commit subjects short and imperative. PRs should explain user-visible impact, link the relevant issue, and list verification steps. Include screenshots or short recordings for UI changes, and call out config, Docker, or API contract changes explicitly.
## Security & Configuration Tips
Start from `.env.example` for local configuration and never commit real secrets. The web dev server proxies `/api` to `localhost:8080` and `/xdrop` to MinIO on `localhost:9000`, so keep those endpoints aligned when changing local setup.