This page explains how to set up your environment for using ClusterFuzz.
RequirementsMany features of ClusterFuzz depend on Google Cloud Platform services, but it’s possible to run it locally without these dependencies for testing purposes. See the Architecture page for more details.
Note: Local development is only supported on Linux platform.
Getting the codeClone the ClusterFuzz repository to your machine by running the following command:
git clone https://github.com/google/clusterfuzz
cd clusterfuzz
git pull
We recommend that you use the latest release version of our code (rather than master branch) for stability reasons. You can check out a particular release using:
where X.Y.Z is the release version (for example, 1.0.1).
Installing prerequisites Google Cloud SDKThis step is only necessary on the macOS platform. For Linux user, Google Cloud SDK will be installed later by the script under the “Other dependencies” section.
Install the Google Cloud SDK by following the online instructions.
Python programming languageDownload Python 3.11, then install it (see this guide for instructions). If you have Python installed already, you can verify its version by running python --version
. You’ll want to install Python 3.11 if your local version is different.
We recommend building using python source from the official repo, as it installs the needed python headers and pip. Otherwise, make sure to explicitly install the specific version of pip for Python 3.11 (e.g. configuring the build with the --with-ensurepip=install
flag).
You shouldn’t need pyenv to manage python versions for ClusterFuzz. Instead, set the Python version in the pipenv shell.
Go programming languageInstall the Go programming language.
Other dependenciesWe provide a script for installing all other development dependencies on Linux and macOS.
Our supported systems include:
To install the dependencies, run the script:
Log in to your Google Cloud accountNote: This is not necessary if you’re running ClusterFuzz locally.
If you’re planning to set up ClusterFuzz in production, you should authenticate your account with the gcloud
tool:
gcloud auth application-default login
gcloud auth login
Loading pipenv
After you run the local/install_deps.bash
script, activate pipenv by running the following command:
This loads all the Python dependencies in the current environment.
You can verify that everything works by running:
Debugging Common Dependency IssuesIf you are having trouble installing dependencies due to Python versioning, try:
$ PYTHON=python3.11 ./local/install_deps.bash
Then run:
$ pipenv shell
$ python --version
The version should be the one you built from source and used to build your dependencies. If it is not, set the pipenv shell version of Python:
$ pipenv install --python 3.11
Assuming your shell has the expected version of Python assigned, the following command should run all appengine tests:
python3.11 butler.py py_unittest -t appengine
If, at this point, you see an error to the effect that the config.yaml is missing, sync the pipenv environment’s dependencies with the outer environment’s dependencies:
Refreshing the Python EnvironmentYou might get stuck in a mode where the python version is the global value, rather than the version you set for the pipenv environment - even when apparently leaving the virtual environment through the exit
command. If this happens, you may still be in a virtual environment (especially if you see (clusterfuzz)
before the command prompt). To escape this virtual environment, use the command deactivate
, then run python3.11 -m pipenv shell
again to start the pipenv shell with the correct python version.
python butler.py format
to clean up formattingpython butler.py lint
. (It’s also possible, though not recommended, to lint individual files with pylint --score=no --jobs=0 <name of directory>
.)RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4