From f83334a43204ffa54854357bc31760f8798781c6 Mon Sep 17 00:00:00 2001 From: HORIE <26223147+suikan4github@users.noreply.github.com> Date: Sat, 9 May 2026 06:21:47 +0000 Subject: [PATCH 1/5] Add dev container configuration. --- .devcontainer/Dockerfile | 18 +++++++ .devcontainer/devcontainer-lock.json | 77 ++++++++++++++++++++++++++++ .devcontainer/devcontainer.json | 26 ++++++++++ .devcontainer/reinstall-cmake.sh | 62 ++++++++++++++++++++++ 4 files changed, 183 insertions(+) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/devcontainer-lock.json create mode 100644 .devcontainer/devcontainer.json create mode 100644 .devcontainer/reinstall-cmake.sh diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..1f1e39a --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,18 @@ +FROM mcr.microsoft.com/devcontainers/cpp:2-ubuntu24.04 + +ARG REINSTALL_CMAKE_VERSION_FROM_SOURCE="none" + +# Optionally install the cmake for vcpkg +COPY ./reinstall-cmake.sh /tmp/ + +RUN if [ "${REINSTALL_CMAKE_VERSION_FROM_SOURCE}" != "none" ]; then \ + chmod +x /tmp/reinstall-cmake.sh && /tmp/reinstall-cmake.sh ${REINSTALL_CMAKE_VERSION_FROM_SOURCE}; \ + fi \ + && rm -f /tmp/reinstall-cmake.sh + +# [Optional] Uncomment this section to install additional vcpkg ports. +# RUN su vscode -c "${VCPKG_ROOT}/vcpkg install " + +# [Optional] Uncomment this section to install additional packages. +# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ +# && apt-get -y install --no-install-recommends diff --git a/.devcontainer/devcontainer-lock.json b/.devcontainer/devcontainer-lock.json new file mode 100644 index 0000000..e1adc04 --- /dev/null +++ b/.devcontainer/devcontainer-lock.json @@ -0,0 +1,77 @@ +{ + "features": { + "ghcr.io/devcontainer-community/devcontainer-features/apt-build-essential:latest": { + "version": "1.0.2", + "resolved": "ghcr.io/devcontainer-community/devcontainer-features/apt-build-essential@sha256:e396b09fdd04aef5ca8d35b9957547142761575575513d12fd8dc3c98c1728f8", + "integrity": "sha256:e396b09fdd04aef5ca8d35b9957547142761575575513d12fd8dc3c98c1728f8" + }, + "ghcr.io/devcontainer-community/devcontainer-features/ccache.dev:latest": { + "version": "1.0.2", + "resolved": "ghcr.io/devcontainer-community/devcontainer-features/ccache.dev@sha256:7288d603484d8c40c7d1c3b2c09ef7599fe50a9fcd8d5cf5f6118311e328f061", + "integrity": "sha256:7288d603484d8c40c7d1c3b2c09ef7599fe50a9fcd8d5cf5f6118311e328f061" + }, + "ghcr.io/devcontainer-community/devcontainer-features/clang-format:latest": { + "version": "1.0.2", + "resolved": "ghcr.io/devcontainer-community/devcontainer-features/clang-format@sha256:fd4a701f3d067e74caa5e8e229eaf13e45e85385dcac5ad81401c4e7678b735e", + "integrity": "sha256:fd4a701f3d067e74caa5e8e229eaf13e45e85385dcac5ad81401c4e7678b735e" + }, + "ghcr.io/devcontainer-community/devcontainer-features/clang-tidy:latest": { + "version": "1.0.2", + "resolved": "ghcr.io/devcontainer-community/devcontainer-features/clang-tidy@sha256:e120a41ca26d1638ffd5407a1c27cd75ee1b79c9bce1b7f17ede2fa20bc6d5b5", + "integrity": "sha256:e120a41ca26d1638ffd5407a1c27cd75ee1b79c9bce1b7f17ede2fa20bc6d5b5" + }, + "ghcr.io/devcontainer-community/devcontainer-features/cmake.org:latest": { + "version": "1.0.2", + "resolved": "ghcr.io/devcontainer-community/devcontainer-features/cmake.org@sha256:3f498a612eb69d006535cbe49bc7344108a7106e116cc85123d5e7bfcbe79a6e", + "integrity": "sha256:3f498a612eb69d006535cbe49bc7344108a7106e116cc85123d5e7bfcbe79a6e" + }, + "ghcr.io/devcontainer-community/devcontainer-features/collection-c-cpp:1": { + "version": "1.0.3", + "resolved": "ghcr.io/devcontainer-community/devcontainer-features/collection-c-cpp@sha256:f9c47d6a760dd17d54a96ba35958c40afea09d7b9b9975b2f44803469045c325", + "integrity": "sha256:f9c47d6a760dd17d54a96ba35958c40afea09d7b9b9975b2f44803469045c325", + "dependsOn": [ + "ghcr.io/devcontainer-community/devcontainer-features/cmake.org:latest", + "ghcr.io/devcontainer-community/devcontainer-features/ninja-build.org:latest", + "ghcr.io/devcontainer-community/devcontainer-features/sourceware.org-gdb:latest", + "ghcr.io/devcontainer-community/devcontainer-features/valgrind.org:latest", + "ghcr.io/devcontainer-community/devcontainer-features/ccache.dev:latest", + "ghcr.io/devcontainer-community/devcontainer-features/danmar-cppcheck:latest", + "ghcr.io/devcontainer-community/devcontainer-features/clang-format:latest", + "ghcr.io/devcontainer-community/devcontainer-features/clang-tidy:latest", + "ghcr.io/devcontainer-community/devcontainer-features/distcc.org:latest", + "ghcr.io/devcontainer-community/devcontainer-features/vcpkg.io:latest", + "ghcr.io/devcontainer-community/devcontainer-features/apt-build-essential:latest" + ] + }, + "ghcr.io/devcontainer-community/devcontainer-features/danmar-cppcheck:latest": { + "version": "1.0.2", + "resolved": "ghcr.io/devcontainer-community/devcontainer-features/danmar-cppcheck@sha256:7b1fa136d884d4f90b3696b20713753e5d5d2507c7b589a9adc37f784d2bdc56", + "integrity": "sha256:7b1fa136d884d4f90b3696b20713753e5d5d2507c7b589a9adc37f784d2bdc56" + }, + "ghcr.io/devcontainer-community/devcontainer-features/distcc.org:latest": { + "version": "1.0.2", + "resolved": "ghcr.io/devcontainer-community/devcontainer-features/distcc.org@sha256:7a1c3a4c76cd4200ae2773268eee9372c620f05806faa3c7b8bb487c57ffe391", + "integrity": "sha256:7a1c3a4c76cd4200ae2773268eee9372c620f05806faa3c7b8bb487c57ffe391" + }, + "ghcr.io/devcontainer-community/devcontainer-features/ninja-build.org:latest": { + "version": "1.0.2", + "resolved": "ghcr.io/devcontainer-community/devcontainer-features/ninja-build.org@sha256:9df3174efc44643c61204fb1b1c0579a091f433246b581d88c7419f6cd4de3ac", + "integrity": "sha256:9df3174efc44643c61204fb1b1c0579a091f433246b581d88c7419f6cd4de3ac" + }, + "ghcr.io/devcontainer-community/devcontainer-features/sourceware.org-gdb:latest": { + "version": "1.0.2", + "resolved": "ghcr.io/devcontainer-community/devcontainer-features/sourceware.org-gdb@sha256:c6db6642afafecd431b655dad060e3b3998a46884473cb2a21bf867d4bd30528", + "integrity": "sha256:c6db6642afafecd431b655dad060e3b3998a46884473cb2a21bf867d4bd30528" + }, + "ghcr.io/devcontainer-community/devcontainer-features/valgrind.org:latest": { + "version": "1.0.2", + "resolved": "ghcr.io/devcontainer-community/devcontainer-features/valgrind.org@sha256:0422a1ed5cdd2e1b997be8c5f67f729d94f9f1b51ad6144b3e9c0346a7347bba", + "integrity": "sha256:0422a1ed5cdd2e1b997be8c5f67f729d94f9f1b51ad6144b3e9c0346a7347bba" + }, + "ghcr.io/devcontainer-community/devcontainer-features/vcpkg.io:latest": { + "version": "1.0.2", + "resolved": "ghcr.io/devcontainer-community/devcontainer-features/vcpkg.io@sha256:aa1c839509ab397336da9c187c89b16e5cb85666f1c8756a2919f401ed3b44ae", + "integrity": "sha256:aa1c839509ab397336da9c187c89b16e5cb85666f1c8756a2919f401ed3b44ae" + } + } +} diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..4866d82 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,26 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/cpp +{ + "name": "C++", + "build": { + "dockerfile": "Dockerfile" + }, + "features": { + "ghcr.io/devcontainer-community/devcontainer-features/collection-c-cpp:1": {} + } + + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + // "postCreateCommand": "gcc -v", + + // Configure tool-specific properties. + // "customizations": {}, + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +} diff --git a/.devcontainer/reinstall-cmake.sh b/.devcontainer/reinstall-cmake.sh new file mode 100644 index 0000000..a37a3c2 --- /dev/null +++ b/.devcontainer/reinstall-cmake.sh @@ -0,0 +1,62 @@ +#!/usr/bin/env bash +#------------------------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information. +#------------------------------------------------------------------------------------------------------------- +# +set -e + +CMAKE_VERSION=${1:-"none"} + +if [ "${CMAKE_VERSION}" = "none" ]; then + echo "No CMake version specified, skipping CMake reinstallation" + exit 0 +fi + +# Cleanup temporary directory and associated files when exiting the script. +cleanup() { + EXIT_CODE=$? + set +e + if [[ -n "${TMP_DIR}" ]]; then + echo "Executing cleanup of tmp files" + rm -Rf "${TMP_DIR}" + fi + exit $EXIT_CODE +} +trap cleanup EXIT + + +echo "Installing CMake..." +apt-get -y purge --auto-remove cmake +mkdir -p /opt/cmake + +architecture=$(dpkg --print-architecture) +case "${architecture}" in + arm64) + ARCH=aarch64 ;; + amd64) + ARCH=x86_64 ;; + *) + echo "Unsupported architecture ${architecture}." + exit 1 + ;; +esac + +CMAKE_BINARY_NAME="cmake-${CMAKE_VERSION}-linux-${ARCH}.sh" +CMAKE_CHECKSUM_NAME="cmake-${CMAKE_VERSION}-SHA-256.txt" +TMP_DIR=$(mktemp -d -t cmake-XXXXXXXXXX) + +echo "${TMP_DIR}" +cd "${TMP_DIR}" + +curl -sSL "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_BINARY_NAME}" -O +curl -sSL "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_CHECKSUM_NAME}" -O + +sha256sum -c --ignore-missing "${CMAKE_CHECKSUM_NAME}" +sh "${TMP_DIR}/${CMAKE_BINARY_NAME}" --prefix=/opt/cmake --skip-license + +ln -s /opt/cmake/bin/ccmake /usr/local/bin/ccmake +ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake +ln -s /opt/cmake/bin/cmake-gui /usr/local/bin/cmake-gui +ln -s /opt/cmake/bin/cpack /usr/local/bin/cpack +ln -s /opt/cmake/bin/ctest /usr/local/bin/ctest From 7e6673a15257fa76f23f512c0406b01aa6ef2f36 Mon Sep 17 00:00:00 2001 From: HORIE <26223147+suikan4github@users.noreply.github.com> Date: Sun, 21 Jun 2026 07:39:06 +0000 Subject: [PATCH 2/5] container is tuned for fedora. --- .devcontainer/Dockerfile | 14 +++++ .devcontainer/devcontainer-lock.json | 77 ---------------------------- .devcontainer/devcontainer.json | 6 --- 3 files changed, 14 insertions(+), 83 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 1f1e39a..0159aa3 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -10,6 +10,20 @@ RUN if [ "${REINSTALL_CMAKE_VERSION_FROM_SOURCE}" != "none" ]; then \ fi \ && rm -f /tmp/reinstall-cmake.sh +RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ + && apt-get install -y --no-install-recommends \ + build-essential \ + clang-format \ + clang-tidy \ + cmake \ + cppcheck \ + distcc \ + gdb \ + git \ + ninja-build \ + valgrind \ + && rm -rf /var/lib/apt/lists/* + # [Optional] Uncomment this section to install additional vcpkg ports. # RUN su vscode -c "${VCPKG_ROOT}/vcpkg install " diff --git a/.devcontainer/devcontainer-lock.json b/.devcontainer/devcontainer-lock.json index e1adc04..e69de29 100644 --- a/.devcontainer/devcontainer-lock.json +++ b/.devcontainer/devcontainer-lock.json @@ -1,77 +0,0 @@ -{ - "features": { - "ghcr.io/devcontainer-community/devcontainer-features/apt-build-essential:latest": { - "version": "1.0.2", - "resolved": "ghcr.io/devcontainer-community/devcontainer-features/apt-build-essential@sha256:e396b09fdd04aef5ca8d35b9957547142761575575513d12fd8dc3c98c1728f8", - "integrity": "sha256:e396b09fdd04aef5ca8d35b9957547142761575575513d12fd8dc3c98c1728f8" - }, - "ghcr.io/devcontainer-community/devcontainer-features/ccache.dev:latest": { - "version": "1.0.2", - "resolved": "ghcr.io/devcontainer-community/devcontainer-features/ccache.dev@sha256:7288d603484d8c40c7d1c3b2c09ef7599fe50a9fcd8d5cf5f6118311e328f061", - "integrity": "sha256:7288d603484d8c40c7d1c3b2c09ef7599fe50a9fcd8d5cf5f6118311e328f061" - }, - "ghcr.io/devcontainer-community/devcontainer-features/clang-format:latest": { - "version": "1.0.2", - "resolved": "ghcr.io/devcontainer-community/devcontainer-features/clang-format@sha256:fd4a701f3d067e74caa5e8e229eaf13e45e85385dcac5ad81401c4e7678b735e", - "integrity": "sha256:fd4a701f3d067e74caa5e8e229eaf13e45e85385dcac5ad81401c4e7678b735e" - }, - "ghcr.io/devcontainer-community/devcontainer-features/clang-tidy:latest": { - "version": "1.0.2", - "resolved": "ghcr.io/devcontainer-community/devcontainer-features/clang-tidy@sha256:e120a41ca26d1638ffd5407a1c27cd75ee1b79c9bce1b7f17ede2fa20bc6d5b5", - "integrity": "sha256:e120a41ca26d1638ffd5407a1c27cd75ee1b79c9bce1b7f17ede2fa20bc6d5b5" - }, - "ghcr.io/devcontainer-community/devcontainer-features/cmake.org:latest": { - "version": "1.0.2", - "resolved": "ghcr.io/devcontainer-community/devcontainer-features/cmake.org@sha256:3f498a612eb69d006535cbe49bc7344108a7106e116cc85123d5e7bfcbe79a6e", - "integrity": "sha256:3f498a612eb69d006535cbe49bc7344108a7106e116cc85123d5e7bfcbe79a6e" - }, - "ghcr.io/devcontainer-community/devcontainer-features/collection-c-cpp:1": { - "version": "1.0.3", - "resolved": "ghcr.io/devcontainer-community/devcontainer-features/collection-c-cpp@sha256:f9c47d6a760dd17d54a96ba35958c40afea09d7b9b9975b2f44803469045c325", - "integrity": "sha256:f9c47d6a760dd17d54a96ba35958c40afea09d7b9b9975b2f44803469045c325", - "dependsOn": [ - "ghcr.io/devcontainer-community/devcontainer-features/cmake.org:latest", - "ghcr.io/devcontainer-community/devcontainer-features/ninja-build.org:latest", - "ghcr.io/devcontainer-community/devcontainer-features/sourceware.org-gdb:latest", - "ghcr.io/devcontainer-community/devcontainer-features/valgrind.org:latest", - "ghcr.io/devcontainer-community/devcontainer-features/ccache.dev:latest", - "ghcr.io/devcontainer-community/devcontainer-features/danmar-cppcheck:latest", - "ghcr.io/devcontainer-community/devcontainer-features/clang-format:latest", - "ghcr.io/devcontainer-community/devcontainer-features/clang-tidy:latest", - "ghcr.io/devcontainer-community/devcontainer-features/distcc.org:latest", - "ghcr.io/devcontainer-community/devcontainer-features/vcpkg.io:latest", - "ghcr.io/devcontainer-community/devcontainer-features/apt-build-essential:latest" - ] - }, - "ghcr.io/devcontainer-community/devcontainer-features/danmar-cppcheck:latest": { - "version": "1.0.2", - "resolved": "ghcr.io/devcontainer-community/devcontainer-features/danmar-cppcheck@sha256:7b1fa136d884d4f90b3696b20713753e5d5d2507c7b589a9adc37f784d2bdc56", - "integrity": "sha256:7b1fa136d884d4f90b3696b20713753e5d5d2507c7b589a9adc37f784d2bdc56" - }, - "ghcr.io/devcontainer-community/devcontainer-features/distcc.org:latest": { - "version": "1.0.2", - "resolved": "ghcr.io/devcontainer-community/devcontainer-features/distcc.org@sha256:7a1c3a4c76cd4200ae2773268eee9372c620f05806faa3c7b8bb487c57ffe391", - "integrity": "sha256:7a1c3a4c76cd4200ae2773268eee9372c620f05806faa3c7b8bb487c57ffe391" - }, - "ghcr.io/devcontainer-community/devcontainer-features/ninja-build.org:latest": { - "version": "1.0.2", - "resolved": "ghcr.io/devcontainer-community/devcontainer-features/ninja-build.org@sha256:9df3174efc44643c61204fb1b1c0579a091f433246b581d88c7419f6cd4de3ac", - "integrity": "sha256:9df3174efc44643c61204fb1b1c0579a091f433246b581d88c7419f6cd4de3ac" - }, - "ghcr.io/devcontainer-community/devcontainer-features/sourceware.org-gdb:latest": { - "version": "1.0.2", - "resolved": "ghcr.io/devcontainer-community/devcontainer-features/sourceware.org-gdb@sha256:c6db6642afafecd431b655dad060e3b3998a46884473cb2a21bf867d4bd30528", - "integrity": "sha256:c6db6642afafecd431b655dad060e3b3998a46884473cb2a21bf867d4bd30528" - }, - "ghcr.io/devcontainer-community/devcontainer-features/valgrind.org:latest": { - "version": "1.0.2", - "resolved": "ghcr.io/devcontainer-community/devcontainer-features/valgrind.org@sha256:0422a1ed5cdd2e1b997be8c5f67f729d94f9f1b51ad6144b3e9c0346a7347bba", - "integrity": "sha256:0422a1ed5cdd2e1b997be8c5f67f729d94f9f1b51ad6144b3e9c0346a7347bba" - }, - "ghcr.io/devcontainer-community/devcontainer-features/vcpkg.io:latest": { - "version": "1.0.2", - "resolved": "ghcr.io/devcontainer-community/devcontainer-features/vcpkg.io@sha256:aa1c839509ab397336da9c187c89b16e5cb85666f1c8756a2919f401ed3b44ae", - "integrity": "sha256:aa1c839509ab397336da9c187c89b16e5cb85666f1c8756a2919f401ed3b44ae" - } - } -} diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 4866d82..44b1e67 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -4,14 +4,8 @@ "name": "C++", "build": { "dockerfile": "Dockerfile" - }, - "features": { - "ghcr.io/devcontainer-community/devcontainer-features/collection-c-cpp:1": {} } - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - // Use 'forwardPorts' to make a list of ports inside the container available locally. // "forwardPorts": [], From 9079426ec35938231630748ed6d20681b1ba03d3 Mon Sep 17 00:00:00 2001 From: HORIE <26223147+suikan4github@users.noreply.github.com> Date: Sun, 21 Jun 2026 22:05:15 +0000 Subject: [PATCH 3/5] Update .devcontainer/devcontainer.json Added a new extension to the devcontainer configuration to enhance the development environment. This extension will provide additional tools and features that are beneficial for our project. --- .devcontainer/devcontainer.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 44b1e67..314e66d 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -4,6 +4,14 @@ "name": "C++", "build": { "dockerfile": "Dockerfile" + }, + "customizations": { + "vscode": { + "extensions": [ + "ms-vscode.cpptools-extension-pack", + "matepek.vscode-catch2-test-adapter" + ] + } } // Use 'forwardPorts' to make a list of ports inside the container available locally. From 535d6316a019e6101206b8881bb514f3254c490a Mon Sep 17 00:00:00 2001 From: HORIE <26223147+suikan4github@users.noreply.github.com> Date: Sun, 21 Jun 2026 22:24:08 +0000 Subject: [PATCH 4/5] Reduce the warning of coverage report. By removing the coverage artifacts before running tests. --- test/CMakeLists.txt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index d5c946b..bdbda19 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -8,6 +8,28 @@ file(GLOB SOURCES CMAKE_CONFIGURE_DEPENDS "./*.cpp") # Add the executable for the testcase which is using googletest add_executable(${PROJECT_NAME} ${SOURCES}) +# Remove coverage artifacts before running tests to avoid false positives +# This will prevent the error of the coverage report. +# On the other hande, this build cannot accumulate coverage data across +# multiple runs, but it is a tradeoff to avoid the error. +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/reset_coverage.cmake" [=[ +file(GLOB_RECURSE coverage_artifacts + "${PROJECT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}.dir/*.gcda" + "${PROJECT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}.dir/*.gcno") +if(coverage_artifacts) + file(REMOVE ${coverage_artifacts}) +endif() +]=]) + +add_custom_target(reset_coverage + COMMAND ${CMAKE_COMMAND} + -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} + -DPROJECT_NAME=${PROJECT_NAME} + -P "${CMAKE_CURRENT_BINARY_DIR}/reset_coverage.cmake" + VERBATIM) + +add_dependencies(${PROJECT_NAME} reset_coverage) + # Add the library under test. target_link_libraries(${PROJECT_NAME} GTest::gmock_main From 4b3071bec95cfcc8eab2bbe960bf2383f04a4d14 Mon Sep 17 00:00:00 2001 From: HORIE <26223147+suikan4github@users.noreply.github.com> Date: Sun, 12 Jul 2026 05:51:45 +0000 Subject: [PATCH 5/5] Release v1.2.0 --- .devcontainer/Dockerfile | 2 ++ CHANGELOG.md | 15 ++++++++++++++- README.md | 7 +++++-- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 0159aa3..64728e3 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -22,6 +22,8 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ git \ ninja-build \ valgrind \ + gcc-arm-none-eabi libnewlib-arm-none-eabi \ + doxygen graphviz \ && rm -rf /var/lib/apt/lists/* # [Optional] Uncomment this section to install additional vcpkg ports. diff --git a/CHANGELOG.md b/CHANGELOG.md index 7269809..9c55aef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,18 @@ Hotfix release. ### Security ### Known Issue +## [v1.2.0] 2026-07-12 +Based on the Raspberry Pi Pico SDK v2.0.0. +### Added +- [Issue #25](https://github.com/suikan4github/rpp_driver/issues/25) Add wider API support of RasPi Pico SDK +- [Issue #27](https://github.com/suikan4github/rpp_driver/issues/27) Add Devcontainer support +### Changed +### Deprecated +### Removed +### Fixed +### Security +### Known Issue + ## [v1.1.1] 2024-10-22 Hotfix release. @@ -79,7 +91,8 @@ First official release of the rpp_driver ( Raspberry Pi Pico Driver) class libra ## [v0.9.0] 2024-09-28 Pre-release version. -[Unreleased]: https://github.com/suikan4github/rpp_driver/compare/v1.1.1...develop +[Unreleased]: https://github.com/suikan4github/rpp_driver/compare/v1.2.0...develop +[v1.2.0]: https://github.com/suikan4github/rpp_driver/compare/v1.1.1...v1.2.0 [v1.1.1]: https://github.com/suikan4github/rpp_driver/compare/v1.1.0...v1.1.1 [v1.1.0]: https://github.com/suikan4github/rpp_driver/compare/v1.0.0...v1.1.0 [v1.0.0]: https://github.com/suikan4github/rpp_driver/compare/v0.9.0...v1.0.0 diff --git a/README.md b/README.md index 5a9f114..5da6cc3 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,10 @@ An online [HTML documentation](https://suikan4github.github.io/rpp_driver/) is a # Details This class collection ( or class library ) encapsules the certain data structure of Pico SDK behind the classes. And it also allows programmers to use the dependency-injection in their projects. So, programmers can test their code with [Google Test](https://github.com/google/googletest) before testing on the target hardware. - +k The following classes are provided in this version. -| Class | Header file | Description | +| Class | Header fkvile | Description | |---------------------------------|---- |----------------------------- | | ::rpp_driver::SdkWrapper | sdk/sdkwrapper.hpp | Wrapper class of Pico SDK | | ::rpp_driver::GpioBasic | gpio/gpiobasic.hpp | Basic GPIO controller | @@ -39,6 +39,9 @@ git clone --recursive https://github.com/suikan4github/rpp_driver-sample.git # Tools and building ## How to install the tools +> [!NOTE] +> These tools are automatically installed if you use the VSCode Dev Container. + To build the sample program and/or test program, you need to install the build tools. The followings are the command to install these tools on Ubuntu.