Skip to content

Conversation

@MungoG
Copy link
Collaborator

@MungoG MungoG commented Jan 19, 2026

Summary by CodeRabbit

  • Documentation

    • Added a library overview for Beast2 and included Boost Software License 1.0 details.
  • Chores

    • Streamlined CI workflows and build matrices; integrated a new module into CI and docs flows.
    • Updated ignore rules for new build artifacts and updated CI action versions.
  • Refactor

    • Adjusted header organization and targeted newer Windows compatibility.
    • Consolidated toolchain and build configuration variants.
  • Tests

    • Expanded test-linked libraries when unit tests are enabled; disabled a sample client build.

✏️ Tip: You can customize this high-level summary in your review settings.

@cppalliance-bot
Copy link

cppalliance-bot commented Jan 19, 2026

An automated preview of the documentation is available at https://153.beast2.prtest3.cppalliance.org/index.html

If more commits are pushed to the pull request, the docs will rebuild at the same URL.

2026-01-20 14:48:47 UTC

@coderabbitai
Copy link

coderabbitai bot commented Jan 20, 2026

📝 Walkthrough

Walkthrough

Introduces a new corosio module and updates CI workflows extensively: replaces/standardizes checkouts to v4, adjusts matrix/toolchains, adds corosio cloning and patching into boost workspace, expands sanitizer flags, updates build/test/antora/changelog jobs, and small build/header/readme/gitignore tweaks.

Changes

Cohort / File(s) Change summary
CI workflow
.github/workflows/ci.yml
Major rework: add corosio module, switch checkouts to v4, set env vars (DEBIAN_FRONTEND, TZ), reorganize matrices/toolchains/OS images, expand sanitizer flags, add corosio-root cloning/patching, update module scanning/ignore lists, and rename artifacts/jobs.
Build system (CMake & Jam)
CMakeLists.txt, build/Jamfile, example/Jamfile
Add Windows target macro _WIN32_WINNT=0x0602 (CMake and Jam). Extend test library deps when BOOST_BEAST2_BUILD_TESTS enabled. Disable client build in example Jamfile.
Library headers
include/boost/beast2.hpp
Replace server/http_server.hpp include with top-level http_server.hpp; remove server/serve_redirect.hpp and server/workers.hpp includes.
Docs & metadata
README.adoc, .gitignore
Add boost.beast2 description and license block to README.adoc. Add .cache/, .clangd, and /tmpclaude-*-cwd to .gitignore; scope CMakeUserPresets.json ignore to root.
Workflow docs & antora/changelog flows
... (within ci.yml steps)
Update Antora/Changelog jobs to clone Beast2 and corosio, adjust modules list, use v4 checkout, and change artifact names (e.g., antora-docs).

Sequence Diagram(s)

sequenceDiagram
    actor Developer
    participant GitHubActions as "GitHub Actions"
    participant Repo as "Main repo"
    participant ModuleRepos as "Beast2 / corosio / boost roots"
    participant Runner as "Build Runner"
    participant ArtifactStore as "Artifacts"

    Developer->>GitHubActions: Push PR / Trigger workflow
    GitHubActions->>Repo: checkout@v4 (main repo)
    GitHubActions->>ModuleRepos: clone corosio-root & beast2-root & boost-root
    GitHubActions->>Repo: apply patches (patch boost-root workspace)
    GitHubActions->>Runner: dispatch matrix builds (toolchains, sanitizers)
    Runner->>Repo: copy modules into workspace (libs/beast2, libs/corosio)
    Runner->>Runner: configure & build (CMake/Jam) with injected _WIN32_WINNT and sanitizer flags
    Runner->>Runner: run tests & linters
    Runner->>ArtifactStore: upload artifacts (antora-docs, binaries, logs)
    GitHubActions->>Developer: report status / artifacts
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Poem

I nibble at patches in moonlit code,
A corosio sprout in workflow's road.
Checkouts updated, modules align,
Builds hum softly — CI's carrot vine.
Hop, test, and stash the artifacts I sow.

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'CI fixes' is vague and overly generic, failing to convey meaningful information about the specific changes made in the changeset. Consider using a more descriptive title that captures the main changes, such as 'Reorganize CI workflow for modular architecture with Corosio integration and update Jamfile' or similar.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Fix all issues with AI agents
In @.github/workflows/ci.yml:
- Around line 308-313: The workflow step named "Clone Boost.Corosio" is using
actions/checkout@v3 which relies on Node.js 16 and will fail on current GitHub
runners; update the step to use actions/checkout@v4 by changing the uses field
from actions/checkout@v3 to actions/checkout@v4 (leave the path, repository, and
ref values intact) so the checkout uses the supported runtime.

In `@CMakeLists.txt`:
- Around line 80-82: The find_package call is missing conditional components
(asio, filesystem, beast, multiprecision) declared under
BOOST_BEAST2_BUILD_TESTS and BOOST_BEAST2_BUILD_EXAMPLES; fix by introducing a
BOOST_BEAST2_FIND_COMPONENTS list, APPEND asio filesystem beast when
BOOST_BEAST2_BUILD_TESTS is ON and APPEND multiprecision when
BOOST_BEAST2_BUILD_EXAMPLES is ON, then call find_package(Boost REQUIRED
COMPONENTS ${BOOST_BEAST2_FIND_COMPONENTS}) so the conditional dependencies are
requested explicitly (update references around BOOST_BEAST2_BUILD_TESTS,
BOOST_BEAST2_BUILD_EXAMPLES, BOOST_BEAST2_FIND_COMPONENTS and the existing
find_package invocation).

