diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..4359283 Binary files /dev/null and b/.DS_Store differ diff --git a/.cppcheck.suppress b/.cppcheck.suppress index b2fe9e2..f35ba3b 100644 --- a/.cppcheck.suppress +++ b/.cppcheck.suppress @@ -1,3 +1,2 @@ cstyleCast -missingIncludeSystem missingInclude diff --git a/.github/.DS_Store b/.github/.DS_Store new file mode 100644 index 0000000..d166734 Binary files /dev/null and b/.github/.DS_Store differ diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index b53e412..313400d 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -1,4 +1,4 @@ -name: Build and test code +name: Build and Test code on: push: @@ -6,45 +6,9 @@ on: - main pull_request: -jobs: - build: - - strategy: - matrix: - env: - - toolchain: "toolchain/gcc-linux.cmake" - runner: ubuntu-latest - generator: "" - - toolchain: "toolchain/clang-macos.cmake" - runner: macos-latest - generator: "" - - toolchain: "\"toolchain/clang-windows.cmake\"" - runner: windows-latest - generator: "-G \"Visual Studio 17 2022\"" - - runs-on: ${{ matrix.env.runner }} - - steps: - - name: Check out repository - uses: actions/checkout@v4 - - name: Install Linux reqs - if: ${{ matrix.env.runner == 'ubuntu-latest' }} - run: | - sudo apt-get update - sudo apt-get install -y clang cmake cppcheck clang-format clang-tidy gcc pre-commit - - - name: Install macOS reqs - if: ${{ matrix.env.runner == 'macos-latest' }} - run: | - brew install llvm cmake cppcheck clang-format gcc pre-commit - - - name: Build - run: | - cmake ${{ matrix.env.generator }} -B build -S . -DCMAKE_TOOLCHAIN_FILE=${{ matrix.env.toolchain }} - cmake --build build -j8 - - - name: Run Linux/macOS tests - if: ${{ matrix.env.runner == 'ubuntu-latest' || matrix.env.runner == 'macos-latest' }} - run: | - ./build/bin/keypleplugincppapi_ut +jobs: + call-reusable-workflow: + uses: eclipse-keyple/keyple-actions/.github/workflows/reusable-cpp-build-and-test.yml@main # NOSONAR - Same organization, trusted source + with: + test_executable_name: 'build/bin/keypleplugincppapi_ut' diff --git a/.github/workflows/publish-doc-release.yml b/.github/workflows/publish-doc-release.yml index 6fa978d..d26dd8d 100644 --- a/.github/workflows/publish-doc-release.yml +++ b/.github/workflows/publish-doc-release.yml @@ -1,47 +1,14 @@ -name: Publish API documentation - +name: Publish API documentation (release) on: release: types: [published] +permissions: + checks: write + jobs: publish-doc-release: - runs-on: ubuntu-latest - steps: - - name: Check out repository code from ${{ github.repository }}/${{ github.ref }} - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Make scripts executable - run: chmod +x ./.github/scripts/*.sh - - - name: Check version - working-directory: . - run: ./.github/scripts/check_version.sh $(echo "${{ github.ref }}" | sed -e "s,^refs/tags/,,") - - - name: Patch Doxyfile - working-directory: . - run: ./.github/scripts/patch_doxyfile.sh ${{ env.PROJECT_VERSION }} - - - name: Generate and prepare documentation - uses: eclipse-keyple/keyple-actions/doxygen@0c8593c4ed6b393642a1732af1fdef84d5e59540 - with: - repo-name: ${{ github.event.repository.name }} - version: ${{ github.event.inputs.version || github.ref_name }} - - - name: Prepare Doxygen doc page locally - working-directory: . - run: ./.github/scripts/prepare_doxygen.sh ${{ env.PROJECT_VERSION }} - - - name: Deploy to doc branch - run: | - git config --global user.name "Eclipse Keypop Bot" - git config --global user.email "${{ github.repository }}-bot@eclipse.org" - cd ${{ github.event.repository.name }} - git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" - git add . - git commit -m "docs: update ${{ github.event.inputs.version || github.ref_name }} documentation" - git push origin doc --force - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + uses: eclipse-keyple/keyple-actions/.github/workflows/reusable-publish-doxygen.yml@main # NOSONAR - Same organization, trusted source + with: + version: ${{ github.event.inputs.version || github.ref_name }} + secrets: inherit # NOSONAR - Same organization, trusted source diff --git a/.github/workflows/publish-doc-snapshot.yml b/.github/workflows/publish-doc-snapshot.yml index 8600b32..d5d29a6 100644 --- a/.github/workflows/publish-doc-snapshot.yml +++ b/.github/workflows/publish-doc-snapshot.yml @@ -1,50 +1,14 @@ name: Publish API documentation (snapshot) - on: push: branches: - main - - master - - doxygen + workflow_dispatch: + +permissions: + checks: write jobs: publish-doc-snapshot: - runs-on: ubuntu-latest - steps: - - name: Check out repository code from ${{ github.repository }}/${{ github.ref }} - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Make scripts executable - run: chmod +x ./.github/scripts/*.sh - - - name: Check version - working-directory: . - run: ./.github/scripts/check_version.sh - - - name: Patch Doxyfile - working-directory: . - run: ./.github/scripts/patch_doxyfile.sh ${{ env.PROJECT_VERSION }} - - - name: Generate and prepare documentation - uses: eclipse-keyple/keyple-actions/doxygen@0c8593c4ed6b393642a1732af1fdef84d5e59540 - with: - repo-name: ${{ github.event.repository.name }} - version: ${{ github.event.inputs.version || github.ref_name }} - - - name: Prepare Doxygen doc page locally - working-directory: . - run: ./.github/scripts/prepare_doxygen.sh ${{ env.PROJECT_VERSION }} - - - name: Deploy to doc branch - run: | - git config --global user.name "Eclipse Keypop Bot" - git config --global user.email "${{ github.repository }}-bot@eclipse.org" - cd ${{ github.event.repository.name }} - git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" - git add . - git diff --quiet && git diff --staged --quiet || git commit -m "docs: update snapshot documentation" - git push origin doc --force - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + uses: eclipse-keyple/keyple-actions/.github/workflows/reusable-publish-doxygen.yml@main # NOSONAR - Same organization, trusted source + secrets: inherit # NOSONAR - Same organization, trusted source diff --git a/CMakeLists.txt b/CMakeLists.txt index f60acd4..a21ce84 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,7 @@ PROJECT(KeyplePluginCppApi C CXX) SET(CMAKE_PROJECT_VERSION_MAJOR "2") SET(CMAKE_PROJECT_VERSION_MINOR "3") -SET(CMAKE_PROJECT_VERSION_PATCH "1") +SET(CMAKE_PROJECT_VERSION_PATCH "2") SET(CMAKE_PROJECT_VERSION "${CMAKE_PROJECT_VERSION_MAJOR}. ${CMAKE_PROJECT_VERSION_MINOR}. diff --git a/include/CMakeLists.txt.keyple-util b/include/CMakeLists.txt.keyple-util index 4f4a2ec..8b9e588 100644 --- a/include/CMakeLists.txt.keyple-util +++ b/include/CMakeLists.txt.keyple-util @@ -27,7 +27,7 @@ IF(NOT EXISTS "${CMAKE_BINARY_DIR}/_deps/keypleutilcpplib-src") DOWNLOAD_EXTRACT_TIMESTAMP true GIT_REPOSITORY https://github.com/eclipse-keyple/keyple-util-cpp-lib - GIT_TAG develop-2.4.0 + GIT_TAG 2.4.0 ) ELSE() diff --git a/include/keyple/core/plugin/CardIOException.hpp b/include/keyple/core/plugin/CardIOException.hpp index 7e5ec1a..d199482 100644 --- a/include/keyple/core/plugin/CardIOException.hpp +++ b/include/keyple/core/plugin/CardIOException.hpp @@ -10,7 +10,6 @@ #pragma once -#include #include #include "keyple/core/util/cpp/exception/Exception.hpp" @@ -41,8 +40,7 @@ class CardIOException : public Exception { * @param cause the cause * @since 2.0.0 */ - CardIOException( - const std::string& message, const std::shared_ptr cause) + CardIOException(const std::string& message, const Exception& cause) : Exception(message, cause) { } }; diff --git a/include/keyple/core/plugin/PluginIOException.hpp b/include/keyple/core/plugin/PluginIOException.hpp index 2d863b5..f7a3d66 100644 --- a/include/keyple/core/plugin/PluginIOException.hpp +++ b/include/keyple/core/plugin/PluginIOException.hpp @@ -10,7 +10,6 @@ #pragma once -#include #include #include "keyple/core/util/cpp/exception/Exception.hpp" @@ -41,8 +40,7 @@ class PluginIOException : public Exception { * @param cause the cause * @since 2.0.0 */ - PluginIOException( - const std::string& message, const std::shared_ptr cause) + PluginIOException(const std::string& message, const Exception& cause) : Exception(message, cause) { } }; diff --git a/include/keyple/core/plugin/ReaderIOException.hpp b/include/keyple/core/plugin/ReaderIOException.hpp index 14feda4..f2163e7 100644 --- a/include/keyple/core/plugin/ReaderIOException.hpp +++ b/include/keyple/core/plugin/ReaderIOException.hpp @@ -10,7 +10,6 @@ #pragma once -#include #include #include "keyple/core/util/cpp/exception/Exception.hpp" @@ -41,8 +40,7 @@ class ReaderIOException : public Exception { * @param cause the cause * @since 2.0.0 */ - ReaderIOException( - const std::string& message, const std::shared_ptr cause) + ReaderIOException(const std::string& message, const Exception& cause) : Exception(message, cause) { } };