Skip to content

ci: add newdeps job testing newer versions of cmake and capnproto - #212

Merged
ryanofsky merged 1 commit into
bitcoin-core:masterfrom
ryanofsky:pr/newdeps
Aug 26, 2026
Merged

ci: add newdeps job testing newer versions of cmake and capnproto#212
ryanofsky merged 1 commit into
bitcoin-core:masterfrom
ryanofsky:pr/newdeps

Conversation

@ryanofsky

@ryanofsky ryanofsky commented Sep 17, 2025

Copy link
Copy Markdown
Collaborator

Add CI job testing latest released version of cmake, and latest unreleased version of cap'n proto to uncover any problems there may be with new releases. Use git version of cap'n proto because we've submitted patches to that project to fix issues in the past, so it would be good to know about any new issues as soon as possible.

@DrahtBot

DrahtBot commented Sep 17, 2025

Copy link
Copy Markdown

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Reviews

See the guideline and AI policy for information on the review process.

Type Reviewers
ACK maflcko, hebasto

If your review is incorrectly listed, please copy-paste <!--meta-tag:bot-skip--> into the comment that the bot should ignore.

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #353 (ci: add cmake --parallel build option by ryanofsky)
  • #352 (ci: add cmake debug output by ryanofsky)
  • #333 (nix: Make clang tooling and IWYU find the right standard library headers by ryanofsky)
  • #231 (Add windows support by ryanofsky)
  • #209 (cmake: Increase cmake policy version by ryanofsky)
  • #175 (Set cmake_minimum_required(VERSION 3.22) by maflcko)

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

@ryanofsky

Copy link
Copy Markdown
Collaborator Author

These changes were originally part of #209 but moved them to a separate PR since #209 might be blocked or require more time to discuss

Comment thread ci/scripts/ci.sh Outdated
if ! cmake "$src_dir" "${cmake_args[@]}"; then
# If cmake failed, try it again with debug options.
# Could add --trace / --trace-expand here too but they are very verbose.
cmake_args+=(--debug-find --debug-output --debug-trycompile --log-level=DEBUG)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

While this project maintains support for CMake versions as old as 3.12, I believe this support should also extend consistently to the CI infrastructure, particularly given the "olddeps" job, which runs CMake 3.12.4. Therefore, features incompatible with CMake 3.12, such as --debug-find and --log-level, should be avoided. For example, the "olddeps" CI job may result in:

+ cmake /home/runner/work/libmultiprocess/libmultiprocess --debug-find --debug-output --debug-trycompile --log-level=DEBUG
CMake Error: The source directory "/home/runner/work/libmultiprocess/libmultiprocess/build-olddeps/--log-level=DEBUG" does not exist.

Alternatively, the minimum supported CMake version could be bumped.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

re: #212 (comment)

For example, the "olddeps" CI job may result in

If the problem you would like me to solve is that extra output potentially appearing in the olddeps job, it is trivial to skip the debug step there with:

-if ! cmake "$src_dir" "${cmake_args[@]}"; then
+if ! cmake "$src_dir" "${cmake_args[@]}" && ver_ge "$cmake_ver" "3.17"; then

But I don't see a problem with this extra output and I don't know if this the issue you actually care about. If you are arguing that systems using cmake 3.16 should not be supported because it does not support the --debug-find option, than that sounds like something to mention in #175 more than here.

Comment thread ci/scripts/ci.sh Outdated
# Could add --trace / --trace-expand here too but they are very verbose.
cmake_args+=(--debug-find --debug-output --debug-trycompile --log-level=DEBUG)
cmake "$src_dir" "${cmake_args[@]}" || : "cmake exited with $?"
cat CMakeFiles/CMakeConfigureLog.yaml || true

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Moving discussion from #209 (comment).

re: #209 (comment)

6ba1050
This log file name has been used only since CMake 3.26.

Yes that's part of the reason for adding || true here. I think this code could potentially print log files used by older versions of cmake too, and originally this change tried that, but since all CI jobs except one are using new enough versions of cmake it didn't seem worth complexity.

One may argue: why introduce complexity for a feature that doesn’t work with the minimum supported CMake version in the first place?

