|
| 1 | +# Repository Guidelines |
| 2 | + |
| 3 | +This file is a short orientation layer for automated contributors. For complete contributor details, see [CONTRIBUTING.md](CONTRIBUTING.md). |
| 4 | + |
| 5 | +## Quick Orientation |
| 6 | + |
| 7 | +RobotCode is a multi-package Robot Framework toolkit. |
| 8 | + |
| 9 | +- Root CLI: `src/robotcode/cli/` |
| 10 | +- Python packages: `packages/*/src/robotcode/` |
| 11 | +- Tests: `tests/robotcode/` |
| 12 | +- VS Code extension: `vscode-client/` |
| 13 | +- IntelliJ plugin: `intellij-client/src/main/kotlin/`, with tests in `intellij-client/src/test/kotlin/` |
| 14 | +- Documentation: `docs/` |
| 15 | +- Maintenance scripts: `scripts/` |
| 16 | + |
| 17 | +## Task Routing |
| 18 | + |
| 19 | +- Python CLI/packages: |
| 20 | + - Owning paths: `src/robotcode/cli/`, `packages/*/src/robotcode/`. |
| 21 | + - Mirror tests under `tests/robotcode/`. |
| 22 | + - Keep namespace package `__init__.py` files empty. |
| 23 | +- VS Code extension: |
| 24 | + - Owning path: `vscode-client/extension/`. |
| 25 | +- IntelliJ plugin: |
| 26 | + - Owning path: `intellij-client/src/main/kotlin/`. |
| 27 | + - Run Gradle commands from `intellij-client/`. |
| 28 | +- Docs: |
| 29 | + - Owning paths: `docs/`, root Markdown files. |
| 30 | +- Generated or bundled outputs (do not edit by hand): |
| 31 | + - Includes `bundled/libs/`, syntax files, schemas, and version files. |
| 32 | + - Regenerate with the documented scripts and note the command used. |
| 33 | + |
| 34 | +## Common Commands |
| 35 | + |
| 36 | +Use `hatch run test:test` as the default test command. It runs the full Robot Framework matrix against the default Python and is fast enough for pre-commit. Reach for `devel:test` only when you suspect a Python-version-specific issue — it spins up 40 environments and is significantly slower. |
| 37 | + |
| 38 | +- `hatch run test:test` |
| 39 | + - Default: full Robot Framework matrix on the default Python. |
| 40 | +- `hatch run test.<rf-env>:test` |
| 41 | + - Focused Robot Framework version. Available: `rf50`, `rf60`, `rf61`, `rf70`, `rf71`, `rf72`, `rf73`, `rf74`. |
| 42 | +- `hatch run devel:test` |
| 43 | + - Full Python × Robot Framework matrix (5 × 8 = 40 envs). Slow; use only for Python-version-specific changes. |
| 44 | +- `hatch run devel.<py-env>-<rf-env>:test` |
| 45 | + - Focused Python × Robot Framework combination. Python envs: `py3.10`, `py3.11`, `py3.12`, `py3.13`, `py3.14`. |
| 46 | +- `hatch run lint:all` |
| 47 | + - Ruff style checks plus mypy typing checks. |
| 48 | +- `hatch run lint:fix` |
| 49 | + - Ruff fixes and formatting. |
| 50 | +- `npm run lint` |
| 51 | + - TypeScript/JavaScript linting. |
| 52 | +- `npm run compile` / `npm run package` |
| 53 | + - VS Code extension build commands. |
| 54 | +- `npm run docs:dev` / `npm run docs:build` |
| 55 | + - Docs site development server or build. |
| 56 | +- `(cd intellij-client && ./gradlew test)` |
| 57 | + - IntelliJ/Kotlin tests. |
| 58 | +- `(cd intellij-client && ./gradlew buildPlugin)` |
| 59 | + - IntelliJ plugin package. |
| 60 | +- `(cd intellij-client && ./gradlew verifyPlugin)` |
| 61 | + - IntelliJ plugin verification. |
| 62 | + |
| 63 | +## Commits and Pull Requests |
| 64 | + |
| 65 | +These rules are enforced — a violation will block the PR or fail a pre-commit hook, often after you have already pushed. |
| 66 | + |
| 67 | +- **Conventional Commits** are required (`type(scope): subject`). Allowed types and scopes are listed in [CONTRIBUTING.md § Commit Messages](CONTRIBUTING.md#commit-messages). |
| 68 | +- **Cryptographically signed commits** are mandatory (`git commit -S`, GPG/SSH). Unsigned commits in a PR are auto-blocked. This is separate from the DCO `Signed-off-by` trailer (`-s`). |
| 69 | +- **AI / tooling disclosure** is required when an AI agent contributed substantially. See [AI_POLICY.md](AI_POLICY.md). |
| 70 | +- Keep changes focused. No unrelated refactors or formatting noise in the same PR. |
| 71 | + |
| 72 | +## Agent Notes |
| 73 | + |
| 74 | +- Make small, focused changes and avoid unrelated refactors. |
| 75 | +- Update [CONTRIBUTING.md](CONTRIBUTING.md) when contributor rules change; update this file when the orientation, task routing, or common commands change. |
0 commit comments