build: integrate central S-CORE toolchain configuration - #502
build: integrate central S-CORE toolchain configuration#502srinivasugithub wants to merge 16 commits into
Conversation
License Check Results🚀 The license check job ran with the Bazel command: bazel run --lockfile_mode=error //:license-checkStatus: Click to expand output |
Integrates the S-CORE toolchain configuration from the eclipse-score/module_template repository into the score_lifecycle project. - Adopts the S-CORE Toolchains block unchanged in MODULE.bazel. - Adds score.bazelrc/score_toolchain.bazelrc unchanged from module_template. - Imports the central score_toolchain.bazelrc file via try-import in .bazelrc. - Refactors and simplifies .bazelrc profiles to leverage the central profiles (score-linux-x86_64, score-qnx-x86_64), removing redundant configurations. - Isolates repository-specific additions separate in MODULE.bazel and .bazelrc. - Adds TOOLCHAIN_INTEGRATION_REPORT.md detailing findings, differences, and candidates for future central standardizations.
ecca209 to
f767441
Compare
Signed-off-by: srinivasugithub <skd1cob@bosch.com>
|
Fixes #448 |
accept and agree the changes Co-authored-by: Daniel Thwaites <danth@danth.me> Signed-off-by: srinivasugithub <skd1cob@bosch.com>
- Adopt the central S-CORE Toolchains (DO NOT MODIFY) section unchanged. - Segregate repository-specific toolchain extensions (LLVM, QNX UTs). - Add git_overrides for toolchains_llvm and helly25_bzl to bypass local transparent proxy raw.githubusercontent.com 400 errors. - Adopt score.bazelrc/score_toolchain.bazelrc unchanged from module_template. - Refactor .bazelrc to inherit from score-linux-aarch64. - Synchronize MODULE.bazel.lock with all correct private registry checksums.
Signed-off-by: srinivasugithub <skd1cob@bosch.com>
2d5d0cd to
d1e16c6
Compare
|
Fixes #448 |
Globally suppress the Google Test start and end banners in TestRunner. This prevents a race condition in the integration test harness (ITF/DockerTarget's PID parser) where GTest's console output is interleaved on stdout before the wrapper's PID can be correctly parsed. Signed-off-by: srinivasugithub <skd1cob@bosch.com>
|
@srinivasugithub can you merge this with upstream main please, there are some conflicts and some suspicious changes like downgrade of docs as code. |
…figuration - Resolve conflicts in MODULE.bazel and MODULE.bazel.lock. - Prevent downgrade of score_docs_as_code (kept at 8.1.0). - Preserve module name 'score_lifecycle'. - Set dev_dependency = True for central S-CORE toolchains and extensions to avoid transitive resolution errors. Signed-off-by: srinivasugithub <skd1cob@bosch.com>
- Update quality/coverage/coverage.bazelrc to use the central `_score_common` configuration instead of the obsolete `toolchain_common` which was deleted during the toolchain migration. This fixes the failing "Collect coverage" check in CI. - Insert the blank line in MODULE.bazel required by `bazel mod tidy` to prevent the "Check Bazel module is tidy" check from failing in CI due to formatting mismatch. Signed-off-by: srinivasugithub <skd1cob@bosch.com>
|
Documentation preview for this pull request is available at: |
| int RunTests() | ||
| { | ||
| ::testing::GTEST_FLAG(output) = "xml:" + xmlPath(m_test_path); | ||
| ::testing::GTEST_FLAG(brief) = true; |
There was a problem hiding this comment.
What does this do? Is it relevant to this pull request?
There was a problem hiding this comment.
Prints only failures instead of hundreds of lines of text.
Great for CI/CD: Makes logs much smaller and easier to find errors quickly.
if you don't like, i will remove it
There was a problem hiding this comment.
🟡 Changes recommended
QNX IFS version mismatches break toolchain resolution, and AutoSD AArch64 lacks required common host toolchains.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Integrates centralized S-CORE Bazel toolchain configuration while retaining repository-specific profiles.
Changes:
- Adds central Linux, QNX, AutoSD, Elektrobit, and Rust toolchains.
- Refactors platform and coverage profiles to inherit shared configuration.
- Enables brief GoogleTest output.
File summaries
| File | Description |
|---|---|
.bazelrc |
Imports central configuration and simplifies platform profiles. |
MODULE.bazel |
Defines central and repository-specific toolchains. |
MODULE.bazel.lock |
Updates resolved toolchain dependencies. |
quality/coverage/coverage.bazelrc |
Migrates coverage to _score_common. |
score.bazelrc/score_toolchain.bazelrc |
Adds central toolchain profiles. |
tests/utils/test_helper/test_helper.hpp |
Enables brief test output. |
Review details
- Files reviewed: 4/6 changed files
- Comments generated: 5
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
|
||
| # Enable warnings and treat them as errors | ||
| # Import central S-CORE toolchain configuration | ||
| import %workspace%/score.bazelrc/score_toolchain.bazelrc |
| imagefs.toolchain( | ||
| name = "score_qnx_x86_64_ifs_toolchain", | ||
| sdp_to_import = "@score_qcc_x86_64_toolchain_pkg", | ||
| sdp_version = "8.0.4", |
| imagefs.toolchain( | ||
| name = "score_qnx_aarch64_ifs_toolchain", | ||
| sdp_to_import = "@score_qcc_aarch64_toolchain_pkg", | ||
| sdp_version = "8.0.4", |
| build:score-autosd-x86_64 --platforms=@score_bazel_platforms//:x86_64-linux-autosd10 | ||
| build:score-autosd-x86_64 --extra_toolchains=@score_autosd10_x86_64_toolchain//:x86_64-linux-autosd10 | ||
|
|
||
| build:score-autosd-aarch64 --force_pic |
| version = "12.2.0", | ||
| ) | ||
|
|
||
| ## Elektobit Toolchains |
MaciejKaszynski
left a comment
There was a problem hiding this comment.
Seems we are not passing the QNX builds with this
ERROR: /home/runner/work/lifecycle/lifecycle/score/launch_manager/src/daemon/src/configuration/BUILD:49:11: While resolving toolchains for target //score/launch_manager/src/daemon/src/configuration:recovery_action_config (f31458d): invalid registered toolchain '@score_qnx_x86_64_ifs_toolchain//:ifs-x86_64-qnx-sdp_8.0.0': no such target '@@score_rules_imagefs++imagefs+score_qnx_x86_64_ifs_toolchain//:ifs-x86_64-qnx-sdp_8.0.0': target 'ifs-x86_64-qnx-sdp_8.0.0' not declared in package '' defined by /home/runner/.bazel/external/score_rules_imagefs++imagefs+score_qnx_x86_64_ifs_toolchain/BUILD (did you mean ifs-x86_64-qnx-sdp_8.0.4?)
I'm not sure of the source of the error, but seems like something to do with building the qnx image? https://github.com/eclipse-score/lifecycle/blob/14bb6cf697f8b4883c65de0514c7228dd0eff8e5/tests/utils/environments/x86_64-qnx/BUILD
📥 S-CORE Toolchain Configuration Integration
This PR integrates the central S-CORE toolchain configuration from the reference
eclipse-score/module_templaterepository into thescore_lifecyclerepository.Our integration ensures that all central toolchains and configurations are adopted 100% unchanged and are elegantly separated from repository-specific additions and overrides.
🌟 Key Changes
MODULE.bazelAlignment:score_gcc_aarch64_toolchainseparately under a clearly defined "Repository-specific toolchain additions" section.score_qcc_aarch64_toolchain_pkginside our repository-specific section ofMODULE.bazel.Imported Central
.bazelrcConfiguration:score.bazelrc/score_toolchain.bazelrcexactly matching the reference file..bazelrcviatry-import.Optimized
.bazelrcprofiles:x86_64-linuxto cleanly inherit from--config=score-linux-x86_64.x86_64-qnxto cleanly inherit from--config=score-qnx-x86_64.toolchain_commonblock.arm64-linuxandarm64-qnxas separate repository-specific additions (inheriting from_score_common).📊 Configuration Comparison & Gaps Identified
MODULE.bazelMODULE.bazelMODULE.bazel🔮 Identified Candidates for Future Centralization
We identified these repository-specific components that could be candidates for future S-CORE integration into
module_template:ASAN,TSAN,UBSAN, andLSANsetup is robust and general enough to be centralized.🧪 Verification Done
//examples/cpp_lifecycle_appusing--config=x86_64-linuxon host.//score/launch_manager/src/daemon/src/common:identifier_hash_UTwith--config=x86_64-linux.