mirror of
https://github.com/trailofbits/buttercup
synced 2026-06-21 14:11:39 +00:00
143a59c236
Before this commit, the fuzzer dependend on clusterfuzz, which uses protobuf 3.20. Since fuzzer-bot depended on common subpackage as well and also common (and the other packages) require protobuf, we had to use protobuf 3.20 everywhere. This old dependency however means that a lot of packages can't be used in their "newer" versions, because they depend on newer protobuf versions. This commit splits the fuzzer into a separate fuzzer-runner that is executed in a separate process inside a separate venv. fuzzer-runner executes the clusterfuzz-heavy operations (e.g. fuzzing) and isolates the clusterfuzz dependency, so that the rest of the system can use newer protobuf version. * split `fuzzer-bot` in `fuzzer-runner` and `fuzzer-bot` * have a "full" optional dependency group in `common`, including `openlit` and `protobuf`, so that `fuzzer-runner` can use the lite version of `common` without bringing those heavy deps * move `FuzzConfiguration`/`BuildConfiguration` in a separate common file that doesn't require to load all protobuf files. Again, in this way other components can just depend on the `common` "lite" version and not require protobuf stuff * add `fuzzer-runner` as a separate venv inside the `fuzzer-bot` container * add `RunnerProxy` class in fuzzer package to provide an interface to interact with the fuzzer-runner binary.
28 lines
347 B
Plaintext
28 lines
347 B
Plaintext
**/env/
|
|
**/venv/
|
|
**/.env*/
|
|
**/.venv/
|
|
**/.env/
|
|
**/*.bak
|
|
|
|
**/pip-wheel-metadata/
|
|
**/*.egg-info/
|
|
**/__pycache__/
|
|
**/.coverage*
|
|
**/.idea
|
|
**/html/
|
|
**/dist/
|
|
**/.pytest_cache
|
|
**/.pdm-build/
|
|
**/.pdm-python
|
|
**/pdm.lock
|
|
fuzzer/Dockerfile
|
|
orchestrator/Dockerfile
|
|
patcher/Dockerfile
|
|
seed-gen/Dockerfile
|
|
**/.mypy_cache/
|
|
**/.ruff_cache/
|
|
|
|
**/.git/
|
|
.dockerignore
|