Files
palladum-lightning/pyproject.toml
Christian Decker 4b9cffe183 Add comprehensive coverage infrastructure with clang source-based coverage
This commit introduces a modern coverage infrastructure for Core Lightning:

- Migrate from ad-hoc coverage script to integrated Makefile targets
- Add LLVM source-based coverage support with per-test profraw organization
- Integrate coverage collection into pytest framework via TailableProc
- Add GitHub Actions workflow for nightly coverage reports
- Add Taskfile.yml for convenient task automation
- Add codecov.yml for Codecov integration
- Add comprehensive coverage documentation in COVERAGE.md
- Update contributor workflow docs with new coverage script path
- Add coverage data files to .gitignore (*.profraw, *.profdata)
- Remove obsolete contrib/clang-coverage-report.sh
- Remove obsolete tests/conftest.py (now using pyln-testing markers)
- Update pyproject.toml to include pyln-testing in main dependencies

The new infrastructure automatically collects coverage data when CLN_COVERAGE_DIR
is set, organizing profraw files by test name for granular analysis.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-08 16:37:02 +01:00

74 lines
1.8 KiB
TOML

[project]
name = "cln-meta-project"
version = "0.1.0"
description = "Just a helper to get our python dependencies under control"
authors = [{ name = "Christian Decker", email = "cdecker@blockstream.com" }]
requires-python = ">=3.9.2,<4.0"
dependencies = [
"Mako>=1.1.6",
"websocket-client>=1.2.3",
"grpcio-tools==1.75.1",
"grpcio==1.75.1",
# We want a specific version of protobuf to match CI's .github/scripts/setup.sh
"protobuf==6.32.1",
"cryptography>=46",
"pyln-client",
"pyln-proto",
"pyln-grpc-proto",
"pytest-trackflaky",
"pytest-rerunfailures>=16.0.1",
"pyln-testing",
"pyln-proto",
]
package-mode = false
[dependency-groups]
dev = [
# Test dependencies and inherited dependencies belong here
"crc32c>=2.2.post0", # Belongs to lnprototest
"pytest>=8.0.0",
"pytest-xdist>=3.6.0",
"pytest-test-groups>=1.2.0",
"pytest-timeout>=2.4.0",
"flake8>=7.0",
"pytest-custom-exit-code==0.3.0",
"requests>=2.32.0",
"flask-socketio>=5",
"tqdm",
"pytest-benchmark",
]
[project.optional-dependencies]
grpc = ["pyln-testing"]
[tool.poetry]
package-mode = false
[tool.uv]
package = false
[tool.uv.workspace]
members = [
"contrib/pyln-client",
"contrib/pyln-proto",
"contrib/pyln-grpc-proto",
"plugins/wss-proxy",
"contrib/pyln-testing",
"contrib/pyln-spec/bolt1",
"contrib/pyln-spec/bolt2",
"contrib/pyln-spec/bolt4",
"contrib/pyln-spec/bolt7",
"contrib/pytest-trackflaky",
]
[tool.uv.sources]
pyln-client = { workspace = true }
pyln-proto = { workspace = true }
pyln-grpc-proto = { workspace = true }
wss-proxy = { workspace = true }
pyln-bolt1 = { workspace = true }
pyln-bolt2 = { workspace = true }
pyln-bolt4 = { workspace = true }
pyln-bolt7 = { workspace = true }
pytest-trackflaky = { workspace = true }
pyln-testing = { workspace = true }