Skip to content

✨ Set up Copilot instructions #603

@finger563

Description

@finger563

Configure instructions for this repository as documented in Best practices for Copilot coding agent in your repository.

Any time a change is made, please ensure the relevant component documentation, examples, configuration files are also up to date. Finally, if a new component is added, please ensure the documentation configuration files and the continuous integration / build and component publishing files are updated. Below is a list describing where such files are and how they are structured. If a new component is added, make sure to follow the structure of the other components in the repo (example directory structure provided below)

example component directory structure:

components/task
├── CMakeLists.txt
├── README.md
├── example
│   ├── CMakeLists.txt
│   ├── README.md
│   ├── main
│   │   ├── CMakeLists.txt
│   │   └── task_example.cpp
│   └── sdkconfig.defaults
├── idf_component.yml
├── include
│   ├── run_on_core.hpp
│   ├── task.hpp
│   └── task_formatters.hpp
└── src
└── task.cpp

Note that some component examples have multiple sdkconfig.defaults files if they support multiple specific hardware configurations and some examples may have partitions.csv as well.

Below is a snippet of the top-level doc folder with the Doxyfile for configuring paths to component includes and component examples, as well as the doc/en directory containing RST files for short form docs and md files which simply point to the actual component example readme files.

doc
├── Dockerfile
├── Doxyfile
├── README.md
├── conf_common.py
├── doxygen-known-warnings.txt
├── en
│   ├── adc
│   ├── base_component.rst
│   ├── base_peripheral.rst
│   ├── battery
│   ├── binary_log_example.md
│   ├── bldc
│   ├── ble
│   ├── button.rst
│   ├── button_example.md
│   ├── byte90.rst
│   ├── byte90_example.md
...

Each component should have:

  1. include files properly referenced in Doxyfile (keep in alphabetical order)
  2. example cpp file properly referenced in Doxyfile (keep in alphabetical order)
  3. Minimum of 1 RST file in doc/en (or relevant subdirectory) for the component
  4. md file in doc/en (or relevant subdirectory) which points to the example's README

Finally, we have a few important CI files that need to be maintained / updated for any new component:

.github/workflows
├── build.yml
└── upload_components.yml

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions