|
| 1 | +# Repository Guidelines |
| 2 | + |
| 3 | +## Project Structure & Module Organization |
| 4 | +- `Implementation/` holds the core C++ server, API handlers, and unit-test sources. |
| 5 | +- `Framework/` contains SDK headers and plugin interfaces; `SDK/` includes SDK build artifacts (including WASM). |
| 6 | +- `Drivers/` hosts hardware/transport driver modules; `Examples/` provides sample systems and plugins. |
| 7 | +- `Client/` contains the web UI sources; `Artifacts/` holds packaged client/API docs and build scripts. |
| 8 | +- `Tests/` contains driver/system tests wired into CMake; `Documentation/` covers API and website docs. |
| 9 | +- Build outputs are generated under `build_<platform>/Output` (for example `build_linux64/Output`). |
| 10 | + |
| 11 | +## Build, Test, and Development Commands |
| 12 | +- `./build_clean_linux64.sh` builds Linux x64 binaries and dev packages into `build_linux64/Output`. |
| 13 | +- `./build_clean_rpi.sh` builds for Raspberry Pi (ARM) using `build_rpi/Output`. |
| 14 | +- `./build_clean_win64.bat` builds Windows artifacts into `build_win64/Output`. |
| 15 | +- After a build, run the server from the output folder, e.g. `./build_linux64/Output/amc_server`. |
| 16 | + |
| 17 | +## Coding Style & Naming Conventions |
| 18 | +- Follow existing C++ style: tabs for indentation, braces on new lines, and `CamelCase` types with `snake_case` or `m_`-prefixed members. |
| 19 | +- Keep header/implementation pairs aligned (for example `amc_api_handler_build.hpp` + `.cpp`). |
| 20 | +- Prefer minimal, local changes and keep platform-specific logic behind existing `#ifdef` patterns. |
| 21 | + |
| 22 | +## Testing Guidelines |
| 23 | +- Unit tests live in `Implementation/UnitTest` and build into `amc_unittest`. |
| 24 | +- Driver/system tests are grouped under `Tests/<DriverName>Test`. |
| 25 | +- After building, run executables from `build_<platform>/Output` (for example `./build_linux64/Output/amc_unittest`). |
| 26 | +- Add tests alongside the module you changed and mirror existing test naming. |
| 27 | + |
| 28 | +## Commit & Pull Request Guidelines |
| 29 | +- Commit messages are short, sentence-case summaries; some include issue numbers like `(... #49)`. |
| 30 | +- Use the git-flow model: open PRs against `develop`. |
| 31 | +- Before coding, discuss changes in an issue and reference it in the PR description. |
| 32 | +- Include clear change summaries and note any build/test commands run. |
| 33 | +- Sign and submit the appropriate contributor agreement PDF in the repo root. |
| 34 | +- Follow the project Code of Conduct in `CODE_OF_CONDUCT.md`. |
| 35 | + |
| 36 | +## Security & Configuration Tips |
| 37 | +- Build scripts read environment variables such as `AMCF_PACKAGE_REPOSITORY` for package uploads; avoid committing secrets. |
| 38 | +- Generated packages are placed in `build_<platform>/DevPackage` and `build_<platform>/Artifacts`. |
0 commit comments