diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 00000000..afa8b0e1 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,17 @@ +## ALICE Experiment Control System (AliECS) + +The ALICE Experiment Control System (**AliECS**) is the piece of software to drive and control data taking activities in the experiment. +It is a distributed system that combines state of the art cluster resource management and experiment control functionalities into a single comprehensive solution. + +### Copilot agent instructions + +- Running `make` in the main directory lets you build all golang components of AliECS. +- Running `make test` in the main directory lets you run all golang tests of AliECS. +- Do not attempt to build C++ components unless you already have access to their dependencies (FairMQ and FairLogger) and the task requires you to do it. +- When changing API interfaces, run `make docs` to regenerate the API documentation. +- When changing gRPC interfaces and proto files, run `make generate` to regenerate the gRPC code. +- Do not include regenerated Go files in your commits unless you are changing the API or proto files. If you do, include only the files which are related to your task. +- Do not include modified go.mod and go.sum files in your commits unless you are adding or upgrading a dependency. +- When adding features or fixing bugs, add a corresponding unit test if feasible. Use Ginkgo/Gomega, unless a package already uses a different testing framework. +- When adding a new feature, extend the documentation accordingly, follow the existing style and structure, and make sure that Tables of Contents are updated. See [Documentation guidelines](docs/CONTRIBUTING.md#documentation-guidelines) for some more details. +- When providing a fix, explain what was causing the issue and how it was fixed. \ No newline at end of file diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 54611fd4..f1d67c8c 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -51,7 +51,7 @@ Gomega/Ginkgo tests are preferred, but other style of tests are also welcome. ## Documentation guidelines The markdown documentation is aimed to be browsed on GitHub, but it also on the aggregated [FLP documentation](https://alice-flp.docs.cern.ch) based on [MkDocs](https://www.mkdocs.org/). -Consequently, any changes in the documentation structure should be reflected in the Table of Contents in the main README.md, as well as `mkdocs.yml` and `mkdocs.yml`. +Consequently, any changes in the documentation structure should be reflected in the Table of Contents in the main README.md, as well as `mkdocs.yml` and `mkdocs-dev.yml`. The AliECS MkDocs documentation is split into two aforementioned files to follow the split between "Products" and "Developers" tabs in the FLP documentation. The `mkdocs-dev.yml` uses a symlink `aliecs-dev` to `aliecs` directory to avoid complaints about duplicated site names.