The clang package alone doesn't provide llvm-profdata and llvm-cov tools.
Add explicit llvm package to ensure these tools are available.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Replaced the complex LLVM 18 specific setup with simpler approach:
- Update all runners to ubuntu-24.04
- Use default clang package (no version-specific installation)
- Use default llvm-profdata and llvm-cov from system packages
- Removed custom LLVM repository setup
- Removed version-specific tool paths and symlinks
- Removed libclang-rt-18-dev dependency (included with build-essential)
This approach leverages the system's default LLVM/Clang toolchain on
ubuntu-24.04, which avoids version mismatch issues entirely.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
The llvm-18-tools package installs tools in /usr/lib/llvm-18/bin/ rather
than /usr/bin/. This caused llvm-profdata-18 and other tools to not be
found in the PATH.
Fix:
- Add /usr/lib/llvm-18/bin to PATH via /etc/profile.d/
- Create symlinks in /usr/bin for direct access to llvm-profdata-18 and llvm-cov-18
- This ensures tools are accessible regardless of shell configuration
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
The libclang-rt-18-dev package is required for LLVM 18 coverage
instrumentation to work properly. It provides the compiler runtime
libraries (libclang_rt.profile-x86_64.a) needed during linking when
using -fprofile-instr-generate and -fcoverage-mapping flags.
Without this package, linking fails with:
cannot find /usr/lib/llvm-18/lib/clang/18/lib/linux/libclang_rt.profile-x86_64.a
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Fixed profraw file corruption issue caused by version mismatch between clang
compiler and llvm-profdata tools. Now:
- Install LLVM 18 and clang-18 directly from apt in setup.sh
- Use clang-18 explicitly for compilation (CC=clang-18)
- Remove redundant llvm.sh script installations from test and report steps
- Record LLVM version during compilation in LLVM_VERSION.txt
- Verify LLVM version consistency in test and report steps
This ensures all profraw files are generated with and processed by the same
LLVM 18 tools, preventing the "corrupt/incomplete" errors that occurred
when using different versions.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- ReadMe API v2 now requires category.uri instead of category.id.
- ReadMe v2 page responses include a renderable field indicating whether the document is MDX-compatible and can be rendered successfully. The script now checks this field and prints detailed compilation errors if rendering fails.
We shipped our own because Ubuntu xenial (16.4) had an ancient one.
Changelog-Changed: Build: libsodium version >= 1.0.4 now required (released 2015-06-11)
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Every distribution we have packages this now.
Changelog-Changed: Build: lowdown is now required (we no longer bundle our own).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Replace poetry with uv for managing Python dependencies and running
commands across CI workflow.
- Add astral-sh/setup-uv@v5 action to install uv
- Replace all poetry run commands with uv run
- Remove poetry-specific installation steps
- Update Python setup in multiple jobs
Documents which are deleted from lightning schema were still listed on readme server.
This script was adding or updating the list but delete action was missing.
Changelog-None.
We were accidentally testing against `bitcoind` rather than
`elementsd` which meant we believed everything was find, when in
reality some tests broke. By only installing the required daemon we
ensure that such a mixup causes a CI failure.
Changelog-EXPERIMENTAL: Build: all experimental features are now runtime-enabled; no more ./configure --enable-experimental-features
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
We used to install it only when Rust was configured, but for some
reason all builds now seem to be Rust builds. That's ok, so just
provide the necessary dependency.
If compilation failed, we didn't stop (though except for fuzzing, we
would fail when we try to run the tests).
Also use make -s instead of redirecting make ooutput.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Over time, it has cost us more developer cycles than it has gained.
It has hidden intermittant bugs, and allowed cruft to accumulate:
when we eventually tried to figure out what was going wrong, the
actual change which caused it was now stale and forgotten.
This was a particular bane during the connectd rewrite, and I
worked through some issues which had occurred before, but were not
more likely.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>