QNX Toolchain setup for eclipse-score-logging#27
Conversation
License Check Results🚀 The license check job ran with the Bazel command: bazel run //:license-checkStatus: Click to expand output |
|
The created documentation from the pull request is available at: docu-html |
rmaddikery
left a comment
There was a problem hiding this comment.
Why is scripts/internal/qnx_creds.py an empty file?
pawelrutkaq
left a comment
There was a problem hiding this comment.
please add qnx builds jobs from reusable workflows in score.
| use_repo(toolchains_qnx, "toolchains_qnx_qcc") | ||
| use_repo(toolchains_qnx, "toolchains_qnx_ifs") | ||
|
|
||
| register_toolchains("@toolchains_qnx_qcc//:qcc_x86_64") |
There was a problem hiding this comment.
shall never be registered
just change the permission of qnx_cred file. Yes, it’s needed: qnx_creds.py must be executable so Bazel can run it as --credential_helper during the QNX SDP fetch from qnx.com otherwise downloads fail |
@Rahul-Sutariya |
We shall sue reusable workflows. https://github.com/eclipse-score/cicd-workflows |
|
Btw this has to go along with new rust toolchain for toolchain_rust .0.3.0 if you want to add x86_64 QNX |
Done: Added QNX builds using reusable workflows from eclipse-score/cicd-workflows. Both x86_64 and arm64 jobs are included |
31b179e to
ef3a60b
Compare
ef3a60b to
92a3ca3
Compare
rmaddikery
left a comment
There was a problem hiding this comment.
CI QNX8 Build job confirms build with qnx8 toolchain integration:
https://github.com/eclipse-score/logging/actions/runs/21205455825/job/61000746490?pr=27
- Add qnx_x86_64 and qnx_arm64 build configurations in .bazelrc - Register QNX QCC toolchains for x86_64 and aarch64 in MODULE.bazel - Make qnx_creds.py executable for credential helper functionality Issue: SWP-235282
- Add common:qnx base config to eliminate duplication. - Set qnx_creds.py as executable for credential helper Issue: SWP-235282
- Add QNX build configs and CI workflow using reusable workflows
- Add copyright header to QNX CI workflow file
Configure QNX toolchains for x86_64 and arm64 platforms with S-CORE reusable workflows. Enable Rust support for arm64-qnx.
5d1f9a2 to
345dc8f
Compare
pawelrutkaq
left a comment
There was a problem hiding this comment.
I am pretty sur it does not work at all. Ie:
pawel@pawel-VirtualBox ~/qorix/repos/logging (pr-27) $ bazel build --config x86_64-qnx //...
WARNING: For repository 'rules_python', the root module requires module version rules_python@1.4.1, but got rules_python@1.5.1 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'bazel_skylib', the root module requires module version bazel_skylib@1.7.1, but got bazel_skylib@1.8.1 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'rules_cc', the root module requires module version rules_cc@0.1.1, but got rules_cc@0.2.8 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'aspect_rules_lint', the root module requires module version aspect_rules_lint@1.0.3, but got aspect_rules_lint@1.10.2 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'buildifier_prebuilt', the root module requires module version buildifier_prebuilt@7.3.1, but got buildifier_prebuilt@8.2.0.2 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'googletest', the root module requires module version googletest@1.17.0.bcr.1, but got googletest@1.17.0.bcr.2 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
ERROR: /home/pawel/qorix/repos/logging/BUILD:48:5: While resolving toolchains for target //:ide_support (05966f3): No matching toolchains found for types:
@@bazel_tools//tools/python:toolchain_type
To debug, rerun with --toolchain_resolution_debug='@@bazel_tools//tools/python:toolchain_type'
For more information on platforms or toolchains see https://bazel.build/concepts/platforms-intro.
Use --verbose_failures to see the command lines of failed build steps.
ERROR: Analysis of target '//:ide_support' failed; build aborted
INFO: Elapsed time: 0.983s, Critical Path: 0.05s
INFO: 2 processes: 2 internal.
What's more I don't see usage feroceen toolchain, old one does not support x86-64 QNX. Did you tried to run it locally, if yes can you give me commend to recheck ? The CI does not run your changes at all until they are not merged to master
| @@ -0,0 +1,49 @@ | |||
| # ******************************************************************************* | |||
There was a problem hiding this comment.
Also please do not add new file for QNX8 build, please override old one or clean up.
- Upgrade to score_toolchains_rust@0.4.0 for x86_64 QNX Rust support - Update workflow to build both x86_64 and arm64 QNX - Exclude Python targets from QNX builds
Thanks for the review. I addressed the //:ide_support Python toolchain failure by excluding //:ide_support, //:starpls_server, and //:docs (same in CI). I also updated the Rust toolchain to the Ferrocene-based version that supports x86_64 QNX and configured it via .bazelrc --extra_toolchains. |
We shall make bazel build --config=x86_64-qnx //... working. I think the problem is that you are missing dev_dep toolchain registration for python tooling like here https://github.com/eclipse-score/baselibs_rust/blob/main/MODULE.bazel#L93 |
Thanks for the reference. I've verified our Python toolchain registration already matches baselibs_rust exactly (MODULE.bazel lines 80-85 with dev_dependency = True). |
See: https://github.com/eclipse-score/baselibs_rust/blob/main/.github/workflows/qnx.yml#L12 bazel-target: '//src/...' |
In other repos they work so not really sure why it would not work here ? (is baselib_rust) |
| build:build_qnx8 --extra_toolchains=@toolchains_qnx_ifs//:ifs_x86_64 | ||
| build:build_qnx8 --extra_toolchains=@toolchains_qnx_ifs//:ifs_aarch64 | ||
| build:build_qnx8 --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_aarch64_unknown_nto_qnx800 | ||
|
|
There was a problem hiding this comment.
we shall clean this up, either we use
common:x86_64-qnx --config=qnx_x86_64
common:arm64-qnx --config=qnx_arm64
or build_qnx8
rmaddikery
left a comment
There was a problem hiding this comment.
@pawelrutkaq Thanks, Please merge.
|
This is still obsolete setup, as there is new toolchain score_basel_cpp_toolchain. |
* QNX Toolchain setup for eclipse-score-logging - Add qnx_x86_64 and qnx_arm64 build configurations in .bazelrc - Register QNX QCC toolchains for x86_64 and aarch64 in MODULE.bazel - Make qnx_creds.py executable for credential helper functionality Issue: SWP-235282 * QNX Toolchain setup for eclipse-score-logging - Add common:qnx base config to eliminate duplication. - Set qnx_creds.py as executable for credential helper Issue: SWP-235282 * QNX Toolchain setup for eclipse-score-logging - Add QNX build configs and CI workflow using reusable workflows * QNX Toolchain setup for eclipse-score-logging - Add copyright header to QNX CI workflow file * Add copyright header to QNX workflow file * Add QNX build support with reusable CI workflows Configure QNX toolchains for x86_64 and arm64 platforms with S-CORE reusable workflows. Enable Rust support for arm64-qnx. * Add QNX build support with Ferrocene Rust toolchains - Upgrade to score_toolchains_rust@0.4.0 for x86_64 QNX Rust support - Update workflow to build both x86_64 and arm64 QNX - Exclude Python targets from QNX builds * Scope QNX CI builds to production code following baselibs_rust pattern
Notes for Reviewer
Pre-Review Checklist for the PR Author
Checklist for the PR Reviewer
Post-review Checklist for the PR Author
References
Closes #