~/talk

Generating BUILD Files

Talkat BazelCon 2018 · 2018-10-09..10-10· [developer-experience]
links:none on file
slides:none on file

Dropbox uses a command-line generator called BZLgen to emit BUILD files from source and small templates, producing 52 MB of BUILD files in the main repo; it parses imports to create explicit deps for Go, Python, Rust, TypeScript, Sass and Java (including Maven resolution), and supports build.bzl templates plus a reverse-deps-gen mode that regenerates dependents after refactoring. Generation usually succeeds even when execution fails; conventions and hermetic rules are required, and bad practices (global public visibility, non‑hermetic codegen) create large, painful maintenance costs.

AI-written summary · about

  1. 0:00Introduction
  2. 3:36Introducing BZL and subcommands
  3. 5:21BZLgen and build file generation
  4. 7:26Bazel build files for Go
  5. 10:55Bazel build files for Python
  6. 14:44Template-based generation
  7. 16:53Other languages and Maven
  8. 17:38Advantages of automation
  9. 20:52Pitfalls in generation
  10. 23:22Non-hermetic operations risks
  11. 26:48Code generation in BZLgen
  12. 28:14Avoiding visibility overrides
  13. 29:38Lessons learned
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.