Company
Date Published
Author
Gaurav Nanda
Word count
1046
Language
English
Hacker News points
None

Summary

Harness, a company focused on enhancing developer productivity, identified slow build times in its harness-core repository due to the use of large Bazel modules and began transitioning to smaller build targets as recommended by Bazel. This shift led to several technical challenges, including a "Class not found" error due to classpath limits, which was temporarily addressed by increasing the CLASSPATH_LIMIT. However, this fix led to an "Argument list too long" issue, eventually resolved by upgrading Bazel to version 5.0.0, which handled long classpath arguments more efficiently. Developers also encountered a "Too many open files" error on macOS, resulting from exceeding the OS's file descriptor limit during builds. Attempts to raise these limits using macOS tools were unsuccessful, so the team extended the default Java toolchain to bypass JVM-imposed limits, thereby stabilizing the build process. These solutions illustrate the complexities of scaling build systems and the iterative process of debugging and optimizing development workflows.