Skip to content

UT‐Core: Concept Overview: UT‐Core and Engineering Suites Integration

Ulrond edited this page Nov 11, 2024 · 2 revisions

Versioning and Synchronization

UT-Core and UT-Control components are versioned using static releases and tags. This consistent versioning allows releases to be synchronized with UT-Core and UT-Control builds, ensuring compatibility across various environments. Version alignment can be managed either by directly integrating it into the component build system or through recipe files that maintain compatibility during builds

Purpose of UT-Core Dynamic Cloning and Building

UT-Core dynamically clones and builds its dependencies based on the latest specifications. This process supports ongoing improvements, such as feature additions, while providing flexibility to meet the specific needs of each release. This approach allows UT-Core to remain responsive to evolving requirements without manual updates or dependency conflicts.

Engineering Suites and Build Systems

The engineering suites are designed to operate independently of framework build systems (e.g. Yocto, Buildroot). By keeping engineering suites separate, pre-commit testing can occur independently, enabling engineers to verify code locally in a controlled environment before it reaches a repository. This approach also allows vendors to test their components on development boards of their choosing, without dependence on specific hardware or build framework.

Testing Workflow and Pre-commit Verification

The intended testing workflow is pre-commit, meaning that all code undergoes thorough local testing before it is committed. This workflow ensures:

  • Engineers verify and debug their code locally with full control over testing environments.
  • Vendors have the flexibility to test their HAL components on any compatible development board, independent of platform requirements.

Multi-platform Compatibility and Version Management

Managing different versions of vendor code across platforms can introduce complexity. To address this, each component, including testing suites, is designed with an independent release cadence, allowing updates without dependencies affecting other components. This independence allows for flexibility across environments and simplifies multi-platform compatibility.

Future Distribution as Installable Binaries

Looking forward, the engineering suites are expected to be delivered as binaries, enabling installation via package managers such as opkg. This approach will allow teams to easily install specific versions of testing suites to match the version of each component, reducing manual dependency management and ensuring compatibility.

Component Version Control and Build Automation

Component versions are managed through automated builds. Engineers can clone the required header files and trigger the build with a simple command:

 ./build_ut.sh TARGET=arm

This process automatically pulls the correct versions of dependencies and components, creating a consistent and compatible build environment without requiring manual version tracking.

Clone this wiki locally