ci: use pycapnp 2.2.1 in mac native job
What changed, and why it matters
This commit is a routine update to Bitcoin Core's continuous integration (CI) setup for macOS. It changes how a Python library called pycapnp is installed for automated testing, switching from a manual source-code clone to a standard pip package and updating the version from 2.1.0 to 2.2.1. There is no indication this change fixes or introduces a security vulnerability.
No security action required. Treat as a normal maintenance/CI hygiene change.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch updates the macOS native CI job to install pycapnp 2.2.1 via pip instead of cloning the upstream git repository and building from source. It also updates test/README.md to reference pycapnp v2.2.1 for source-based installs. The change is purely a dependency-management simplification in the test/CI environment and does not modify Bitcoin Core runtime code, consensus logic, networking, wallet handling, or build system security properties.
Changed components
CI configuration for macOS native job (.github/workflows/ci.yml)CI environment setup script (ci/test/00_setup_env_mac_native.sh)Test documentation (test/README.md)Inspect captured patch +3 / −8
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index a05e8f96..1c69cc54 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -157,11 +157,6 @@ jobs:
brew install --quiet python@3 || brew link --overwrite python@3
brew install --quiet coreutils ninja pkgconf gnu-getopt ccache boost libevent zeromq qt@6 qrencode capnp
- - name: Install Python packages
- run: |
- git clone -b v2.1.0 https://github.com/capnproto/pycapnp
- pip3 install ./pycapnp -C force-bundled-libcapnp=True --break-system-packages
-
- name: Set Ccache directory
run: echo "CCACHE_DIR=${RUNNER_TEMP}/ccache_dir" >> "$GITHUB_ENV"
diff --git a/ci/test/00_setup_env_mac_native.sh b/ci/test/00_setup_env_mac_native.sh
index 6e03f06e..a188ed39 100755
--- a/ci/test/00_setup_env_mac_native.sh
+++ b/ci/test/00_setup_env_mac_native.sh
@@ -7,7 +7,7 @@
export LC_ALL=C.UTF-8
export CONTAINER_NAME="ci_mac_native" # macos does not use a container, but the env var is needed for logging
-export PIP_PACKAGES="--break-system-packages zmq"
+export PIP_PACKAGES="--break-system-packages pycapnp zmq"
export GOAL="install deploy"
export CMAKE_GENERATOR="Ninja"
export BITCOIN_CONFIG="-DBUILD_GUI=ON -DWITH_ZMQ=ON -DREDUCE_EXPORTS=ON -DCMAKE_EXE_LINKER_FLAGS='-Wl,-stack_size -Wl,0x80000'"
diff --git a/test/README.md b/test/README.md
index f44e1679..1291ee7b 100644
--- a/test/README.md
+++ b/test/README.md
@@ -37,7 +37,7 @@ The ZMQ functional test requires a python ZMQ library. To install it:
The IPC functional test requires a python IPC library. `pip3 install pycapnp` may work, but if not, install it from source:
```sh
-git clone -b v2.1.0 https://github.com/capnproto/pycapnp
+git clone -b v2.2.1 https://github.com/capnproto/pycapnp
pip3 install ./pycapnp
```
@@ -46,7 +46,7 @@ Depending on the system, it may be necessary to install and run in a venv:
```sh
python -m venv venv
-git clone -b v2.1.0 https://github.com/capnproto/pycapnp
+git clone -b v2.2.1 https://github.com/capnproto/pycapnp
venv/bin/pip3 install ./pycapnp -C force-bundled-libcapnp=True
venv/bin/python3 build/test/functional/interface_ipc.py
```
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.