Would happily accept a PR to patch to improve this though.

This would make sense if it were the only compatibility issue in this PR.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

re: #212 (comment)

One may argue: why introduce complexity for a feature that doesn’t work with the minimum supported CMake version in the first place?

It would be helpful to know what complexity you are referring to specifically here. The find_packge(Threads REQUIRED) issue would have been impossible to debug without the line:

cat CMakeFiles/CMakeConfigureLog.yaml || true

and I do not feel like it adds much complexity. This CI script in general seems short and simple to me. I don't know what problem you have with the other debug prints either. In general, I feel like it would be a lot easier to respond to your comments if they could make it clear:

  1. What observable problem you think this change causes, or could potentially cause.
  2. What change you would suggest to fix the problem.

@ryanofsky ryanofsky left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Appreciate your review, even though I am having trouble understanding what your practical concerns are and what specific changes I could make that would address them.

Hopefully we both accept the premise that it is good to have a new CI job testing newer versions of cmake and capnproto, and it is good to show more debug output when cmake configuration fails.

Comment thread ci/scripts/ci.sh Outdated
# Could add --trace / --trace-expand here too but they are very verbose.
cmake_args+=(--debug-find --debug-output --debug-trycompile --log-level=DEBUG)
cmake "$src_dir" "${cmake_args[@]}" || : "cmake exited with $?"
cat CMakeFiles/CMakeConfigureLog.yaml || true

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

re: #212 (comment)

One may argue: why introduce complexity for a feature that doesn’t work with the minimum supported CMake version in the first place?

It would be helpful to know what complexity you are referring to specifically here. The find_packge(Threads REQUIRED) issue would have been impossible to debug without the line:

cat CMakeFiles/CMakeConfigureLog.yaml || true

and I do not feel like it adds much complexity. This CI script in general seems short and simple to me. I don't know what problem you have with the other debug prints either. In general, I feel like it would be a lot easier to respond to your comments if they could make it clear:

  1. What observable problem you think this change causes, or could potentially cause.
  2. What change you would suggest to fix the problem.

Comment thread ci/scripts/ci.sh Outdated
if ! cmake "$src_dir" "${cmake_args[@]}"; then
# If cmake failed, try it again with debug options.
# Could add --trace / --trace-expand here too but they are very verbose.
cmake_args+=(--debug-find --debug-output --debug-trycompile --log-level=DEBUG)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

re: #212 (comment)

For example, the "olddeps" CI job may result in

If the problem you would like me to solve is that extra output potentially appearing in the olddeps job, it is trivial to skip the debug step there with:

-if ! cmake "$src_dir" "${cmake_args[@]}"; then
+if ! cmake "$src_dir" "${cmake_args[@]}" && ver_ge "$cmake_ver" "3.17"; then

But I don't see a problem with this extra output and I don't know if this the issue you actually care about. If you are arguing that systems using cmake 3.16 should not be supported because it does not support the --debug-find option, than that sounds like something to mention in #175 more than here.

@ryanofsky ryanofsky left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Rebased 6ba1050 -> 03b147e (pr/newdeps.1 -> pr/newdeps.2, compare) due to conflict with #334

Updated 03b147e -> b3fc922 (pr/newdeps.2 -> pr/newdeps.3, compare) dropping debug commit 03b147e

@maflcko maflcko left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm ACK b3fc922

Comment thread ci/scripts/ci.sh
src_dir=$PWD
mkdir -p "$CI_DIR"
cd "$CI_DIR"
git --no-pager log -1 || true

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

is there a ci config that does not have git? I can't see one and it seems easy enough to just require it, so that logs always have the commit embedded?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

re: #212 (comment)

is there a ci config that does not have git? I can't see one and it seems easy enough to just require it, so that logs always have the commit embedded?

Sounds like the request here is to remove || true?

I'd slightly prefer to keep it just because these CI scripts are useful for testing locally even outside context of a real CI system, and there are reasons it can be useful to copy files around and not have valid git checkouts during testing. But it is true that a drawback of || true is that it could allow someone to add a CI job that does not have print the commit hash here. So I'd be ok with a change dropping || true in my planned followup, just let me know.

