nativelink
nativelink copied to clipboard
🍦 Document NativeLink for users coming from icecream
Icecream is a compile job distribution setup for legacy build systems.
The way it roughly works is to intercept the PATH on the host via symlinks that override various tools such as clang via symlinks https://github.com/icecc/icecream/blob/9d397ef13508053802fb5048a92e92b918e5c32e/client/Makefile.am#L53.
While the K8s examples are the "recommended" approach, they require knowing K8s which seems like an unreasonable expectation for users that are used to getting distributed compilation by prefixing PATH.
Fortunately, NativeLink supports a similarly simple setup by running native workers on machines that previously ran iceccd and a scheduler on the node that previously ran icecc-scheduler. However, this is not clearly documented and users shouldn't have to learn how the nativelink config works if all they're trying to do is run a scheduler and some native workers.
We should provide documentation and canned config JSONs for users coming from icecream to make using NativeLink as accessible as possible. An "If you're coming from icecream" section or similar in the docs should solve this issue.
cc @allada @blakehatch @adam-singer