|
| 1 | +# Contributing |
| 2 | + |
| 3 | +Thank you for your interest in contributing to the project. |
| 4 | +This document provides guidelines and information to help you contribute effectively. |
| 5 | + |
| 6 | +If you are not in contact with the project maintainers, please reach out to them before proposing any changes. |
| 7 | +We use JIRA for issue tracking and project management. |
| 8 | +This software component is part of the O²/FLP project in the ALICE experiment. |
| 9 | + |
| 10 | +## Getting started |
| 11 | + |
| 12 | +Getting acquainted with the introduction chapters is absolutely essential, glossing over the whole documentation is highly advised. |
| 13 | + |
| 14 | +A development environment setup will be necessary for compiling binaries and running unit tests, see [Building](/docs/building.md) for details. |
| 15 | + |
| 16 | +## Testing |
| 17 | + |
| 18 | +Run unit tests in the Control project with `make test`. |
| 19 | +To obtain coverage reports, run `make coverage`. |
| 20 | + |
| 21 | +Typically, you will also want to prepare a test setup in form of an [FLP suite deployment](https://alice-flp.docs.cern.ch/system-configuration/utils/o2-flp-setup/) on a virtual machine. |
| 22 | +Since AliECS interacts with many other project components, the last testing step might involve replacing the modified binary on the test VM and trying out the new functionality or the fix. |
| 23 | + |
| 24 | +The binaries are installed at `/opt/o2/bin`. |
| 25 | + |
| 26 | +`o2-aliecs-core` and `o2-apricot` are ran as systemd services, so you will need to restart them after replacing the binary. |
| 27 | + |
| 28 | +`o2-aliecs-executor` is started by `mesos-slave` if it is not running already at environment creation. |
| 29 | +To make sure that the replaced binary is used, kill the running process (`pkill -f o2-aliecs-executor`). |
| 30 | + |
| 31 | +## Pull requests guidelines |
| 32 | + |
| 33 | +- Make sure your work has a corresponding JIRA ticket and it is assigned to yourself. |
| 34 | +Trivial PRs are acceptable without a ticket. |
| 35 | + |
| 36 | +- Work on your changes in your fork on a dedicated branch with a descriptive name. |
| 37 | + |
| 38 | +- Make focused, logically atomic commits with clear messages and descriptions explaining the design choices. |
| 39 | +Multiple commits per pull request are allowed. |
| 40 | +However, please make sure that the project can be built and the tests pass at any commit. |
| 41 | + |
| 42 | +- Commit message or description should include the JIRA ticket number |
| 43 | + |
| 44 | +- Add tests for your changes whenever possible. |
| 45 | +Gomega/Ginkgo tests are preferred, but other style of tests are also welcome. |
| 46 | + |
| 47 | +- Add documentation for new features. |
| 48 | + |
| 49 | +- Your contribution will be reviewed by the project maintainers once the PR is marked as ready for review. |
0 commit comments