diff --git a/.github/workflows/bvt-clang.yml b/.github/workflows/bvt-clang.yml index 6899004..fcb2f63 100644 --- a/.github/workflows/bvt-clang.yml +++ b/.github/workflows/bvt-clang.yml @@ -7,7 +7,7 @@ env: jobs: bvt-clang: - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - uses: actions/checkout@v7 diff --git a/.github/workflows/bvt-codecoverage.yml b/.github/workflows/bvt-codecoverage.yml index 0cab354..ea75b2c 100644 --- a/.github/workflows/bvt-codecoverage.yml +++ b/.github/workflows/bvt-codecoverage.yml @@ -4,7 +4,7 @@ on: jobs: bvt-codecoverage: - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 container: gcc:16 steps: - uses: actions/checkout@v7 diff --git a/.github/workflows/bvt-compatibility.yml b/.github/workflows/bvt-compatibility.yml index e096fb9..a8dfcb5 100644 --- a/.github/workflows/bvt-compatibility.yml +++ b/.github/workflows/bvt-compatibility.yml @@ -5,19 +5,19 @@ on: jobs: bvt-compatibility: name: ${{ matrix.compiler.family }}-${{ matrix.compiler.version }} - runs-on: ubuntu-24.04 + runs-on: ${{ matrix.compiler.runner }} strategy: fail-fast: false matrix: compiler: - - {family: gcc, version: 13, modules: false, doc_tests: true} - - {family: gcc, version: 14, modules: false, doc_tests: true} - - {family: clang, version: 16, modules: false, doc_tests: false} - - {family: clang, version: 17, modules: false, doc_tests: true} - - {family: clang, version: 18, modules: false, doc_tests: true} - - {family: clang, version: 19, modules: false, doc_tests: true} - - {family: clang, version: 20, modules: true, doc_tests: true} - - {family: clang, version: 21, modules: true, doc_tests: true} + - {family: gcc, version: 13, modules: false, doc_tests: true, runner: ubuntu-26.04} + - {family: gcc, version: 14, modules: false, doc_tests: true, runner: ubuntu-26.04} + - {family: clang, version: 16, modules: false, doc_tests: false, runner: ubuntu-24.04} + - {family: clang, version: 17, modules: false, doc_tests: true, runner: ubuntu-26.04} + - {family: clang, version: 18, modules: false, doc_tests: true, runner: ubuntu-26.04} + - {family: clang, version: 19, modules: false, doc_tests: true, runner: ubuntu-26.04} + - {family: clang, version: 20, modules: true, doc_tests: true, runner: ubuntu-26.04} + - {family: clang, version: 21, modules: true, doc_tests: true, runner: ubuntu-26.04} steps: - uses: actions/checkout@v7 @@ -35,10 +35,10 @@ jobs: if: ${{ matrix.compiler.family == 'clang' }} run: | version='${{ matrix.compiler.version }}' - if [ "$version" -ge 21 ]; then - curl https://apt.llvm.org/llvm.sh | sudo bash -s -- "$version" + if [ -z "$(apt-cache madison "clang-$version")" ]; then + curl -fsSL https://apt.llvm.org/llvm.sh | sudo bash -s -- "$version" fi - sudo apt install -y "clang-$version" "clang-tools-$version" "libc++-$version-dev" "libc++abi-$version-dev" + sudo apt install -y "clang-$version" "clang-tools-$version" "libc++-$version-dev" "libc++abi-$version-dev" "libunwind-$version-dev" cat <<'EOF' >> "$GITHUB_ENV" CC=clang-${{ matrix.compiler.version }} CXX=clang++-${{ matrix.compiler.version }} diff --git a/.github/workflows/bvt-gcc.yml b/.github/workflows/bvt-gcc.yml index 45e8b5c..4814893 100644 --- a/.github/workflows/bvt-gcc.yml +++ b/.github/workflows/bvt-gcc.yml @@ -4,7 +4,7 @@ on: jobs: bvt-gcc: - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 container: gcc:16 steps: - uses: actions/checkout@v7 diff --git a/.github/workflows/bvt-lint.yml b/.github/workflows/bvt-lint.yml index ec956da..b60eca2 100644 --- a/.github/workflows/bvt-lint.yml +++ b/.github/workflows/bvt-lint.yml @@ -4,9 +4,11 @@ on: jobs: bvt-lint: - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - uses: actions/checkout@v7 + with: + fetch-depth: 0 - name: Setup Python uses: actions/setup-python@v7.0.0 diff --git a/.github/workflows/bvt-nvhpc.yml b/.github/workflows/bvt-nvhpc.yml index 712dbb8..0fd38ae 100644 --- a/.github/workflows/bvt-nvhpc.yml +++ b/.github/workflows/bvt-nvhpc.yml @@ -7,12 +7,12 @@ env: jobs: bvt-nvhpc: - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - uses: actions/checkout@v7 - name: Free disk space - uses: jlumbroso/free-disk-space@v1.3.1 + uses: jlumbroso/free-disk-space@v2.0.0 - name: Install meson run: pipx install meson diff --git a/.github/workflows/bvt-oneapi.yml b/.github/workflows/bvt-oneapi.yml index 563fbc6..acebd86 100644 --- a/.github/workflows/bvt-oneapi.yml +++ b/.github/workflows/bvt-oneapi.yml @@ -4,7 +4,7 @@ on: jobs: bvt-oneapi: - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - uses: actions/checkout@v7 diff --git a/.github/workflows/bvt-report.yml b/.github/workflows/bvt-report.yml index 8da067e..27f3dc0 100644 --- a/.github/workflows/bvt-report.yml +++ b/.github/workflows/bvt-report.yml @@ -3,7 +3,7 @@ on: jobs: bvt-report: - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - uses: actions/checkout@v7 diff --git a/.github/workflows/pipeline-bump-cpp-deps.yml b/.github/workflows/pipeline-bump-cpp-deps.yml index f681939..025980a 100644 --- a/.github/workflows/pipeline-bump-cpp-deps.yml +++ b/.github/workflows/pipeline-bump-cpp-deps.yml @@ -12,7 +12,7 @@ permissions: jobs: bump-cpp-dependencies: - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 # The weekly cron only runs on the canonical repo. Forks can still trigger it manually. if: github.event_name != 'schedule' || github.repository == 'ngcpp/proxy' steps: @@ -20,7 +20,7 @@ jobs: id: app-token uses: actions/create-github-app-token@v3 with: - app-id: ${{ secrets.DEPENDENCY_MANAGER_APP_ID }} + client-id: ${{ secrets.DEPENDENCY_MANAGER_APP_ID }} private-key: ${{ secrets.DEPENDENCY_MANAGER_APP_PRIVATE_KEY }} - name: Resolve the bot's commit identity diff --git a/.github/workflows/pipeline-bump-renovate-deps.yml b/.github/workflows/pipeline-bump-renovate-deps.yml index 707e200..6b0a330 100644 --- a/.github/workflows/pipeline-bump-renovate-deps.yml +++ b/.github/workflows/pipeline-bump-renovate-deps.yml @@ -12,7 +12,7 @@ permissions: jobs: renovate: - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 # The weekly cron only runs on the canonical repo. Forks can still trigger it manually. if: github.event_name != 'schedule' || github.repository == 'ngcpp/proxy' steps: @@ -20,7 +20,7 @@ jobs: id: app-token uses: actions/create-github-app-token@v3 with: - app-id: ${{ secrets.DEPENDENCY_MANAGER_APP_ID }} + client-id: ${{ secrets.DEPENDENCY_MANAGER_APP_ID }} private-key: ${{ secrets.DEPENDENCY_MANAGER_APP_PRIVATE_KEY }} - name: Resolve the bot's commit identity diff --git a/.github/workflows/pipeline-pages.yml b/.github/workflows/pipeline-pages.yml index 353c421..7d30c84 100644 --- a/.github/workflows/pipeline-pages.yml +++ b/.github/workflows/pipeline-pages.yml @@ -7,7 +7,7 @@ on: jobs: build: - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - uses: actions/checkout@v7 with: @@ -33,7 +33,7 @@ jobs: deploy: needs: build - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: id-token: write pages: write diff --git a/.github/workflows/pipeline-release.yml b/.github/workflows/pipeline-release.yml index 3d23c4a..cdd96e2 100644 --- a/.github/workflows/pipeline-release.yml +++ b/.github/workflows/pipeline-release.yml @@ -8,7 +8,7 @@ jobs: name: Draft release permissions: contents: write - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - uses: actions/checkout@v7 - name: Pack source diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 5458d30..fb9f154 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,25 +14,25 @@ repos: args: ["--maxkb=1024"] - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.16.6 + rev: v0.16.8 hooks: - id: ruff-format - repo: https://github.com/BlankSpruce/gersemi-pre-commit - rev: 0.28.1 + rev: 0.29.1 hooks: - id: gersemi args: ["--indent", "2"] exclude: '^(subprojects|build|bazel-.*)/' - repo: https://github.com/keith/pre-commit-buildifier - rev: 8.5.1 + rev: 10.0.1 hooks: - id: buildifier exclude: '^(subprojects|build|bazel-.*)/' - - repo: https://github.com/rhysd/actionlint - rev: v1.7.12 + - repo: https://github.com/kjanat/actionlint + rev: v1.17.0 hooks: - id: actionlint @@ -50,7 +50,7 @@ repos: - id: clang-format name: clang-format language: python - additional_dependencies: ["clang-format==23.1.0"] + additional_dependencies: ["clang-format==23.1.1"] entry: python3 tools/format_cpp.py pass_filenames: false files: '\.(h|ixx|cpp|md)$' diff --git a/MODULE.bazel b/MODULE.bazel index 9c19b70..957d632 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -4,7 +4,7 @@ module( ) bazel_dep(name = "platforms", version = "1.1.0") -bazel_dep(name = "rules_cc", version = "0.2.22") +bazel_dep(name = "rules_cc", version = "0.2.25") bazel_dep(name = "bazel_skylib", version = "1.9.2") bazel_dep(name = "googletest", version = "1.18.0.bcr.1", dev_dependency = True) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 42a1573..4aaa63e 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -21,7 +21,8 @@ "https://bcr.bazel.build/modules/apple_support/1.21.1/MODULE.bazel": "5809fa3efab15d1f3c3c635af6974044bac8a4919c62238cce06acee8a8c11f1", "https://bcr.bazel.build/modules/apple_support/1.22.1/MODULE.bazel": "90bd1a660590f3ceffbdf524e37483094b29352d85317060b2327fff8f3f4458", "https://bcr.bazel.build/modules/apple_support/1.24.2/MODULE.bazel": "0e62471818affb9f0b26f128831d5c40b074d32e6dda5a0d3852847215a41ca4", - "https://bcr.bazel.build/modules/apple_support/1.24.2/source.json": "2c22c9827093250406c5568da6c54e6fdf0ef06238def3d99c71b12feb057a8d", + "https://bcr.bazel.build/modules/apple_support/2.8.0/MODULE.bazel": "c45f5176057092afba0be6c48a9ea02101666802f8be536947e099e94757f8ed", + "https://bcr.bazel.build/modules/apple_support/2.8.0/source.json": "b7f6d87669c206adaa7d82cc44733349c63e341b80a0e049496ebd91d78c3472", "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", "https://bcr.bazel.build/modules/bazel_features/1.10.0/MODULE.bazel": "f75e8807570484a99be90abcd52b5e1f390362c258bcb73106f4544957a48101", "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", @@ -143,8 +144,10 @@ "https://bcr.bazel.build/modules/rules_cc/0.2.14/MODULE.bazel": "353c99ed148887ee89c54a17d4100ae7e7e436593d104b668476019023b58df8", "https://bcr.bazel.build/modules/rules_cc/0.2.17/MODULE.bazel": "1849602c86cb60da8613d2de887f9566a6d354a6df6d7009f9d04a14402f9a84", "https://bcr.bazel.build/modules/rules_cc/0.2.18/MODULE.bazel": "4460ec36adc8f722a6a2a4ac9374cb91f2acebadaa93fc37966129afb3dece87", + "https://bcr.bazel.build/modules/rules_cc/0.2.20/MODULE.bazel": "f5c07bce5ddcb99be21a0812ff5aadb439e688b7449c6542152363b2fd859c1a", "https://bcr.bazel.build/modules/rules_cc/0.2.22/MODULE.bazel": "94df4328edef9e44d38de5e73b037cd348e75e7ae55f4e21bf07878c41a31ebb", - "https://bcr.bazel.build/modules/rules_cc/0.2.22/source.json": "b2d6d6f9c332ce269ad75b89c6f3168d809a66173c9040210fb9bcc733ab42fa", + "https://bcr.bazel.build/modules/rules_cc/0.2.25/MODULE.bazel": "4a3d4f3606d3b3190be495dbc497acca552807d1d5540661ef0d1658472882e3", + "https://bcr.bazel.build/modules/rules_cc/0.2.25/source.json": "8df28a9a97b878fe45f0a4f4adf019869dda51a60ee2f6e15a0c79656a25058d", "https://bcr.bazel.build/modules/rules_cc/0.2.8/MODULE.bazel": "f1df20f0bf22c28192a794f29b501ee2018fa37a3862a1a2132ae2940a23a642", "https://bcr.bazel.build/modules/rules_cc/0.2.9/MODULE.bazel": "34263f1dca62ea664265438cef714d7db124c03e1ed55ebb4f1dc860164308d1", "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", diff --git a/include/proxy/v4/detail/core.h b/include/proxy/v4/detail/core.h index 31c2ae2..cb40d66 100644 --- a/include/proxy/v4/detail/core.h +++ b/include/proxy/v4/detail/core.h @@ -1317,7 +1317,7 @@ struct converter { std::is_nothrow_invocable_r_v>) requires(std::is_invocable_r_v> && !std::is_invocable_r_v> && - !std::is_invocable_r_v>) + !std::is_invocable_r_v>) { return std::move(f_)(std::in_place_type); } @@ -1331,7 +1331,7 @@ struct converter { template operator T&&() && noexcept( std::is_nothrow_invocable_r_v>) - requires(std::is_invocable_r_v>) + requires(std::is_invocable_r_v>) { return std::move(f_)(std::in_place_type); } diff --git a/include/proxy/v4/detail/dispatch.h b/include/proxy/v4/detail/dispatch.h index 9c25dc6..23a4e7e 100644 --- a/include/proxy/v4/detail/dispatch.h +++ b/include/proxy/v4/detail/dispatch.h @@ -273,11 +273,10 @@ struct implicit_conversion_dispatch : detail::cast_dispatch_base { struct explicit_conversion_dispatch : detail::cast_dispatch_base { template PRO4D_STATIC_CALL(auto, T&& self) noexcept { - return detail::converter{ - [&self](std::in_place_type_t) noexcept( - std::is_nothrow_constructible_v) -> U - requires(detail::explicitly_convertible < T &&, U >) - { return static_cast(std::forward(self)); }}; + return detail::converter{[&self](std::in_place_type_t) noexcept( + std::is_nothrow_constructible_v) -> U + requires(detail::explicitly_convertible) + { return static_cast(std::forward(self)); }}; } }; using conversion_dispatch = explicit_conversion_dispatch; diff --git a/mkdocs/requirements.txt b/mkdocs/requirements.txt index 9f168b6..fc84208 100644 --- a/mkdocs/requirements.txt +++ b/mkdocs/requirements.txt @@ -2,9 +2,9 @@ markdown==3.10.3 mdx_truly_sane_lists==1.3 mkdocs-awesome-pages-plugin==2.10.1 mkdocs-exclude==1.0.2 -mkdocs-git-revision-date-localized-plugin==1.5.4 +mkdocs-git-revision-date-localized-plugin==1.6.0 mkdocs-material==9.7.7 mkdocs-open-in-new-tab==1.0.8 mkdocs==1.6.1 pygments==2.21.0 -pymdown-extensions==11.0.2 +pymdown-extensions==12.0.1