Comment thread ci/configs/newdeps.bash
CI_DESC="CI job using newest Cap'n Proto and cmake versions"
CI_DIR=build-newdeps
export CXXFLAGS="-Werror -Wall -Wextra -Wpedantic -Wno-unused-parameter -Wno-error=array-bounds"
CAPNP_CHECKOUT=master

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
CAPNP_CHECKOUT=master
CAPNP_CHECKOUT=master # This is the v1.x release branch

The default branch is v2, maybe clarify what master means?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

re: #212 (comment)

The default branch is v2, maybe clarify what master means?

Good suggestion, have added in followup

@hebasto hebasto left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

ACK b3fc922.

Add CI job testing latest released version of cmake...

Could be updated as follows:

--- a/ci/configs/newdeps.bash
+++ b/ci/configs/newdeps.bash
@@ -2,5 +2,5 @@ CI_DESC="CI job using newest Cap'n Proto and cmake versions"
 CI_DIR=build-newdeps
 export CXXFLAGS="-Werror -Wall -Wextra -Wpedantic -Wno-unused-parameter -Wno-error=array-bounds"
 CAPNP_CHECKOUT=master
-NIX_ARGS=(--argstr capnprotoVersion "none" --argstr cmakeVersion "4.1.1")
+NIX_ARGS=(--argstr capnprotoVersion "none" --argstr cmakeVersion "4.3.4")
 BUILD_ARGS=(-k)
