- Thank you for your interest in contributing to the Communication Module of the Eclipse SCORE project!
- This guide will walk you through the necessary steps to get started with development, adhere to our standards, and successfully submit your contributions.
Before making any contributions, you must sign the Eclipse Contributor Agreement (ECA). This is a mandatory requirement for all contributors to Eclipse projects.
Sign the ECA here: https://www.eclipse.org/legal/ECA.php
Pull requests from contributors who have not signed the ECA will not be accepted.
To ensure a smooth contribution process, please follow the steps below:
- Fork the repository to your GitHub account.
- Create a feature branch from your fork:
git checkout -b feature/your-feature-name
- Write clean and modular code, adhering to:
- C++17 standard
- Google C++ Style Guide
- Add tests for any new functionality.
- Ensure all tests pass before submitting:
bazel test //... - Open a Pull Request from your feature branch to the
mainbranch of the upstream repository.- Provide a clear title and description of your changes.
- Reference any related issues.
To build and test the Communication Module, follow the steps below from the project root:
# Build all targets
bazel build //...
# Run all tests
bazel test //...Prerequisites: Install Bazelisk to manage Bazel versions. See Bazel tutorial for details.
For Linting the Code following solutions are available:
Copyright Checker:
# Check Sources
bazel run //:copyright.check
# Fix Sources
bazel run //:copyright.fixThe Communication Module includes extensive tests. Use the following commands:
bazel test //...bazel test //score/mw/com/impl:all
bazel test //score/mw/com/message_passing:all- Unit Tests: Component-level testing
- Integration Tests: Cross-component interactions
- Performance Tests: Latency and throughput benchmarks
- Safety Tests: ASIL-B compliance verification
For project details, documentation, and support resources, please refer to the main README.md.
Thank you for contributing to the Eclipse SCORE Communication Module!