In `@README.adoc`:
- Around line 38-40: Replace the Markdown-style link and incorrect filename in
README.adoc: locate the line containing "Distributed under the Boost Software
License, Version 1.0." and the Markdown link referencing LICENSE_1_0.txt, change
the link to AsciiDoc syntax and point it to the actual repository file name
"LICENSE" (e.g., use AsciiDoc file link form to reference LICENSE instead of the
Markdown [LICENSE_1_0.txt](...) form).

In `@tmpclaude-fc7e-cwd`:
- Line 1: Delete the machine-specific scratch file "tmpclaude-fc7e-cwd" from the
repository and remove it from the commit/diff, then add an appropriate ignore
rule (for example the literal filename or a pattern matching similar tmp/* or
*-cwd files) to .gitignore so this local absolute-path artifact isn't committed
again; ensure the CI/local build doesn't require this file before removing it.
♻️ Duplicate comments (1)
.github/workflows/ci.yml (1)

665-671: Update this checkout to v4 as well.

Same Node16 deprecation risk here.

Suggested update
-        uses: actions/checkout@v3
+        uses: actions/checkout@v4

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In @.github/workflows/ci.yml:
- Line 113: The commented-out macOS runner value "macos-26" is invalid; update
the commented or active runner setting in the CI workflow to a supported
GitHub-hosted runner such as "macos-14" or "macos-15" (i.e., replace the
"macos-26" string in the workflow job runner entry with a valid runner name) so
that if macOS support is re-enabled it uses a correct runner.
- Around line 272-274: The runner-selection job is currently executed but its
output is unused; either prevent it from running by adding a conditional (e.g.,
set an if: expression on the runner-selection job such as if:
matrix.use-self-hosted == 'true' or if:
github.event.workflow_dispatch.inputs.use_runner_selection == 'true') so it only
runs when needed, or remove the dependency from the build job by deleting needs:
[runner-selection] (and any references to
fromJSON(needs.runner-selection.outputs.labelmatrix)) and keep build using
runs-on: ${{ matrix.runs-on }}; update any matrix or workflow inputs accordingly
to ensure correct runner selection behavior.
♻️ Duplicate comments (1)
.github/workflows/ci.yml (1)

308-313: LGTM - Previous issue resolved.

The actions/checkout@v4 is now correctly used, addressing the Node.js 16 runtime deprecation issue flagged in the previous review.

# latest-cxxstd: "20"
# cxx: "clang++"
# cc: "clang"
# runs-on: "macos-26"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Typo: macos-26 runner doesn't exist.

The commented-out macOS configuration references macos-26, which is not a valid GitHub-hosted runner. When re-enabling macOS support, this should be corrected to an existing runner like macos-14 or macos-15.

🤖 Prompt for AI Agents
In @.github/workflows/ci.yml at line 113, The commented-out macOS runner value
"macos-26" is invalid; update the commented or active runner setting in the CI
workflow to a supported GitHub-hosted runner such as "macos-14" or "macos-15"
(i.e., replace the "macos-26" string in the workflow job runner entry with a
valid runner name) so that if macOS support is re-enabled it uses a correct
runner.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @.github/workflows/ci.yml:
- Around line 677-688: The Antora workflow step lists http-io-root under
scan-modules-dir but never clones that repo; update the Antora job to clone the
same http-io repository used in the build job (add a checkout/clone action for
http-io-root) so the http-io-root directory exists before scanning; look for the
Antora job configuration that defines scan-modules-dir/scan-modules-ignore and
add the corresponding clone/checkout step for the http-io repository (match the
clone logic used for the build job to ensure directory name and branch/commit
are consistent).
♻️ Duplicate comments (1)
.github/workflows/ci.yml (1)

111-137: Typo: macos-26 runner doesn't exist.

The commented-out macOS configuration at line 117 still references macos-26, which is not a valid GitHub-hosted runner. When BSD/kqueue support is implemented and macOS is re-enabled, this should be corrected to macos-14 or macos-15.

🧹 Nitpick comments (1)
.github/workflows/ci.yml (1)

438-438: Property time-trace is not defined in any matrix entry.

The workflow references matrix.time-trace in multiple conditions (lines 438, 460, 480, 565), but no matrix entry defines this property. This means:

  • The B2 workflow condition !matrix.time-trace is always true
  • The FlameGraph step (line 565) never executes
  • export-compile-commands is always empty

If time-trace profiling is intended, add time-trace: true to a matrix entry. Otherwise, consider removing these references to avoid confusion.

Comment on lines 677 to +688
scan-modules-dir: |
http-io-root
http-proto-root
http-root
buffers-root
capy-root
corosio-root
scan-modules-ignore: |
beast2
http
buffers
capy
corosio
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Same issue: http-io-root listed but not cloned.

The antora job has the same http-io-root reference in scan-modules-dir without a corresponding clone step. Apply the same fix as the build job.

🤖 Prompt for AI Agents
In @.github/workflows/ci.yml around lines 677 - 688, The Antora workflow step
lists http-io-root under scan-modules-dir but never clones that repo; update the
Antora job to clone the same http-io repository used in the build job (add a
checkout/clone action for http-io-root) so the http-io-root directory exists
before scanning; look for the Antora job configuration that defines
scan-modules-dir/scan-modules-ignore and add the corresponding clone/checkout
step for the http-io repository (match the clone logic used for the build job to
ensure directory name and branch/commit are consistent).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants