From 3b4e03367f70027f5598ee22558a8cc72e19ea7c Mon Sep 17 00:00:00 2001 From: John McFarlane Date: Wed, 25 Oct 2023 07:00:53 +0100 Subject: [PATCH] Fix pipeline failures - Ubuntu 18.04 is unsupported in GitHub Actions so bumping remaining jobs to 20.04. https://github.blog/changelog/2022-08-09-github-actions-the-ubuntu-18-04-actions-runner-image-is-being-deprecated-and-will-be-removed-by-12-1-22/ - Conan 2 was released, which has breaking changes, so pegging to "conan<2", both in this repo, and in cnl_ci_images. - Fix linting errors that crept in while pipeline was disabled. See #1043. - Avoiding examples which no longer compile since LWG3657. - Latest Conan settings, from 1.62 --- .github/conan/profiles/base | 1 - .github/conan/settings.yml | 36 ++++++++++++++------------ .github/workflows/deploy.yml | 2 +- .github/workflows/test.yml | 10 ++++--- .github/workflows/wide-integer.yml | 2 +- test/unit/presentations/cppcon2017.cpp | 14 +++++----- test/unit/presentations/cppdub2018.cpp | 14 +++++----- 7 files changed, 41 insertions(+), 38 deletions(-) diff --git a/.github/conan/profiles/base b/.github/conan/profiles/base index cfe563704..d264e7c9f 100644 --- a/.github/conan/profiles/base +++ b/.github/conan/profiles/base @@ -7,5 +7,4 @@ boost:header_only=True boost:without_fiber=True boost:without_locale=True boost:without_log=True -cmake:with_openssl=False test=all diff --git a/.github/conan/settings.yml b/.github/conan/settings.yml index a297e1357..7ff4ec01d 100644 --- a/.github/conan/settings.yml +++ b/.github/conan/settings.yml @@ -22,33 +22,32 @@ os: Linux: iOS: version: &ios_version - ["7.0", "7.1", "8.0", "8.1", "8.2", "8.3", "9.0", "9.1", "9.2", "9.3", - "10.0", "10.1", "10.2", "10.3", + ["7.0", "7.1", "8.0", "8.1", "8.2", "8.3", "9.0", "9.1", "9.2", "9.3", "10.0", "10.1", "10.2", "10.3", "11.0", "11.1", "11.2", "11.3", "11.4", "12.0", "12.1", "12.2", "12.3", "12.4", "13.0", "13.1", "13.2", "13.3", "13.4", "13.5", "13.6", "13.7", "14.0", "14.1", "14.2", "14.3", "14.4", "14.5", "14.6", "14.7", "14.8", - "15.0", "15.1", "15.2", "15.3", "15.4"] + "15.0", "15.1", "15.2", "15.3", "15.4", "15.5", "15.6", "16.0", "16.1"] sdk: [None, "iphoneos", "iphonesimulator"] sdk_version: [None, "11.3", "11.4", "12.0", "12.1", "12.2", "12.4", "13.0", "13.1", "13.2", "13.4", "13.5", "13.6", "13.7", - "14.0", "14.1", "14.2", "14.3", "14.4", "14.5", "15.0", "15.2", "15.4"] + "14.0", "14.1", "14.2", "14.3", "14.4", "14.5", "15.0", "15.2", "15.4", "15.5", "16.0", "16.1"] watchOS: version: ["4.0", "4.1", "4.2", "4.3", "5.0", "5.1", "5.2", "5.3", "6.0", "6.1", "6.2", - "7.0", "7.1", "7.2", "7.3", "7.4", "7.5", "7.6", "8.0", "8.1", "8.3", "8.4", "8.5"] + "7.0", "7.1", "7.2", "7.3", "7.4", "7.5", "7.6", "8.0", "8.1", "8.3", "8.4", "8.5", "8.6", "8.7", "9.0", "9.1"] sdk: [None, "watchos", "watchsimulator"] sdk_version: [None, "4.3", "5.0", "5.1", "5.2", "5.3", "6.0", "6.1", "6.2", - "7.0", "7.1", "7.2", "7.4", "8.0", "8.0.1", "8.3", "8.5"] + "7.0", "7.1", "7.2", "7.4", "8.0", "8.0.1", "8.3", "8.5", "9.0", "9.1"] tvOS: version: ["11.0", "11.1", "11.2", "11.3", "11.4", "12.0", "12.1", "12.2", "12.3", "12.4", "13.0", "13.2", "13.3", "13.4", "14.0", "14.2", "14.3", "14.4", "14.5", "14.6", "14.7", - "15.0", "15.1", "15.2", "15.3", "15.4"] + "15.0", "15.1", "15.2", "15.3", "15.4", "15.5", "15.6", "16.0", "16.1"] sdk: [None, "appletvos", "appletvsimulator"] sdk_version: [None, "11.3", "11.4", "12.0", "12.1", "12.2", "12.4", - "13.0", "13.1", "13.2", "13.4", "14.0", "14.2", "14.3", "14.5", "15.0", "15.2", "15.4"] + "13.0", "13.1", "13.2", "13.4", "14.0", "14.2", "14.3", "14.5", "15.0", "15.2", "15.4", "16.0", "16.1"] Macos: version: [None, "10.6", "10.7", "10.8", "10.9", "10.10", "10.11", "10.12", "10.13", "10.14", "10.15", "11.0", "12.0", "13.0"] sdk: [None, "macosx"] - sdk_version: [None, "10.13", "10.14", "10.15", "11.0", "11.1", "11.3", "12.0", "12.1", "12.3"] + sdk_version: [None, "10.13", "10.14", "10.15", "11.0", "11.1", "11.3", "12.0", "12.1", "12.3", "13.0", "13.1"] subsystem: None: catalyst: @@ -77,11 +76,12 @@ compiler: "5", "5.1", "5.2", "5.3", "5.4", "5.5", "6", "6.1", "6.2", "6.3", "6.4", "6.5", "7", "7.1", "7.2", "7.3", "7.4", "7.5", - "8", "8.1", "8.2", "8.3", "8.4", - "9", "9.1", "9.2", "9.3", "9.4", - "10", "10.1", "10.2", "10.3", - "11", "11.1", "11.2", - "12"] + "8", "8.1", "8.2", "8.3", "8.4", "8.5", + "9", "9.1", "9.2", "9.3", "9.4", "9.5", + "10", "10.1", "10.2", "10.3", "10.4", "10.5", + "11", "11.1", "11.2", "11.3", "11.4", + "12", "12.1", "12.2", "12.3", + "13", "13.1", "13.2"] libcxx: [libstdc++, libstdc++11] threads: [None, posix, win32] # Windows MinGW exception: [None, dwarf2, sjlj, seh] # Windows MinGW @@ -105,15 +105,17 @@ compiler: clang: version: ["3.3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "4.0", "5.0", "6.0", "7.0", "7.1", - "8", "9", "10", "11", "12", "13", "14", "15"] + "8", "9", "10", "11", "12", "13", "14", "15", "16", "17"] libcxx: [None, libstdc++, libstdc++11, libc++, c++_shared, c++_static] cppstd: [None, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20, 23, gnu23] runtime: [None, MD, MT, MTd, MDd, static, dynamic] runtime_type: [None, Debug, Release] + runtime_version: [None, v140, v141, v142, v143] apple-clang: &apple_clang - version: ["5.0", "5.1", "6.0", "6.1", "7.0", "7.3", "8.0", "8.1", "9.0", "9.1", "10.0", "11.0", "12.0", "13", "13.0", "13.1"] + version: ["5.0", "5.1", "6.0", "6.1", "7.0", "7.3", "8.0", "8.1", "9.0", "9.1", + "10.0", "11.0", "12.0", "13", "13.0", "13.1", "14", "14.0", "15", "15.0"] libcxx: [libstdc++, libc++] - cppstd: [None, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20] + cppstd: [None, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20, 23, gnu23] intel: version: ["11", "12", "13", "14", "15", "16", "17", "18", "19", "19.1"] update: [None, ANY] diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index a8207a72f..26d1d5cdb 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -9,7 +9,7 @@ on: jobs: # Deploy release deploy: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 container: johnmcfarlane/cnl_ci:gcc-10 env: GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d60a3acc1..052bcfae9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -177,7 +177,9 @@ jobs: - name: Install Brew packages if: ( matrix.os-version == 'macos-12' ) - run: brew install ccache conan ninja + run: | + brew install ccache conan@1 ninja + echo "/usr/local/opt/conan@1/bin:$PATH" >> $GITHUB_PATH - name: Restore Compiler Cache uses: hendrikmuhs/ccache-action@v1 @@ -268,7 +270,7 @@ jobs: - name: Install Conan run: | - pip.exe install conan; + pip.exe install conan<2; - name: Cache Report run: | @@ -301,7 +303,7 @@ jobs: # Test documentation generation doxygen: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 container: johnmcfarlane/cnl_ci:base-21.10 steps: - uses: actions/checkout@v2 @@ -391,7 +393,7 @@ jobs: # Install on mature Linux distro using only CMake install: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/wide-integer.yml b/.github/workflows/wide-integer.yml index 6f29d7e56..ce9424e6b 100644 --- a/.github/workflows/wide-integer.yml +++ b/.github/workflows/wide-integer.yml @@ -8,7 +8,7 @@ on: jobs: # Check for updates to wide-integer library update-check: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 container: johnmcfarlane/cnl_ci:base-21.10 steps: - uses: actions/checkout@v2 diff --git a/test/unit/presentations/cppcon2017.cpp b/test/unit/presentations/cppcon2017.cpp index f044670f4..6a774d0fc 100644 --- a/test/unit/presentations/cppcon2017.cpp +++ b/test/unit/presentations/cppcon2017.cpp @@ -15,29 +15,29 @@ #include #include -namespace filesystem = std::filesystem; - template using fixed_point = cnl::scaled_integer>; -#if (defined(_MSC_VER) && _MSC_VER < 1932) || (defined(__GNUC__) && __cplusplus < 201703L) // wg21.link/LWG3657 +#if (defined(_MSC_VER) && _MSC_VER < 1932) || (defined(__GNUC__) && __cplusplus < 201703L) // wg21.link/LWG3657 template<> -struct std::hash { - auto operator()(filesystem::path const& p) const +struct std::hash { + auto operator()(std::filesystem::path const& p) const { - return filesystem::hash_value(p); + return std::filesystem::hash_value(p); } }; #endif +#if (defined(__clang__) && (__clang_major__ > 14)) // wg21.link/LWG3657 namespace a { using std::unique_ptr; using std::unordered_map; using byte = std::uint8_t; // NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays,cppcoreguidelines-avoid-non-const-global-variables) - unordered_map> cache; + unordered_map> cache; } +#endif namespace b { void f() diff --git a/test/unit/presentations/cppdub2018.cpp b/test/unit/presentations/cppdub2018.cpp index 0a9e84076..f78c06e95 100644 --- a/test/unit/presentations/cppdub2018.cpp +++ b/test/unit/presentations/cppdub2018.cpp @@ -16,30 +16,30 @@ #include #include -namespace filesystem = std::filesystem; - using cnl::make_scaled_integer; using cnl::power; using cnl::scaled_integer; -#if (defined(_MSC_VER) && _MSC_VER < 1932) || (defined(__GNUC__) && __cplusplus < 201703L) // wg21.link/LWG3657 +#if (defined(_MSC_VER) && _MSC_VER < 1932) || (defined(__GNUC__) && __cplusplus < 201703L) // wg21.link/LWG3657 template<> -struct std::hash { - auto operator()(filesystem::path const& p) const +struct std::hash { + auto operator()(std::filesystem::path const& p) const { - return filesystem::hash_value(p); + return std::filesystem::hash_value(p); } }; #endif +#if (defined(__clang__) && (__clang_major__ > 14)) // wg21.link/LWG3657 namespace a { using std::unique_ptr; using std::unordered_map; using byte = std::uint8_t; // NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays,cppcoreguidelines-avoid-non-const-global-variables) - unordered_map> cache; + unordered_map> cache; } +#endif namespace b { #if defined(CNL_IOSTREAMS_ENABLED)