Commit Graph

1225 Commits

Author SHA1 Message Date
fanquake
9d0c38db74 ci: use mypy 2.3.1 2026-08-21 09:05:27 +01:00
fanquake
7a53beca06 ci: use pyzmq 27.2.0 2026-08-21 09:05:27 +01:00
fanquake
f29f076f3c ci: use ruff 16 2026-08-21 09:05:27 +01:00
MarcoFalke
fa8762da62 build: ci/doc win64-cross build via nix 2026-08-19 15:39:50 +02:00
merge-script
fe5e2a6319 Merge bitcoin/bitcoin#32162: depends: Switch from multilib to platform-specific toolchains
de9b436ba3 depends: Switch from multilib to platform-specific toolchains (Hennadii Stepanov)

Pull request description:

  Using the multilib GCC toolchain, as currently documented in [`depends/README.md`](4c1906a500/depends/README.md), has several issues, such as:

  1. The [`g++-multilib`](https://packages.ubuntu.com/noble/g++-multilib) package conflicts with platform-specific cross-compiler packages. This means it is not possible to cross compile for `i686` and other platforms using the same set of installed packages.

  2. The [`g++-multilib`](https://packages.ubuntu.com/noble/g++-multilib) package is not available for `arm64`:
  ```sh
  $ sudo apt install g++-multilib
  Reading package lists... Done
  Building dependency tree... Done
  Reading state information... Done
  E: Unable to locate package g++-multilib
  ```

  3. Managing the multilib GCC toolchain requires additional code in both depends and Guix scripts.

  This PR addresses all the issues mentioned above by switching from multilib to platform-specific toolchains.

  Also see https://github.com/bitcoin/bitcoin/pull/22456.

  ---

  Here are examples of building for different scenarions:

  - Linux, `x86_64` or `arm64`, building with depends natively:
  ```sh
  $ gmake -C depends -j $(nproc)
  $ cmake -B build --toolchain depends/$(./depends/config.sub $(./depends/config.guess))/toolchain.cmake
  $ cmake --build build -j $(nproc)
  ```

  - Linux, `x86_64` or `arm64`, cross compiling for `i686-pc-linux-gnu`:
  ```sh
  $ sudo apt install g++-i686-linux-gnu binutils-i686-linux-gnu
  $ export HOST=i686-linux-gnu
  $ gmake -C depends -j $(nproc)
  $ cmake -B build-${HOST} --toolchain depends/${HOST}/toolchain.cmake
  $ cmake --build build-${HOST} -j $(nproc)
  ```

  - Linux, `x86_64`, cross compiling for `arm64`:
  ```sh
  $ sudo apt install g++-aarch64-linux-gnu binutils-aarch64-linux-gnu
  $ export HOST=aarch64-linux-gnu
  $ gmake -C depends -j $(nproc)
  $ cmake -B build-${HOST} --toolchain depends/${HOST}/toolchain.cmake
  $ cmake --build build-${HOST} -j $(nproc)
  ```

  - Linux, `arm64`, cross compiling for `x86_64`:
  ```sh
  $ sudo apt install g++-x86-64-linux-gnu binutils-x86-64-linux-gnu
  $ export HOST=x86_64-linux-gnu
  $ gmake -C depends -j $(nproc)
  $ cmake -B build-${HOST} --toolchain depends/${HOST}/toolchain.cmake
  $ cmake --build build-${HOST} -j $(nproc)
  ```

ACKs for top commit:
  fanquake:
    ACK de9b436ba3
  BrandonOdiwuor:
    ACK de9b436ba3

Tree-SHA512: 453b4744974cdf56d6edfdbe93bb11e3bae3f9bc9cd99b9c57aee74e65fcdd3ac011a1dcc19f485ea3be427f4e9c6c6b0d704881369f719620f0cb299123e561
2026-08-19 14:19:47 +01:00
MarcoFalke
fad9ab714b test: Append print_suppressions=0 to LSAN_OPTIONS, and suppress bitcoin-qt
The print_suppressions=0 is required to avoid a CI failure when the
suppressions were used. E.g:

```
$ LSAN_OPTIONS="suppressions=$(pwd)/test/sanitizer_suppressions/lsan:print_suppressions=1" ./bld-cmake/test/functional/interface_gui.py
2026-08-08T10:53:45.864160Z TestFramework (INFO): PRNG seed is: 8358096631255493262
2026-08-08T10:53:45.914748Z TestFramework (INFO): Initializing test directory /tmp/bitcoin_func_test_5zx5343v
2026-08-08T10:53:47.029997Z TestFramework (INFO): Test that bitcoin-gui starts up and can be stopped via RPC
2026-08-08T10:53:47.431761Z TestFramework (ERROR): Unexpected exception:
  File "./test/functional/test_framework/test_node.py", line 534, in is_node_stopped
    raise AssertionError("Unexpected stderr {} != {}".format(stderr, expected_stderr))
AssertionError: Unexpected stderr -----------------------------------------------------
Suppressions used:
  count      bytes template
      2        181 bitcoin-qt
----------------------------------------------------- !=
```

The general suppression of the qt executables is required to avoid CI
failures for i386 builds. E.g:

```
 test  2026-08-05T08:54:08.370427Z TestFramework (ERROR): Unexpected exception:
      Traceback (most recent call last):
        File "/ci_container_base/ci/scratch_ ₿🧪_/build-i686-pc-linux-gnu/test/functional/interface_gui.py", line 34, in run_test
          self.stop_node(0)
          ~~~~~~~~~~~~~~^^^
        File "/ci_container_base/test/functional/test_framework/test_node.py", line 525, in is_node_stopped
          assert return_code in expected_ret_code, self._node_msg(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      AssertionError: [node 0] Node returned unexpected exit code (1) vs ((0,)) when stopping

 node0 stderr =================================================================
==73449==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 386 byte(s) in 17 object(s) allocated from:
    #0 0x5df28a2d in malloc (/ci_container_base/ci/scratch_ ₿🧪_/build-i686-pc-linux-gnu/bin/bitcoin-qt+0x1d0da2d) (BuildId: 496a5df531df278fe395724ae917f266331b3f81)
    #1 0xee03c1d1  (<unknown module>)

Indirect leak of 12 byte(s) in 1 object(s) allocated from:
    #0 0x5df28a2d in malloc (/ci_container_base/ci/scratch_ ₿🧪_/build-i686-pc-linux-gnu/bin/bitcoin-qt+0x1d0da2d) (BuildId: 496a5df531df278fe395724ae917f266331b3f81)
    #1 0xee03c1d1  (<unknown module>)

SUMMARY: AddressSanitizer: 398 byte(s) leaked in 18 allocation(s).
```
2026-08-08 12:58:16 +02:00
MarcoFalke
fae7ba9aba ci: Fix $BASE_ROOT_DIR installation 2026-08-07 08:38:32 +02:00
merge-script
bd01e66f0a Merge bitcoin/bitcoin#35885: ci: switch to a sourceware mirror for riscv
81fcecfe45 Revert "ci: Temporarily remove riscv32 config from GHA matrix" (will)
b283e1751c ci: use mirror for riscv submodules (will)

Pull request description:

  The https transport is rate-limited to block AI scrapers.

  Switch to a live mirror on fish.foo to re-enable the riscv job.

ACKs for top commit:
  maflcko:
    lgtm ACK 81fcecfe45
  sedited:
    ACK 81fcecfe45

Tree-SHA512: 1891046d9847b904a3e4be25b7f313fc2413ad1cc0b2c09b2300f81a2f1f691dad816fa5fcfeeae263f8d5f868d229aca5a7ab3f227ce650d359068488bc1e21
2026-08-06 13:50:38 +01:00
will
b283e1751c ci: use mirror for riscv submodules
sourceware is blocking/rate-limiting http(s) git requests to combat AI
scrapers.

Switch to a live mirror hosted at fish.foo

Use exported GIT_CONFIG_* to avoid setting `git config --global` which
could clobber a user running on bare host, but still propagate to child
git processes spawned by `make`.
2026-08-06 12:56:28 +01:00
Hennadii Stepanov
13b53f8bf6 iwyu: Fix warnings in src/consensus and treat them as errors 2026-08-04 15:02:39 +01:00
merge-script
4b322989ac Merge bitcoin/bitcoin#34995: iwyu: Fix warnings in src/common and treat them as errors
50145f62c9 ci, iwyu: Enforce warning-free `src/common` (Hennadii Stepanov)

Pull request description:

  This PR [continues](https://github.com/bitcoin/bitcoin/pull/33725#issuecomment-3466897433) the ongoing effort to enforce IWYU warnings.

  See [Developer Notes](https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#using-iwyu).

ACKs for top commit:
  maflcko:
    review ACK 50145f62c9 🌾

Tree-SHA512: c14f97d725429fed0860a608cdb53d9c6c5c36fb710f44357ba276d5507fb9b0d99ba6dac8d9a8b1ac404d9093ebffd9fb07ee5f68b4d276657d087c1f404a63
2026-08-04 10:17:24 +01:00
Lőrinc
873550bea3 ci: verify cross-build SDK archives
The macOS and BSD cross-build jobs extract SDK archives fetched at runtime without checking their content.
Keep each expected digest beside the corresponding SDK version and verify every archive before extraction.
Create the OpenBSD library symlinks once after both archives are extracted, when all link targets are present.
2026-08-03 12:17:47 -07:00
Lőrinc
2c87337efe ci: update NetBSD cross-build SDK
The NetBSD 11.0_RC6 archives are no longer available from cdn.netbsd.org. Update the cross-build SDK to the final 11.0 release.
2026-08-03 12:17:22 -07:00
Hennadii Stepanov
50145f62c9 ci, iwyu: Enforce warning-free src/common
Fix all IWYU warnings in `src/common` and treat them as errors in CI.

Additionally, ensure that our drop-in header replacements are used
instead of system headers:
- `<util/check.h>` instead of `<cassert>`
- `<util/time.h>` instead of `<chrono>`
2026-08-03 12:22:58 +01:00
fanquake
8221d714c7 lint: document CI lief version requirement 2026-08-03 11:52:17 +01:00
Hennadii Stepanov
de9b436ba3 depends: Switch from multilib to platform-specific toolchains 2026-07-21 13:33:24 +01:00
fanquake
900a7785bf ci: use Ubuntu 26.04 for lint container 2026-07-14 11:22:48 +01:00
fanquake
058a73a0ae ci: use uv 11.x 2026-07-14 11:22:48 +01:00
fanquake
14f4ddcb55 ci: mypy 2.3.0 2026-07-14 11:22:47 +01:00
fanquake
b0e0951158 ci: disable Qt build in OpenBSD cross job
Disable this for now, until issues with llvm-ranlib, and gui deps are
fixed:
```bash
libtool: install: chmod 644 /home/runner/work/_temp/depends/work/staging/x86_64-unknown-openbsd/fontconfig/2.12.6-a12d0a13377/home/runner/work/_temp/depends/x86_64-unknown-openbsd/lib/libfontconfig.a
libtool: install: llvm-ranlib-22 -t /home/runner/work/_temp/depends/work/staging/x86_64-unknown-openbsd/fontconfig/2.12.6-a12d0a13377/home/runner/work/_temp/depends/x86_64-unknown-openbsd/lib/libfontconfig.a
llvm-ranlib-22: error: Invalid option: '-t'
make[4]: *** [Makefile:539: install-libLTLIBRARIES] Error 1
```
2026-07-14 10:55:31 +01:00
fanquake
c43b7a1115 ci: add netBSD cross CI job
Use 11.0rc6, as the 10.x sysroot ships with a GCC that is too old to
have bitset, source_location etc.
2026-07-09 09:14:16 +01:00
fanquake
22ac4ad949 ci: ensure we use correct lld version in OpenBSD job
If we don't suffix with -${APT_LLVM_V}, then lld-21 will be installed.
2026-07-06 10:44:08 +01:00
fanquake
495f43f7b3 ci: FreeBSD 15.1 2026-07-06 10:44:07 +01:00
fanquake
244739db9d depends: move FreeBSD SDK handling to CI
As pointed out by Hebasto, the approach used in #35397 and #35412 is
better, rather than hardcoding flags and putting the SDK handling into
depends.
2026-07-06 10:44:07 +01:00
fanquake
47bbed052e ci: use true|false over "true|false" 2026-07-02 11:38:54 +01:00
merge-script
9871dc7ab4 Merge bitcoin/bitcoin#31425: CI: Add Riscv bare metal job
b36730a3ef  Add CI job for riscv bare metal (TheCharlatan)
bfdbf513f6 Add CI job for producing a static bare metal binary (TheCharlatan)
a9a1d92a1d build: Add option for building for bare metal envs (TheCharlatan)

Pull request description:

  This adds a CI job for building the static consensus library and linking it to an executable. It uses newlib-cygwin as a C library for the final linking step. This ensure compatibility with this target going forward and can serve as a starting point for enabling bare metal builds for the entire kernel library. This would have also caught the error fixed in #31365.

ACKs for top commit:
  fanquake:
    ACK b36730a3ef
  willcl-ark:
    reACK b36730a3ef

Tree-SHA512: c199260f243e20df7f6a537e6c1eaf3d32e23f8fc78b9a8e2b75d9feff3830ef61279e93093dacdceb99e8eb010321b4c1c644e2ad9e266f0ca1ae736baa20ae
2026-07-02 10:52:13 +01:00
Hennadii Stepanov
f26c15bdd2 Merge bitcoin/bitcoin#35397: ci: add OpenBSD Clang cross job
d64ea15824 ci: add openBSD cross CI job (fanquake)
5404b62074 depends: add openbsd_LDFLAGS (fanquake)

Pull request description:

  This adds a Linux cross job for OpenBSD; similar to https://github.com/bitcoin/bitcoin/pull/34491 (FreeBSD).

ACKs for top commit:
  hebasto:
    ACK d64ea15824.
  willcl-ark:
    ACK d64ea15824

Tree-SHA512: 0353c0ae8dd49c861a9100ebd5044fc39227c29859ca68e6454ebdf469c90ff5471e29733613606ee8ba72037f7fca5086275f794e90864a6456ffee73d9113b
2026-07-01 09:00:18 +01:00
fanquake
d64ea15824 ci: add openBSD cross CI job 2026-06-29 10:55:27 +01:00
MarcoFalke
bbbbab86a8 ci: Bump tsan config to ubuntu:26.04 with -U_FORTIFY_SOURCE 2026-06-26 19:47:25 +02:00
fanquake
58560c281d ci: remove some packages from Chimera job
This doesn't build QT, so drop ninja and xz, and add a comment.
With libevent removed, and no Qt build, we can also drop pkgconf.
2026-06-25 09:46:27 +01:00
TheCharlatan
bfdbf513f6 Add CI job for producing a static bare metal binary 2026-06-25 10:21:32 +02:00
fanquake
0443943dc0 ci: remove libevent 2026-06-23 09:25:49 +01:00
Max Edwards
744d495019 ci: updated docs to reflect removal of REPO_USE_WARP_RUNNERS flag 2026-06-17 09:53:20 -04:00
MarcoFalke
fae482b4e6 ci: Use GCC consistently in i686 task
According to the comment removed in commit
fae0295a79, clang was only used to avoid
OOM. Using GCC today should be fine.
2026-06-16 22:15:18 +02:00
merge-script
a30ef6b91f Merge bitcoin/bitcoin#35396: ci: Rewrite broken wrap-valgrind.sh to .py
fa98d44951 ci: Rewrite broken wrap-valgrind.sh to .py (MarcoFalke)
faf7e38973 ci: refactor: Avoid warning: INSTALL_BCC_TRACING_TOOLS: unbound variable (MarcoFalke)

Pull request description:

  The first commit fixes an error about `INSTALL_BCC_TRACING_TOOLS` being unbound.

  The second commit rewrites the wrap-valgrind Bash script to Python to fix the shellcheck SC2044 violation.

  Without this, the script would fail in CI when a path with spaces was used:

  ```
  ...
  + /ci_container_base/ci/test/wrap-valgrind.sh
  Wrap /ci_container_base/ci/scratch_ ...
  mv: cannot stat '/ci_container_base/ci/scratch_': No such file or directory
  Wrap ₿🧪_/out/bin/bitcoin ...
  mv: cannot stat '₿🧪_/out/bin/bitcoin': No such file or directory
  /ci_container_base/ci/test/wrap-valgrind.sh: line 14: ₿🧪_/out/bin/bitcoin: No such file or directory
  /ci_container_base/ci/test/wrap-valgrind.sh: line 15: ₿🧪_/out/bin/bitcoin: No such file or directory
  chmod: cannot access '₿🧪_/out/bin/bitcoin': No such file or directory

ACKs for top commit:
  fanquake:
    ACK fa98d44951 - tested both on x86_64
  hebasto:
    ACK fa98d44951, tested on Ubuntu 26.04. I also verified the actual content of the created wrappers.

Tree-SHA512: fd9ccdd08a3af3aa9431eef29e17da0d785c7fe57fd0bfc9a6afdd979dc8860f4f9f0153ba3bb4b516cdec7ef0e071b846fddc1f2d28395cbe9356d2e9c55fb7
2026-06-16 18:19:24 +02:00
merge-script
6921f5df01 Merge bitcoin/bitcoin#35414: iwyu: Fix warnings in src/bench and treat them as error
6751a323c0 iwyu: Fix warnings in `src/bench` and treat them as error (Hennadii Stepanov)
a6ed29d6c2 bench, refactor: Use `std::string_view` for `BenchRunner` ctor parameter (Hennadii Stepanov)

Pull request description:

  This PR addresses [this](https://github.com/bitcoin/bitcoin/pull/35011#discussion_r3323359707) comment:
  > I had the impression I already fixed bench in https://github.com/bitcoin/bitcoin/pull/30716 two years ago, but I guess it isn't yet enforced.
  >
  > Could do that as a next step?

  The first two commits act as prerequisites. See the commit messages for details.

  The third commit additionally ensures that our drop-in header replacements are used instead of system headers:
  - `util/check.h`:10dfdd4b9f/src/util/check.h (L11-L13)
  - `util/time.h`:10dfdd4b9f/src/util/time.h (L9-L10)

ACKs for top commit:
  maflcko:
    re-ACK 6751a323c0 📃
  BrandonOdiwuor:
    ACK 6751a323c0

Tree-SHA512: 159ee734a83dcba3c914682be4b119549e1e4269a43d34c52903e76056d537a2ae02c2f5f4e3adff1b4230082b8ed267c04164abc83b16f717b34fba6e03e359
2026-06-15 15:10:39 +02:00
fanquake
3be1115ade ci: Alpine 3.24 2026-06-11 15:47:44 +02:00
Hennadii Stepanov
46d0e21d75 Merge bitcoin/bitcoin#35288: ci: Bump toward Ubuntu 26.04
fab52281f7 refactor: Drop unused includes after iwyu CI bump (MarcoFalke)
fa4774d032 ci: Bump APT_LLVM_V-based task configs to Ubuntu 26.04 (MarcoFalke)
fa1414a36a ci: Debian Trixie -> Ubuntu 26.04 (MarcoFalke)

Pull request description:

  This is for the upcoming 32.x, because I presume users and devs are more likely using a later distro. This comes with tool bumps, such as:

  * GCC 14 -> 15 (https://packages.debian.org/trixie/g++ -> https://packages.ubuntu.com/resolute/g++)
  * Clang 19 -> 21
  * Cmake 3.31 -> 4.2
  * Valgrind 3.24 -> 3.26

ACKs for top commit:
  l0rinc:
    code review ACK fab52281f7
  hebasto:
    re-ACK fab52281f7.

Tree-SHA512: 9d5be2f5b15cf7904c50687ce5e8cceeb2f740c7d5180190d6a10e751998ce2c2156098f89352eac49f24c8cd9ab55b78321e310240ac829dcbe48b576b6240c
2026-06-11 10:36:31 +01:00
Ava Chow
3bbc3c67ad Merge bitcoin/bitcoin#35101: refactor: disable default std::hash for CTransactionRef
a9301cfa07 refactor: disable default std::hash for CTransactionRef (Sjors Provoost)
47d68cd981 ci: backport iwyu PR 2013 std::hash mapping (Sjors Provoost)

Pull request description:

  While working on #33922 I initially forgot to add `CTransactionRefComp` to the `std::unordered_map<CTransactionRef` defined there. This PR turns that into a compiler error. See https://github.com/bitcoin/bitcoin/pull/33922#discussion_r2894597519

  This change triggers a false positive IWYU error, and an inconsistent one at that: our CI wants `<variant>`, while a manual build on Ubuntu (version 0.26 with clang version 22.1.1) wants `<string_view>`.

  Various workarounds were discussed in:
  - https://github.com/include-what-you-use/include-what-you-use/issues/2007
  - https://github.com/bitcoin/bitcoin/pull/35073
  - https://github.com/bitcoin/bitcoin/pull/33922#discussion_r3100806462

  Addressed by back-porting:
  - https://github.com/include-what-you-use/include-what-you-use/pull/2013

ACKs for top commit:
  achow101:
    ACK a9301cfa07
  vasild:
    ACK a9301cfa07
  w0xlt:
    lgtm ACK a9301cfa07

Tree-SHA512: 11b3f8698e66457a14d1c16f55cac3ee17a572e9c1c98f5aa9c8a8f1e8928246b1676f7544f2819bc16ec4dcf025585b9cbd60ab3f20839d3d9bcc65ee9e7c0f
2026-06-10 11:04:39 -07:00
Hennadii Stepanov
6751a323c0 iwyu: Fix warnings in src/bench and treat them as error 2026-06-10 10:32:40 +01:00
MarcoFalke
fa4774d032 ci: Bump APT_LLVM_V-based task configs to Ubuntu 26.04
Their clang version is pinned, so the only relevant change should be a
more recent cmake, more recent C++ stdlib, and more recent Python
version.
2026-06-10 10:58:27 +02:00
MarcoFalke
fa1414a36a ci: Debian Trixie -> Ubuntu 26.04 2026-06-10 10:58:19 +02:00
fanquake
087f02c929 ci: skip libunwind runtime in LLVM build
Document why we use LIBCXXABI_USE_LLVM_UNWINDER=OFF.
2026-06-09 11:10:54 +02:00
fanquake
6d47f7cc6f ci: use llvm 22.1.7 2026-06-09 11:10:54 +02:00
fanquake
b2fbd5b5dd ci: run ipc functional tests in arm job 2026-06-04 22:58:58 +01:00
fanquake
4a6d1458b4 ci: add pyzmq to msan job
So that interface_zmq.py is run.
2026-06-03 10:32:49 +01:00
fanquake
c21b58e263 ci: use pyzmq over zmq
zmq seems to be an alias for pyzmq, and the project page,
https://pypi.org/project/zmq/, states "You are probably looking for
pyzmq.". So switch to pyzmq, which is what we document, and use in all
other jobs.
2026-06-03 10:32:48 +01:00
will
2ce4ae7d8f ci: Add dynamic cache switching to warp cache
The GHA cache is very slow, taking on the order of minutes to save and
restore from.

Use WarpBuild's cache instead as this is in the same region and much
faster.

WarpBuild cache action does not auto-fallback to GHA if not being run on
Warp. To allow fork runs to fallback to GHA caching, whilst minimising
duplication in the action files, create new "interal" actions which
perform the switching logic, and use these in the (renamed) cache|save
actions.

Without this we would need the `if` logic in our prvious actions, 4
times in each of save and restore.

Plumb the provider through into the action, as a composite action can't
read `env` (`GITHUB_OUTPUT`) from previous steps.
2026-06-01 12:08:27 +01:00
merge-script
10dfdd4b9f Merge bitcoin/bitcoin#35379: test: Fix feature_dbcrash.py --usecli error
fad585b6e5 test: Wait for node exit after crash in verify_utxo_hash (MarcoFalke)
faf1475514 ci: Exclude feature_dbcrash.py under --v2transport --usecli (MarcoFalke)
fac27d702f test: Fix feature_dbcrash.py --usecli intermittent error (MarcoFalke)
fa09de8b68 test: [refactor] Simplify submit_block_catch_error (MarcoFalke)

Pull request description:

  This fixes a small intermittent issue that snuck in via commit fa8d4d5c35.

  Generally, it seems tedious and brittle trying to enumerate all possible exception types on all platforms and all test configs, all possible errno values, etc.

  So just treat any `Exception` as crash, and confirm it in the test. The test would still fail, if a crash did not happen after an Exception, but the failure may be minimally more tedious to debug. I think this is fine, because failures should be rare and having simpler and more flexible test code is preferable.

  ----

  Also, disable the test for now in CI, because it is quite slow.

ACKs for top commit:
  willcl-ark:
    ACK fad585b6e5

Tree-SHA512: 6ff69a53908b22904780f29def473f8e26c5b608d89420ac76768d06ea3e3394b5d3f4d488100f9d47f943ff5778a555302ccdaebc11fda7c009205b6a6ca05c
2026-05-29 15:16:32 +01:00
Brandon Odiwuor
6183942513 ci, iwyu: Fix warnings in src/scripts and treat them as error 2026-05-29 11:36:08 +03:00