--- a/shell.nix
+++ b/shell.nix
@@ -55,7 +55,7 @@ let
   clang-tools = llvm.clang-tools.override { inherit enableLibcxx; };
   cmakeHashes = {
     "3.12.4" = "sha256-UlVYS/0EPrcXViz/iULUcvHA5GecSUHYS6raqbKOMZQ=";
-    "4.1.1" = "sha256-sp9vGXM6oiS3djUHoQikJ+1Ixojh+vIrKcROHDBUkoI=";
+    "4.3.4" = "sha256-/e/4l7nrSddkU58rHtxut+FEDfMlZ4qXwZeEmekxrdo=";
   };
   gcc = if gccVersion == null then null else builtins.getAttr ("gcc" + gccVersion) pkgs;
   cmakeBuild = if cmakeVersion == null then pkgs.cmake else (pkgs.cmake.overrideAttrs (old: {

@ryanofsky ryanofsky left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Thanks for the reviews! Am planning to merge as-is since this is reviewed and passes ci, but will make a followup bumping the cmake version and implementing other suggestions

Comment thread ci/scripts/ci.sh
src_dir=$PWD
mkdir -p "$CI_DIR"
cd "$CI_DIR"
git --no-pager log -1 || true

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

re: #212 (comment)

is there a ci config that does not have git? I can't see one and it seems easy enough to just require it, so that logs always have the commit embedded?

Sounds like the request here is to remove || true?

I'd slightly prefer to keep it just because these CI scripts are useful for testing locally even outside context of a real CI system, and there are reasons it can be useful to copy files around and not have valid git checkouts during testing. But it is true that a drawback of || true is that it could allow someone to add a CI job that does not have print the commit hash here. So I'd be ok with a change dropping || true in my planned followup, just let me know.

Comment thread ci/configs/newdeps.bash
CI_DESC="CI job using newest Cap'n Proto and cmake versions"
CI_DIR=build-newdeps
export CXXFLAGS="-Werror -Wall -Wextra -Wpedantic -Wno-unused-parameter -Wno-error=array-bounds"
CAPNP_CHECKOUT=master

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

re: #212 (comment)

The default branch is v2, maybe clarify what master means?

Good suggestion, have added in followup

@ryanofsky
ryanofsky merged commit 49f95e2 into bitcoin-core:master Aug 26, 2026
14 checks passed
ryanofsky added a commit that referenced this pull request Sep 8, 2026
Update cmake from 4.1.1 to 4.3.4, including the corresponding sha256
hash in shell.nix.

Suggested-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Reference: #212 (review)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ryanofsky added a commit that referenced this pull request Sep 8, 2026
capnproto's default branch switched to v2, so "master" is non-obvious.

Suggested-by: MarcoFalke <falke.marco@gmail.com>
Reference: #212 (comment)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ryanofsky added a commit that referenced this pull request Sep 8, 2026
766867f ci: clarify CAPNP_CHECKOUT=master is the v1.x release branch (Ryan Ofsky)
cc36752 ci: bump cmake version to 4.3.4 in newdeps job (Ryan Ofsky)

Pull request description:

  Update cmake from 4.1.1 to 4.3.4 and add capnproto branch comment as suggested in #212 reviews

ACKs for top commit:
  maflcko:
    lgtm ACK 766867f code changes seem fine, but the `Co-Authored-By: Claude` seems a bit extraneous, when all it did was cherry-picking my diff from GitHub. No strong opinion, but my preference would be to drop the tag here.
  hebasto:
    ACK 766867f.

Tree-SHA512: 10a8643256703a2aeaed90448ae24254dab86b683fe44e34c93afdbe6e2de859274b1a0a30c73a3401f174066b1e01c614593cb4c6bb364aa5aa517066d22fcc
vmta added a commit to umkoin/umkoin that referenced this pull request Sep 11, 2026
2dba13047 Merge bitcoin-core/libmultiprocess#363: ci: use LLVM 23 in Bitcoin Core CI
161197a5c Merge bitcoin-core/libmultiprocess#352: ci: add cmake debug output
fb4ac7eb8 ci: use LLVM 23 in Bitcoin Core CI
7bac69de1 Merge bitcoin-core/libmultiprocess#360: pull latest .clang-tidy from downstream
79ddc44eb Merge bitcoin-core/libmultiprocess#359: ci: bump cmake version to 4.3.4 in newdeps job
bf229bf82 Merge bitcoin-core/libmultiprocess#351: ci: do not ignore NIXPKGS_CHANNEL in local ci runs
073ac4f19 Merge bitcoin-core/libmultiprocess#347: refactor: Replace EventLoop::post() with sync() taking kj::FunctionParam
fa1db7a9e pull latest .clang-tidy from downstream
5c49666a1 refactor: rename EventLoop::m_post_fn to m_sync_fn
2330fbe81 refactor: replace EventLoop::post() with sync() taking kj::FunctionParam
4d454a81d Merge bitcoin-core/libmultiprocess#358: refactor: Enable readability-container-contains
dba99582b Merge bitcoin-core/libmultiprocess#357: doc: Update Cap'n Proto version to match minimum
00923922a Merge bitcoin-core/libmultiprocess#356: ci: Remove hard-coded -j4 from sanitize config
766867fb3 ci: clarify CAPNP_CHECKOUT=master is the v1.x release branch
cc3675280 ci: bump cmake version to 4.3.4 in newdeps job
fa101113b refactor: Enable readability-container-contains
81f824b02 doc: Update Cap'n Proto version to match minimum
fa30e2093 ci: Remove hard-coded -j4 from sanitize config
a7ff9d5da ci: add cmake debug output
f2e8df82e Merge bitcoin-core/libmultiprocess#350: cmake: add type-unordered-set.h and version.h to public headers
0e146c046 Merge bitcoin-core/libmultiprocess#349: type-context: fix async disconnect race condition found by antithesis
49f95e263 Merge bitcoin-core/libmultiprocess#212: ci: add newdeps job testing newer versions of cmake and capnproto
7c73cceda ci: rename CI-internal variables to use CI_ prefix
fe1b8339f ci: do not ignore NIXPKGS_CHANNEL in local ci runs
914dc839f proxy: fix data race between server request threads and disconnect handling
275c8eefd Merge bitcoin-core/libmultiprocess#345: Remove trailing whitespace and Add -Wtrailing-whitespace to default ci config
cd7162fb8 Merge bitcoin-core/libmultiprocess#304: proxy: fix BuildList to use non-const iteration for interface types
9b136782a ci: Add -Wtrailing-whitespace to default config
2f4be9ec6 refactor: Remove trailing whitespace
2448d282c cmake: add type-unordered-set.h and version.h to public headers
b3fc922ee ci: add newdeps job testing newest versions of cmake and capnproto
390b5f901 Merge bitcoin-core/libmultiprocess#344: test: listen_tests and connect_tests follow-ups
d6f8588d1 proxy: fix BuildList to use non-const iteration for interface types
e18ca520f Merge bitcoin-core/libmultiprocess#343: test: fix race in connect_tests disconnect-deferred-failure test
c39c7850c doc: note construct() call in valid init interface test
b9c36c617 test: close sockets unconditionally and check errors with KJ_SYSCALL
7eb741e63 test: drop unnecessary KJ_EXPECT(true)
113f1d4d2 test: join server thread unconditionally in connect tests
44bc4630b test: drop mp:: prefixes in connect tests
038d33eb3 test: share DefaultLogHandler between test files
b54a16330 test: drop TestSetup socket members in connect tests
70467c5a7 test: add m_ prefix to TestSetup members in connect tests
cc260f252 test: replace capnp fix link with upstream PR
137a6e4e0 test: fix race in connect_tests disconnect-deferred-failure test
8dab0d4bd Merge bitcoin-core/libmultiprocess#341: ci: add -Wextra-semi to llvm config
b3b134eed ci: add -Wextra-semi to llvm config
bdd0cd694 Merge bitcoin-core/libmultiprocess#339: refactor: add `[[noreturn]]` attributes
a779a0976 ci: add -Wmissing-noreturn
636aaff57 refactor: add missing [[noreturn]] attributes
cc11c2b1b Merge bitcoin-core/libmultiprocess#338: test: check ReadList return value
2d6e863c7 Merge bitcoin-core/libmultiprocess#334: ci: Set CMAKE_BUILD_PARALLEL_LEVEL to enable parallelism by default
d4d10ff98 Merge bitcoin-core/libmultiprocess#332: ci: add -Wextra-semi to default config
b540e70f2 Merge bitcoin-core/libmultiprocess#324: proxy: Name threads spawned by the event loop
e5e367e78 Merge bitcoin-core/libmultiprocess#312: util: report back child errors to parent and throw
2220df68c Merge bitcoin-core/libmultiprocess#298: Fix error handling when creating clients (`mp::ConnectStream`)
51defb79e Merge bitcoin-core/libmultiprocess#340: ci: Update `capnproto` prerequisites on NetBSD
7e94790b0 ci: Update `capnproto` prerequisites on NetBSD
9f25ffca5 test: Cover OS thread names for worker, pool, and async threads
648a18589 proxy: Name threads spawned by the event loop
49834b260 ci: add -Wextra-semi to default config
fae9a637e example: Remove unused kj/async.h include
bb473690c Fix error handling when creating clients
44d191420 Add test coverage for ConnectStream
231361ae5 Correct stale UnixListener doc comment
060c1a50d Extract `UnixListener` class to a dedicated file
62f25af06 test: check ReadList return value
ce51d7372 ci: Set CMAKE_BUILD_PARALLEL_LEVEL to enable parallism in build jobs by default
67302cd13 Merge bitcoin-core/libmultiprocess#331: Remove code for Cap'n Proto versions before 0.9
f13c64ab5 Merge bitcoin-core/libmultiprocess#330: ci: Compile with minimum supported g++ in olddeps
8e026f662 Merge bitcoin-core/libmultiprocess#327: build: avoid unnecessary capnp-rpc dependency for mpgen
e5206e9eb Merge bitcoin-core/libmultiprocess#325: cmake: Remove `QUIET` option from `find_package(CapnProto ...)`
879efea2b Merge bitcoin-core/libmultiprocess#321: ci: Roll NetBSD releases to 11.0, drop 9.4
abf127a31 Merge bitcoin-core/libmultiprocess#317: ipc: Fix mpgen capnp tool path for vcpkg/Windows builds
c437d7f10 Merge bitcoin-core/libmultiprocess#310: test: cover immediate client disconnects for `ListenConnections`
31bff8a67 Merge bitcoin-core/libmultiprocess#307: refactor: memcpy -> std::ranges::copy
f355108b0 Merge bitcoin-core/libmultiprocess#303: type-chrono: Add CustomBuildField/CustomReadField overloads for std::chrono::time_point
2d678177c Merge bitcoin-core/libmultiprocess#296: ci: Bump channel to nixos-26.05
3f05b1162 util: kill and reap child on SpawnProcess error
4a56c1837 util: report back child error to parent and throw
a9e70dbe7 ci: Add NetBSD release 11.0
2d33b14fb ci: Switch to default compiler on NetBSD 9.4
36f740027 ci: Drop NetBSD release 9.4
bd508311b refactor: Drop stray semicolons after function definitions
788f17a85 Remove code for Cap'n Proto versions before 0.9
7402affd0 ci: Pin oldeps config to older nixpkgs channel to compile older cmake with older gcc
edf634356 ci: Compile with minimum supported g++-11 in olddeps
fa47449af cmake: avoid unnecessary capnp-rpc dependency for mpgen
a494b764d cmake: Remove `QUIET` option from `find_package(CapnProto ...)`
26452e02d refactor: memcpy -> std::ranges::copy
e1dcc6eb1 Merge bitcoin-core/libmultiprocess#316: cmake: Fix stale codegen when mpgen binary changes
7a72df02e type-chrono: Add CustomBuildField/CustomReadField overloads for std::chrono::time_point
45b685c3f type-number, type-chrono: Fix static assert signed/unsigned comparisons
45f625597 type-number: exclude bool from the integral overload
8d6d46494 Merge bitcoin-core/libmultiprocess#315: Fix startup race in example
a6fc80d25 Merge bitcoin-core/libmultiprocess#311: bugfix: clear FD_CLOEXEC in child instead of parent before fork
496fb84e6 test: cover immediate client disconnects for `ListenConnections`
36c6c6352 doc: Document reference-counted EventLoop lifetime
3a997e113 Fix startup race in mpexample
f5c15ce33 Merge bitcoin-core/libmultiprocess#323: refactor: access ThreadContext through CurrentThread(), ci: switch Bitcoin Core to master
66298c737 ci: Switch back to Bitcoin Core's master branch
86b481050 refactor: access ThreadContext through CurrentThread()
eea9c64f6 cmake: Fix stale codegen when mpgen binary changes
a26a08496 cmake: Fix mpgen capnp tool path for vcpkg/Windows builds
140d9ba6f test: allow custom log handler in `ListenSetup`
1e0c7ff9a util: Clear FD_CLOEXEC in child instead of parent before fork
8550ee6a3 util, refactor: Add ChildFail helper for post-fork child errors
17eab90b5 test: Fix typo in listen_tests.cpp
ce865a9ba refactor: Directly use value in CustomBuildField
3f221b5bf Merge bitcoin-core/libmultiprocess#274: Add nonunix platform support
e8de5c7b6 Merge bitcoin-core/libmultiprocess#305: refactor: memcpy to std::ranges::copy to work around ubsan warn
1b0f60560 doc: Remove trailing whitespace
d8f8ca311 ipc: Wrap mpgen main() in try-catch to print errors
fbe5a14ad ci: Check out bitcoin/bitcoin PR #35084 instead of master
39d3690d8 types: Replace SFINAE with requires clauses to avoid MSVC C2039 error
ba6852020 proxy, refactor: Fix C4305 truncation warning in Accessor on MSVC
1d81d4781 util, refactor: Fix PtrOrValue constructor for move-only types on MSVC
b883fe1e5 proxy: Fix shutdownWrite() exception handling on macOS with dynamic libraries
0012411cc proxy: Call shutdownWrite() in Connection destructor
38312ad19 proxy, refactor: Change ConnectStream and ServeStream to accept stream objects
e96d5d742 proxy, refactor: Replace EventLoop wakeup fd integers with KJ stream objects
db4f9a3d7 cmake: Bump minimum required Cap'n Proto version to 0.9
652934fb7 util, refactor: Add SocketPair() and use it in SpawnProcess
1c6ef7a26 util, refactor: Do not fork() and exec() separately
1389cf313 util, refactor: Add SpawnConnectInfo type alias and use it
c7ca1f00b util, refactor: Add SocketId type alias and use it
be46a3520 util, refactor: Add ProcessId type alias and use it
91a78db78 doc: Bump version 13 > 14
9307e68e5 Merge bitcoin-core/libmultiprocess#306: doc: Bump version 12 > 13
fac7b9b7f refactor: memcpy to std::ranges::copy to work around ubsan warn
1bd702560 Merge bitcoin-core/libmultiprocess#297: test: add map serialization round-trip coverage
438fdd243 doc: Bump version 12 > 13
28e056576 Merge bitcoin-core/libmultiprocess#269: proxy: add local connection limit to ListenConnections
39a10ce89 proxy: add local connection limit to ListenConnections()
43172f52d test: add dedicated ListenConnections coverage
033f81219 doc/version: Bump version 11 > 12
463d073cb test: rename vBool to vector_bool
16bf05dea Merge bitcoin-core/libmultiprocess#302: refactor: rename EventLoop::m_num_clients to m_num_refs
dd537da9e Merge bitcoin-core/libmultiprocess#301: test: recursive async IPC calls and cleanups
400291de0 Merge bitcoin-core/libmultiprocess#299: ci: remove libevent from Core CIs
092be515a Merge bitcoin-core/libmultiprocess#285: Add ReadList helper
5b617880c Merge bitcoin-core/libmultiprocess#283: Add `makePool` method on `ThreadMap`
d49983041 refactor: rename EventLoop::m_num_clients to m_num_refs
6450345c9 type: reserve first when reading std::unordered_set
4d0f8db5f proxy: add ReadList helper and dedup map/set/vector read handlers
0e49d9118 Add `makePool` method on `ThreadMap`
5519f7f94 test: recursive async IPC calls
a29ceff40 ci: remove libevent from Core CIs
85df23384 test: add mapStringInt to foo.capnp to cover map serialization and deserialization
fa2c56ec2 ci: Bump channel to nixos-26.05
8412fcdc6 Merge bitcoin-core/libmultiprocess#295: Mark Waiter m_cv as guarded by m_mutex
1593ee2d1 Merge bitcoin-core/libmultiprocess#294: test: Add passDouble smoke test
9885d7dd3 Merge bitcoin-core/libmultiprocess#286: proxy-client: fix TSan data race in clientDestroy
fa35501c4 Mark Waiter m_cv as guarded by m_mutex
faaedb11f test: Add passDouble smoke test
733c64318 Merge bitcoin-core/libmultiprocess#292: type-number: fix clang-tidy modernize-use-nullptr
9cc3479ab Merge bitcoin-core/libmultiprocess#291: cmake: Add `mp_headers` custom target
201abd9e3 Merge bitcoin-core/libmultiprocess#289: cmake: make target_capnp_sources use CURRENT dirs
99820c8ae Merge bitcoin-core/libmultiprocess#279: doc: Add comments to FIELD_* constants in proxy.h
73b985540 Merge bitcoin-core/libmultiprocess#278: doc: Fix and expand design.md
e7e91b2e2 Merge bitcoin-core/libmultiprocess#277: Add std::unordered_set support and a helper BuildList to dedup list build handlers
91a951f59 tidy fix: modernize-use-nullptr
16362f42d cmake: Add `mp_headers` custom target
615a94fe3 cmake: document ONLY_CAPNP option in target_capnp_sources
90982f75c mpgen: iwyu changes required by previous commit
25bb3e67f proxy-client: fix TSan data race in clientDestroy
620f297f3 cmake: make target_capnp_sources use CURRENT dirs
9de4b885a test: use camelCase + $Proxy.name for FooStruct fields
011b91793 type: add std::unordered_set support
20d19b964 proxy: add BuildList helper and dedup map/set/vector build handlers
e863c6cdf doc: Add comments to FIELD_* constants in proxy.h
18db0ab95 doc: Fix and expand design.md

git-subtree-dir: src/ipc/libmultiprocess
git-subtree-split: 2dba130478ab71a745fe96c5726719fe357e6d17
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.

5 participants