Revise copilot-instructions.md: consolidate, shorten, extract and extend language-specific rules (#353)
Revise copilot-instructions.md: consolidate redundant sections, extract language-specific rules * Added comprehensive internal documentation files establishing coding standards and development workflows for C++, Web UI, CI/CD, and ESP-IDF components. * Implemented CodeRabbit configuration to enforce repository-specific code review guidance and quality standards across pull requests. * Documented development workflow procedures and contribution expectations to streamline the development process and improve code consistency. --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: softhack007 <91616163+softhack007@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
This commit is contained in:
68
.coderabbit.yaml
Normal file
68
.coderabbit.yaml
Normal file
@@ -0,0 +1,68 @@
|
||||
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
|
||||
#
|
||||
# CodeRabbit configuration — references existing guideline files to avoid
|
||||
# duplicating conventions. See:
|
||||
# .github/copilot-instructions.md — project overview & general rules
|
||||
# .github/cpp.instructions.md — C++ coding conventions
|
||||
# .github/web.instructions.md — Web UI coding conventions
|
||||
# .github/cicd.instructions.md — GitHub Actions / CI-CD conventions
|
||||
# .github/esp-idf.instructions.md — ESP-IDF / chip-specific coding guidelines
|
||||
# (apply when code directly uses ESP-IDF APIs:
|
||||
# esp_idf_*, I2S, RMT, ADC, GPIO, heap_caps, etc.)
|
||||
#
|
||||
# NOTE: This file must be committed (tracked by git) for CodeRabbit to read
|
||||
# it from the repository. If it is listed in .gitignore, CodeRabbit will
|
||||
# not see it and these settings will have no effect.
|
||||
|
||||
language: en-US
|
||||
|
||||
reviews:
|
||||
path_instructions:
|
||||
- path: "**/*.{cpp,h,hpp,ino}"
|
||||
instructions: >
|
||||
Follow the C++ coding conventions documented in .github/cpp.instructions.md
|
||||
and the general project guidelines in .github/copilot-instructions.md.
|
||||
If the code under review directly uses ESP-IDF APIs (e.g. heap_caps_malloc,
|
||||
I2S, RMT, ADC, GPIO, esp_timer, or any esp_idf_* / soc_* symbols), also
|
||||
apply the guidelines in .github/esp-idf.instructions.md.
|
||||
|
||||
Key rules: 2-space indentation (no tabs), camelCase functions/variables,
|
||||
PascalCase classes, UPPER_CASE macros. Mark WLED-MM-specific changes with
|
||||
`// WLEDMM` comments. No C++ exceptions — use return codes and debug macros.
|
||||
|
||||
Hot-path optimization guidelines (attributes, uint_fast types, caching,
|
||||
unsigned range checks) apply from pixel set/get operations downward —
|
||||
NOT to effect functions in FX.cpp, which have diverse contributor styles.
|
||||
|
||||
- path: "wled00/data/**"
|
||||
instructions: >
|
||||
Follow the web UI conventions documented in .github/web.instructions.md.
|
||||
|
||||
Key rules: indent HTML and JavaScript with tabs, CSS with tabs or spaces.
|
||||
Files here are built into wled00/html_*.h by tools/cdata.js — never
|
||||
edit those generated headers directly.
|
||||
|
||||
- path: "wled00/html_*.h"
|
||||
instructions: >
|
||||
These files are auto-generated from wled00/data/ by tools/cdata.js.
|
||||
They must never be manually edited or committed. Flag any PR that
|
||||
includes changes to these files.
|
||||
|
||||
- path: "usermods/**"
|
||||
instructions: >
|
||||
Usermods are community add-ons following the upstream WLED 0.15.x style.
|
||||
Each usermod lives in its own directory under usermods/ and is implemented
|
||||
as a .h file that is pulled in by wled00/usermods_list.cpp (guarded by
|
||||
#ifdef). Usermods do not use library.json. Follow the same C++ conventions
|
||||
as the core firmware (.github/cpp.instructions.md).
|
||||
|
||||
- path: ".github/workflows/*.{yml,yaml}"
|
||||
instructions: >
|
||||
Follow the CI/CD conventions documented in .github/cicd.instructions.md.
|
||||
|
||||
Key rules: 2-space indentation, descriptive name: on every workflow/job/step.
|
||||
Third-party actions must be pinned to a specific version tag — branch pins
|
||||
such as @main or @master are not allowed. Declare explicit permissions: blocks
|
||||
scoped to least privilege. Never interpolate github.event.* values directly
|
||||
into run: steps — pass them through an env: variable to prevent script
|
||||
injection. Do not use pull_request_target unless fully justified.
|
||||
Reference in New Issue
Block a user