Contribute own module#
This guide walks you through contributing a new platform module to Eclipse S-CORE end-to-end. As a running example it uses the platform info service and its client, the platform info consumer, from the reference integration. The example shows how to compose existing S-CORE platform modules into new functionality:
The platform info service offers the mw::com service
score/platform/info. Its fieldplatform_inforeports the S-CORE version the platform was built from, i.e. the version or commit of everytarget_swmodule inknown_good.json, sealed with a CRC32 checksum frombaselibs.The platform info consumer finds the service via mw::com service discovery, checks the CRC32 and compares the reported version with the version it was built for. It runs as the showcase Platform Version Check and is verified by a platform integration test.
In the showcase S-CORE Platform Run, the launch manager of
score_lifecyclestarts the service as a platform daemon and the consumer as one of the test applications. All of them log via mw::log, and the logs are collected as DLT and analyzed by a platform integration test.
Service and consumer use three S-CORE modules: score_communication (mw::com), score_baselibs
(CRC32, argument handling) and score_logging (mw::log). This makes the example small enough to follow, but complete:
it covers the build, the documentation, the CI/CD workflows, the deployment onto the reference images,
automated tests and the collection of logs.
Note
The example lives inside the reference integration (deploy/platform_info, showcases/standalone and
showcases/platform_run), whereas your own module lives in its own repository. The steps are the same;
where they differ, this guide shows both. The example replaces the former scrample demo application.
By the end of this section you will have:
Created a properly structured S-CORE module from scratch.
Generated documentation from source and integrated it into the platform docs.
Built the module with Bazel and verified it compiles cleanly.
Wired up CI/CD workflows so every change is automatically validated.
Plugged the module into the reference integration so it becomes part of the platform.
Collected and analyzed the logs of your application, on the console and as DLT.