There are some basic tools and packages you will need on your machine:
- Git
- Java Development Kit (JDK)
- Python 3
- libstdc++
For example, on Debian:
sudo apt install -y git default-jdk-headless python3 libstdc++-10-dev
⚠️ The project maintainers internally test with Clang only, so support for GCC-based builds is provided only on a best-effort basis and may at times be broken.If using GCC then we recommend using a recent version (e.g., at least as recent as what Debian stable uses, preferably newer than that).
Bazelisk is used to fetch the correct Bazel binaries necessary to build and run Federated Compute code.
Please read https://github.com/bazelbuild/bazelisk#installation.
⚠️ Many Federated Compute targets depend on TensorFlow, which can take several hours to build for the first time. Consider running builds inscreen
ortmux
if you're worried about your terminal closing during this time.While not required, Bazel's remote build execution and remote caching features can speed up builds.
bazelisk test //fcp/demo:federated_program_test