From 60df4b74121fe838cf7b38b48afde0c5c1137b70 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Fri, 14 Nov 2025 23:27:56 +0200 Subject: [PATCH 01/18] Update libcanard reference --- cmake/modules/Findlibcanard.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/modules/Findlibcanard.cmake b/cmake/modules/Findlibcanard.cmake index b280578fc..fccaaeb09 100644 --- a/cmake/modules/Findlibcanard.cmake +++ b/cmake/modules/Findlibcanard.cmake @@ -9,7 +9,7 @@ include(FetchContent) set(libcanard_GIT_REPOSITORY "https://github.com/OpenCyphal/libcanard.git") -set(libcanard_GIT_TAG "v4") +set(libcanard_GIT_TAG "master") # TODO: update to a release tag FetchContent_Declare( libcanard @@ -74,4 +74,4 @@ add_project_library( FPIC ) -endif() \ No newline at end of file +endif() From c1cc3240e1eacc5dc5ce57fc62e1b5a90ea78dd9 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Fri, 14 Nov 2025 23:42:27 +0200 Subject: [PATCH 02/18] add NO_STATIC_ANALYSIS cache variable --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7f81e2e9d..ced822ee8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,7 @@ project(libcyphal # Use -DNO_STATIC_ANALYSIS=1 to suppress static analysis. # If not suppressed, the tools used here shall be available, otherwise the build will fail. +option(NO_STATIC_ANALYSIS "Disable static analysis (e.g. clang-tidy). If OFF, the tools must be available." OFF) if (NOT NO_STATIC_ANALYSIS) # clang-tidy (separate config files per directory) find_program(clang_tidy NAMES clang-tidy) From 70e0432bf1f89573e5956a627729f370028bbf54 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sat, 15 Nov 2025 00:08:21 +0200 Subject: [PATCH 03/18] Findcavl.cmake --- cmake/modules/Findcavl.cmake | 28 ++++++++++++++++++++++++++++ cmake/modules/Findcyphal.cmake | 1 + cmake/modules/Findlibcanard.cmake | 1 + 3 files changed, 30 insertions(+) create mode 100644 cmake/modules/Findcavl.cmake diff --git a/cmake/modules/Findcavl.cmake b/cmake/modules/Findcavl.cmake new file mode 100644 index 000000000..87ececc1d --- /dev/null +++ b/cmake/modules/Findcavl.cmake @@ -0,0 +1,28 @@ +# +# Copyright (C) OpenCyphal Development Team +# Copyright Amazon.com Inc. or its affiliates. +# SPDX-License-Identifier: MIT +# + +include(FetchContent) + +set(cavl_GIT_REPOSITORY "https://github.com/pavel-kirienko/cavl") +set(cavl_GIT_TAG "c-2.0.0") + +FetchContent_Declare( + cavl + GIT_REPOSITORY ${cavl_GIT_REPOSITORY} + GIT_TAG ${cavl_GIT_TAG} +) +FetchContent_GetProperties(cavl) +if (NOT cavl_POPULATED) + FetchContent_Populate(cavl) +endif () + + +#add_library(cavl2_c INTERFACE) +#target_include_directories(cavl2_c INTERFACE "${cavl_SOURCE_DIR}/c") +add_project_library( + NAME cavl2_c + HEADER_PATH "${cavl_SOURCE_DIR}/c" +) diff --git a/cmake/modules/Findcyphal.cmake b/cmake/modules/Findcyphal.cmake index 9ea6cbc37..4795e8010 100644 --- a/cmake/modules/Findcyphal.cmake +++ b/cmake/modules/Findcyphal.cmake @@ -3,6 +3,7 @@ if (NOT TARGET cyphal) include(ProjectLibrary) +find_package(cavl REQUIRED) find_package(libcanard REQUIRED) find_package(libudpard REQUIRED) find_package(cetl REQUIRED) diff --git a/cmake/modules/Findlibcanard.cmake b/cmake/modules/Findlibcanard.cmake index fccaaeb09..fcbe0242e 100644 --- a/cmake/modules/Findlibcanard.cmake +++ b/cmake/modules/Findlibcanard.cmake @@ -73,5 +73,6 @@ add_project_library( STATIC FPIC ) +target_link_libraries(canard PRIVATE cavl2_c) endif() From c9db140b4bd3d77a21c8bb1664e2ba5b9ef48ae0 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sat, 15 Nov 2025 00:21:30 +0200 Subject: [PATCH 04/18] Do not attempt to use clang-format if NO_STATIC_ANALYSIS is enabled --- cmake/modules/Findcyphal.cmake | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/cmake/modules/Findcyphal.cmake b/cmake/modules/Findcyphal.cmake index 4795e8010..083547f39 100644 --- a/cmake/modules/Findcyphal.cmake +++ b/cmake/modules/Findcyphal.cmake @@ -24,23 +24,19 @@ add_project_library( ) find_package(clangformat) - -if (clangformat_FOUND) - -# define a dry-run version that we always run. -enable_clang_format_check_for_directory( - DIRECTORY ${LIBCYPHAL_INCLUDE} - GLOB_PATTERN "**/*.hpp" - ADD_TO_ALL -) - -# provide an in-place format version as a helper that must be manually run. -enable_clang_format_check_for_directory( - DIRECTORY ${LIBCYPHAL_INCLUDE} - GLOB_PATTERN "**/*.hpp" - FORMAT_IN_PLACE -) - +if (clangformat_FOUND AND NOT NO_STATIC_ANALYSIS) + # define a dry-run version that we always run. + enable_clang_format_check_for_directory( + DIRECTORY ${LIBCYPHAL_INCLUDE} + GLOB_PATTERN "**/*.hpp" + ADD_TO_ALL + ) + # provide an in-place format version as a helper that must be manually run. + enable_clang_format_check_for_directory( + DIRECTORY ${LIBCYPHAL_INCLUDE} + GLOB_PATTERN "**/*.hpp" + FORMAT_IN_PLACE + ) endif() # +---------------------------------------------------------------------------+ From 3fe14901aee837e44d809e92a9ad598a0d03d02f Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sat, 15 Nov 2025 00:31:16 +0200 Subject: [PATCH 05/18] readme --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index 06c946569..70fa6911d 100644 --- a/README.md +++ b/README.md @@ -12,3 +12,16 @@ Portable reference implementation of the [Cyphal protocol stack](https://opencyphal.org) in C++ for embedded systems, Linux, and POSIX-compliant RTOSs. Cyphal is a lightweight protocol designed for reliable communication in aerospace and robotic applications over robust vehicular networks. + +## Building + +You don't need to build LibCyphal to use it since this is a header-only library. You will need to build the transport libraries though (libcanard, libudpard, etc), which is covered in their respective documentation. + +If you want to build libcyphal for development purposes, you may use containerized toolchains as covered in CONTRIBUTING.md. Otherwise, you may want to disable static analysis: + +```shell +mkdir build +cd build +cmake .. -DNO_STATIC_ANALYSIS=1 +make -j16 +``` From f02cc15904a4d7f243ff837a6f3ce606d79a16b0 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sat, 15 Nov 2025 00:40:04 +0200 Subject: [PATCH 06/18] -Wno-error=attributes --- README.md | 4 +++- cmake/compiler_flag_sets/default.cmake | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 70fa6911d..a1ebec217 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Cyphal is a lightweight protocol designed for reliable communication in aerospac ## Building -You don't need to build LibCyphal to use it since this is a header-only library. You will need to build the transport libraries though (libcanard, libudpard, etc), which is covered in their respective documentation. +**You don't need to build LibCyphal to use it** since this is a header-only library. You will need to build the transport libraries though (libcanard, libudpard, etc), which is covered in their respective documentation. If you want to build libcyphal for development purposes, you may use containerized toolchains as covered in CONTRIBUTING.md. Otherwise, you may want to disable static analysis: @@ -25,3 +25,5 @@ cd build cmake .. -DNO_STATIC_ANALYSIS=1 make -j16 ``` + +If you're facing obscure DSDL compilation issues, unset `CYPHAL_PATH`. diff --git a/cmake/compiler_flag_sets/default.cmake b/cmake/compiler_flag_sets/default.cmake index f0774e9dd..fc30ddbe6 100644 --- a/cmake/compiler_flag_sets/default.cmake +++ b/cmake/compiler_flag_sets/default.cmake @@ -32,6 +32,7 @@ list(APPEND C_FLAG_SET "-Wswitch-enum" "-Wtype-limits" "-Wno-error=array-bounds" + "-Wno-error=attributes" ) set(CXX_FLAG_SET ${C_FLAG_SET}) From 4587d7ac756f600bd4379fa65e2629eede8a683a Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sat, 15 Nov 2025 14:15:25 +0200 Subject: [PATCH 07/18] Update libcanard API (v4 is not yet stable) --- include/libcyphal/transport/can/can_transport_impl.hpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/include/libcyphal/transport/can/can_transport_impl.hpp b/include/libcyphal/transport/can/can_transport_impl.hpp index 9a6e2c30b..58ff3c8b3 100644 --- a/include/libcyphal/transport/can/can_transport_impl.hpp +++ b/include/libcyphal/transport/can/can_transport_impl.hpp @@ -337,7 +337,8 @@ class TransportImpl final : private TransportDelegate, public ICanTransport static_cast(deadline_us.count()), &metadata, {payload.size(), payload.data()}, // NOSONAR cpp:S5356 - static_cast(now_us.count())); + static_cast(now_us.count()), + &tx_frames_expired_); cetl::optional failure = tryHandleTransientCanardResult(media, result); @@ -691,7 +692,9 @@ class TransportImpl final : private TransportDelegate, public ICanTransport auto* const frame_handler_ptr = static_cast(user_reference); // NOSONAR cpp:S5356, cpp:S5357 return (*frame_handler_ptr)(deadline, *frame); - }); + }, + &tx_frames_expired_, + &tx_frames_failed_); } if ((result == 0) && (media.canard_tx_queue().size == 0)) @@ -781,6 +784,8 @@ class TransportImpl final : private TransportDelegate, public ICanTransport TransientErrorHandler transient_error_handler_; Callback::Any configure_filters_callback_; SessionTree svc_response_rx_session_nodes_; + std::uint64_t tx_frames_expired_ = 0; + std::uint64_t tx_frames_failed_ = 0; }; // TransportImpl From d55e1b42aa12ff924e455bc51766ba7fd9a456e7 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sat, 15 Nov 2025 15:20:23 +0200 Subject: [PATCH 08/18] Use cavl v2.1 --- cmake/modules/Findcavl.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/modules/Findcavl.cmake b/cmake/modules/Findcavl.cmake index 87ececc1d..67b833e39 100644 --- a/cmake/modules/Findcavl.cmake +++ b/cmake/modules/Findcavl.cmake @@ -7,7 +7,7 @@ include(FetchContent) set(cavl_GIT_REPOSITORY "https://github.com/pavel-kirienko/cavl") -set(cavl_GIT_TAG "c-2.0.0") +set(cavl_GIT_TAG "c-2.1.0") FetchContent_Declare( cavl From 8c2cdb6934bcc3bee08aa37c36657349fce5774a Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sat, 15 Nov 2025 20:33:50 +0200 Subject: [PATCH 09/18] update cavl population --- cmake/modules/Findcavl.cmake | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/cmake/modules/Findcavl.cmake b/cmake/modules/Findcavl.cmake index 67b833e39..3c0fe4b76 100644 --- a/cmake/modules/Findcavl.cmake +++ b/cmake/modules/Findcavl.cmake @@ -5,23 +5,39 @@ # include(FetchContent) - set(cavl_GIT_REPOSITORY "https://github.com/pavel-kirienko/cavl") set(cavl_GIT_TAG "c-2.1.0") FetchContent_Declare( cavl - GIT_REPOSITORY ${cavl_GIT_REPOSITORY} - GIT_TAG ${cavl_GIT_TAG} + GIT_REPOSITORY ${cavl_GIT_REPOSITORY} + GIT_TAG ${cavl_GIT_TAG} ) -FetchContent_GetProperties(cavl) -if (NOT cavl_POPULATED) - FetchContent_Populate(cavl) -endif () +# +--------------------------------------------------------------------------------------------------------------------+ +# Because we use FetchContent_Populate to specify a source directory other than the default we have +# to manually manage the _POPULATED, _SOURCE_DIR, and _BINARY_DIR +# variables normally set by this method. +# See https://cmake.org/cmake/help/latest/module/FetchContent.html?highlight=fetchcontent#command:fetchcontent_populate +# for more information. +# This is not ideal, to copy-and-paste this code, but it is the only way to redirect fetch content to an in-source +# directory. An upstream patch to cmake is needed to fix this. +get_property(cavl_POPULATED GLOBAL PROPERTY cavl_POPULATED) +if(NOT cavl_POPULATED) + cmake_path(APPEND CETLVAST_EXTERNAL_ROOT "cavl" OUTPUT_VARIABLE LOCAL_cavl_SOURCE_DIR) + if (NOT ${FETCHCONTENT_FULLY_DISCONNECTED}) + FetchContent_Populate( + cavl + SOURCE_DIR ${LOCAL_cavl_SOURCE_DIR} + GIT_REPOSITORY ${cavl_GIT_REPOSITORY} + GIT_TAG ${cavl_GIT_TAG} + ) + else() + set(cavl_SOURCE_DIR ${LOCAL_cavl_SOURCE_DIR}) + endif() + set_property(GLOBAL PROPERTY cavl_POPULATED true) +endif() -#add_library(cavl2_c INTERFACE) -#target_include_directories(cavl2_c INTERFACE "${cavl_SOURCE_DIR}/c") add_project_library( NAME cavl2_c HEADER_PATH "${cavl_SOURCE_DIR}/c" From 74abc45a7bbe4a76899ae38b1dc36ff362cb3929 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sat, 15 Nov 2025 21:24:26 +0200 Subject: [PATCH 10/18] readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a1ebec217..2fafc7f9d 100644 --- a/README.md +++ b/README.md @@ -26,4 +26,4 @@ cmake .. -DNO_STATIC_ANALYSIS=1 make -j16 ``` -If you're facing obscure DSDL compilation issues, unset `CYPHAL_PATH`. +If you're facing obscure DSDL compilation issues, ensure you have Nunavut installed and unset `CYPHAL_PATH`. From 2ab462a22d4131fa8f7b28cb0bb5ca3c99c4c8bc Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sat, 15 Nov 2025 21:34:58 +0200 Subject: [PATCH 11/18] update ci deps --- .github/workflows/sonar.yml | 6 +++--- .github/workflows/tests.yml | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml index 530e1e1ce..166a01785 100644 --- a/.github/workflows/sonar.yml +++ b/.github/workflows/sonar.yml @@ -17,14 +17,14 @@ jobs: runs-on: ubuntu-latest container: ghcr.io/opencyphal/toolshed:ts24.4.3 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - name: get nunavut run: | pip install --break-system-packages git+https://github.com/OpenCyphal/nunavut.git@3.0.preview - name: Install sonar-scanner and build-wrapper - uses: SonarSource/sonarcloud-github-c-cpp@v2 + uses: SonarSource/sonarcloud-github-c-cpp@v3 - name: Run tests env: GTEST_COLOR: yes @@ -43,7 +43,7 @@ jobs: cmake --build . --target test/unittest/coverage.xml cmake --build . --target docs/examples/coverage.xml - name: upload-artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: Coverage-14-gcc path: | diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f3cf995a5..8ed850d5b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest container: ghcr.io/opencyphal/toolshed:ts24.4.3 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Cache ext modules id: libcyphal-ext uses: actions/cache@v4 @@ -59,7 +59,7 @@ jobs: std: 14 toolchain: gcc steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Cache ext modules id: libcyphal-ext uses: actions/cache@v4 @@ -86,7 +86,7 @@ jobs: if: ${{ runner.debug == '1' }} run: ls -lAhR build/ - name: upload-artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: ${{ matrix.build_flavor }}-${{ matrix.std }}-${{ matrix.toolchain }} path: | @@ -104,7 +104,7 @@ jobs: container: ghcr.io/opencyphal/toolshed:ts24.4.3 needs: [warmup] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Cache ext modules id: libcyphal-ext uses: actions/cache@v4 @@ -129,12 +129,12 @@ jobs: uses: actions/configure-pages@v5 - name: Upload docs if: ${{ github.event_name != 'pull_request' }} - uses: actions/upload-pages-artifact@v3 + uses: actions/upload-pages-artifact@v4 with: path: "build/docs/html/" - name: upload-pr-docs if: ${{ github.event_name == 'pull_request' }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: pr-docs path: "build/docs/html/" From 33cc793b83e3308994bb637f2b4d057be85640ac Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sat, 15 Nov 2025 21:57:56 +0200 Subject: [PATCH 12/18] homepage --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ced822ee8..4f33aade5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ include(cmake/CMakeCommon.cmake REQUIRED) project(libcyphal VERSION ${LIBCYPHAL_VERSION} LANGUAGES CXX C - HOMEPAGE_URL https://github.com/OpenCyphal-Garage/libcyphal + HOMEPAGE_URL https://github.com/OpenCyphal/libcyphal ) # Use -DNO_STATIC_ANALYSIS=1 to suppress static analysis. From 95fccf08cac05205a580f5aeadc1eb925c4a9be2 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sat, 15 Nov 2025 21:59:59 +0200 Subject: [PATCH 13/18] hmm --- .github/workflows/sonar.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml index 166a01785..faf6d0bca 100644 --- a/.github/workflows/sonar.yml +++ b/.github/workflows/sonar.yml @@ -74,6 +74,7 @@ jobs: --define sonar.cfamily.compile-commands="build/compile_commands.json" --define sonar.cfamily.reportingCppStandardOverride=c++14 --define sonar.coverageReportPaths="build/test/unittest/coverage.xml,build/docs/examples/coverage.xml" + --define sonar.cfamily.gcov.reportsPath=build/test/unittest/coverage.xml --define sonar.issue.ignore.multicriteria=r1 --define sonar.issue.ignore.multicriteria.r1.ruleKey=cpp:S3230 --define sonar.issue.ignore.multicriteria.r1.resourceKey=** From 7ce16d0adcc325256092f917b670ba6bcf710ef1 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sat, 15 Nov 2025 22:15:04 +0200 Subject: [PATCH 14/18] hmm --- .github/workflows/sonar.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml index faf6d0bca..166a01785 100644 --- a/.github/workflows/sonar.yml +++ b/.github/workflows/sonar.yml @@ -74,7 +74,6 @@ jobs: --define sonar.cfamily.compile-commands="build/compile_commands.json" --define sonar.cfamily.reportingCppStandardOverride=c++14 --define sonar.coverageReportPaths="build/test/unittest/coverage.xml,build/docs/examples/coverage.xml" - --define sonar.cfamily.gcov.reportsPath=build/test/unittest/coverage.xml --define sonar.issue.ignore.multicriteria=r1 --define sonar.issue.ignore.multicriteria.r1.ruleKey=cpp:S3230 --define sonar.issue.ignore.multicriteria.r1.resourceKey=** From 30f3defce7d87e38bfe6ca9bd6a2ea41f9d91ee3 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sat, 15 Nov 2025 22:20:57 +0200 Subject: [PATCH 15/18] upgrade deprecated sonar scanner action --- .github/workflows/sonar.yml | 47 +++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml index 166a01785..fdf25ae4c 100644 --- a/.github/workflows/sonar.yml +++ b/.github/workflows/sonar.yml @@ -23,8 +23,8 @@ jobs: - name: get nunavut run: | pip install --break-system-packages git+https://github.com/OpenCyphal/nunavut.git@3.0.preview - - name: Install sonar-scanner and build-wrapper - uses: SonarSource/sonarcloud-github-c-cpp@v3 + - name: Install build-wrapper + uses: SonarSource/sonarqube-scan-action/install-build-wrapper@v6 - name: Run tests env: GTEST_COLOR: yes @@ -53,27 +53,28 @@ jobs: build/*/**/gcovr_html/*.* if-no-files-found: error - name: Run sonar-scanner + uses: SonarSource/sonarqube-scan-action@v6 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: > - sonar-scanner - -X - --define sonar.organization=opencyphal-garage - --define sonar.projectKey=OpenCyphal-Garage_libcyphal - --define sonar.projectName=libcyphal - --define sonar.projectVersion=1.0 - --define sonar.sources=include,test/unittest/sonar.cpp - --define sonar.tests=test/unittest,docs/examples - --define sonar.test.inclusions=test_*.cpp,example_*.cpp - --define sonar.sourceEncoding=UTF-8 - --define sonar.host.url=https://sonarcloud.io - --define sonar.cfamily.ignoreHeaderComments=false - --define sonar.coverage.exclusions="test/unittest/**/*,docs/examples/**/*,**/sonar.cpp" - --define sonar.cpd.exclusions="test/unittest/**/*,docs/examples/**/*,**/sonar.cpp" - --define sonar.cfamily.compile-commands="build/compile_commands.json" - --define sonar.cfamily.reportingCppStandardOverride=c++14 - --define sonar.coverageReportPaths="build/test/unittest/coverage.xml,build/docs/examples/coverage.xml" - --define sonar.issue.ignore.multicriteria=r1 - --define sonar.issue.ignore.multicriteria.r1.ruleKey=cpp:S3230 - --define sonar.issue.ignore.multicriteria.r1.resourceKey=** + with: + args: > + -X + --define sonar.organization=opencyphal-garage + --define sonar.projectKey=OpenCyphal-Garage_libcyphal + --define sonar.projectName=libcyphal + --define sonar.projectVersion=1.0 + --define sonar.sources=include,test/unittest/sonar.cpp + --define sonar.tests=test/unittest,docs/examples + --define sonar.test.inclusions=test_*.cpp,example_*.cpp + --define sonar.sourceEncoding=UTF-8 + --define sonar.host.url=https://sonarcloud.io + --define sonar.cfamily.ignoreHeaderComments=false + --define sonar.coverage.exclusions="test/unittest/**/*,docs/examples/**/*,**/sonar.cpp" + --define sonar.cpd.exclusions="test/unittest/**/*,docs/examples/**/*,**/sonar.cpp" + --define sonar.cfamily.compile-commands="build/compile_commands.json" + --define sonar.cfamily.reportingCppStandardOverride=c++14 + --define sonar.coverageReportPaths="build/test/unittest/coverage.xml,build/docs/examples/coverage.xml" + --define sonar.issue.ignore.multicriteria=r1 + --define sonar.issue.ignore.multicriteria.r1.ruleKey=cpp:S3230 + --define sonar.issue.ignore.multicriteria.r1.resourceKey=** From 1d7957831b92979a7edcf950d352098d79501e00 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sat, 15 Nov 2025 22:39:21 +0200 Subject: [PATCH 16/18] hmm --- .github/workflows/sonar.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml index fdf25ae4c..6157235b4 100644 --- a/.github/workflows/sonar.yml +++ b/.github/workflows/sonar.yml @@ -74,7 +74,7 @@ jobs: --define sonar.cpd.exclusions="test/unittest/**/*,docs/examples/**/*,**/sonar.cpp" --define sonar.cfamily.compile-commands="build/compile_commands.json" --define sonar.cfamily.reportingCppStandardOverride=c++14 - --define sonar.coverageReportPaths="build/test/unittest/coverage.xml,build/docs/examples/coverage.xml" + --define sonar.cfamily.cobertura.reportPaths="build/test/unittest/coverage.xml,build/docs/examples/coverage.xml" --define sonar.issue.ignore.multicriteria=r1 --define sonar.issue.ignore.multicriteria.r1.ruleKey=cpp:S3230 --define sonar.issue.ignore.multicriteria.r1.resourceKey=** From 23ea6e892edcac9ca89030050a1d59d6fdb3dc12 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Sat, 15 Nov 2025 23:01:42 +0200 Subject: [PATCH 17/18] hmmmm --- .github/workflows/sonar.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml index 6157235b4..e2f8bfccf 100644 --- a/.github/workflows/sonar.yml +++ b/.github/workflows/sonar.yml @@ -72,9 +72,9 @@ jobs: --define sonar.cfamily.ignoreHeaderComments=false --define sonar.coverage.exclusions="test/unittest/**/*,docs/examples/**/*,**/sonar.cpp" --define sonar.cpd.exclusions="test/unittest/**/*,docs/examples/**/*,**/sonar.cpp" - --define sonar.cfamily.compile-commands="build/compile_commands.json" + --define sonar.cfamily.compile-commands=build/compile_commands.json --define sonar.cfamily.reportingCppStandardOverride=c++14 - --define sonar.cfamily.cobertura.reportPaths="build/test/unittest/coverage.xml,build/docs/examples/coverage.xml" + --define sonar.cfamily.cobertura.reportPaths=build/test/unittest/coverage.xml,build/docs/examples/coverage.xml --define sonar.issue.ignore.multicriteria=r1 --define sonar.issue.ignore.multicriteria.r1.ruleKey=cpp:S3230 --define sonar.issue.ignore.multicriteria.r1.resourceKey=** From 73de6ce8dcea378182258922f6077bf07a33a17c Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Tue, 25 Nov 2025 21:18:39 +0200 Subject: [PATCH 18/18] Update Findlibudpard.cmake --- cmake/modules/Findlibudpard.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/modules/Findlibudpard.cmake b/cmake/modules/Findlibudpard.cmake index d3cb73194..e6777d861 100644 --- a/cmake/modules/Findlibudpard.cmake +++ b/cmake/modules/Findlibudpard.cmake @@ -9,7 +9,7 @@ include(FindPackageHandleStandardArgs) include(ProjectLibrary) set(libudpard_GIT_REPOSITORY "https://github.com/OpenCyphal-garage/libudpard.git") -set(libudpard_GIT_TAG "v2") +set(libudpard_GIT_TAG "main") # TODO: update to a release tag FetchContent_Declare( libudpard