From 8410d7c4a562f5bd57b28bbad16861ba4afe66f9 Mon Sep 17 00:00:00 2001 From: jubnl Date: Mon, 25 May 2026 22:10:44 +0200 Subject: [PATCH 1/2] wiki: update dev env --- wiki/Development-environment.md | 72 ++++++++++++++++++++++++--------- 1 file changed, 52 insertions(+), 20 deletions(-) diff --git a/wiki/Development-environment.md b/wiki/Development-environment.md index 4b5de7d8..63e923d6 100644 --- a/wiki/Development-environment.md +++ b/wiki/Development-environment.md @@ -70,47 +70,79 @@ Branch naming conventions: ## 5. Install Dependencies -Install dependencies for both the client and server: +The repo is an npm workspace monorepo. One command at the root installs everything: ```bash -# Client -cd client -npm i - -# Server -cd ../server -npm i +npm ci ``` --- ## 6. Available Scripts +### Root (`/`) + +These commands run across all workspaces at once and are the recommended way to work: + +| Command | Description | +|----------------------|---------------------------------------------------------------------| +| `npm run dev` | Build shared, then start shared (watch), server, and client together via `concurrently` | +| `npm run build` | Build shared → server → client in order | +| `npm test` | Run tests in shared, server, and client | +| `npm run test:cov` | Run coverage for server and client | +| `npm run test:e2e` | Run end-to-end tests (server) | +| `npm run lint` | Lint shared, server, and client | +| `npm run format` | Format shared, server, and client | +| `npm run format:check` | Check formatting across all workspaces | + +### Shared (`/shared`) + +The `@trek/shared` package is the single source of truth for code shared between the client and server. It currently holds **Zod schemas that define API contracts** (request/response shapes, common primitives, pagination). Both workspaces import from it so schema changes automatically propagate to both sides. + +> **Upcoming:** the i18n translation layer will be migrated into this package so that translation keys and types are enforced across the stack from one place. + +| Command | Description | +|------------------------|------------------------------------| +| `npm run build` | Compile shared package (tsup) | +| `npm run build:watch` | Compile in watch mode | +| `npm test` | Run tests | +| `npm run typecheck` | Type-check without emitting | +| `npm run lint` | Lint source | +| `npm run format` | Format source | + ### Server (`/server`) | Command | Description | |----------------------------|------------------------------------------| | `npm start` | Start the server (production) | -| `npm run dev` | Start the server in watch mode (tsx) | +| `npm run dev` | Start the server in watch mode | +| `npm run build` | Compile server | +| `npm run typecheck` | Type-check without emitting | | `npm test` | Run all tests | | `npm run test:unit` | Run unit tests only | | `npm run test:integration` | Run integration tests | | `npm run test:ws` | Run WebSocket tests | +| `npm run test:parity` | Run parity tests | +| `npm run test:e2e` | Run end-to-end tests | | `npm run test:watch` | Run tests in watch mode | | `npm run test:coverage` | Run tests with coverage report | +| `npm run lint` | Lint source | +| `npm run format` | Format source | ### Client (`/client`) -| Command | Description | -|--------------------------|------------------------------------------------------| -| `npm run dev` | Start the Vite dev server | -| `npm run build` | Build for production (runs icon generation first) | -| `npm run preview` | Preview the production build locally | -| `npm test` | Run all tests | -| `npm run test:unit` | Run unit tests only | -| `npm run test:integration` | Run integration tests | -| `npm run test:watch` | Run tests in watch mode | -| `npm run test:coverage` | Run tests with coverage report | +| Command | Description | +|----------------------------|------------------------------------------------------| +| `npm run dev` | Start the Vite dev server | +| `npm run build` | Build for production (runs icon generation first) | +| `npm run preview` | Preview the production build locally | +| `npm test` | Run all tests | +| `npm run test:unit` | Run unit tests only | +| `npm run test:integration` | Run integration tests | +| `npm run test:watch` | Run tests in watch mode | +| `npm run test:coverage` | Run tests with coverage report | +| `npm run lint` | Lint source | +| `npm run format` | Format source | --- @@ -134,5 +166,5 @@ Then open a Pull Request from your fork to `mauriceboe/TREK` targeting the `dev` ## Tips - Always branch off from an up-to-date `dev` — run `git fetch upstream && git rebase upstream/dev` before starting new work. -- Run tests before pushing: `npm run test` in both `client/` and `server/`. +- Run tests before pushing: `npm test` at the repo root runs all workspaces. - Follow the commit message conventions described in the [[Contributing]] guidelines. \ No newline at end of file From b25eb18ea42a34fda687780ef0d4e46c9aa31440 Mon Sep 17 00:00:00 2001 From: jubnl Date: Mon, 25 May 2026 22:16:16 +0200 Subject: [PATCH 2/2] wiki: small precision in dev env --- wiki/Development-environment.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wiki/Development-environment.md b/wiki/Development-environment.md index 63e923d6..73461888 100644 --- a/wiki/Development-environment.md +++ b/wiki/Development-environment.md @@ -58,6 +58,7 @@ git rebase upstream/dev # or: git merge upstream/dev Working on a dedicated branch keeps your changes isolated and makes PRs easier to review: ```bash +# Create a new branch off of dev git checkout -b fix/my-changes origin/dev ``` @@ -153,7 +154,7 @@ git add . git commit -m "fix: describe your change" # Push to your fork's dev branch -git push origin fix/my-changes:dev +git push origin fix/my-changes # Or if working directly on dev git push origin dev