Skylark: The Bazel Extensibility Language
summary
Skylark is a Python‑subset that enforces frozen immutable values so evaluation is thread safe and deterministic, enabling parallel analysis and reproducible builds. Rules communicate via explicit providers and use depset lazy expansion to avoid iterating huge transitive sets during analysis. Built tools include a profiler that emits a large HTML report, memory and module dump commands (example run shows 33,000 genrules), a Skylib utility library, an experimental VS Code debugger for Starlark, and an llinter and formatting pipeline in progress.
AI-written summary · about
chapters (15)
- 0:00Skylark introduction
- 1:29Skylark design principles
- 3:17Build and BL files
- 5:46Rules, providers, actions
- 8:39Optimizing Skylark rules
- 13:40Native rules limits
- 15:05Aspects and dependency graph
- 16:11SkyLib and Bazel updates
- 17:18Backward compatibility
- 18:45Linter, testing, rules health
- 20:09Language server and IDE
- 21:58Debugger and tooling
- 22:19Build file generation
- 23:24Code formatting tools
- 23:47Type checking goals








