Previously we explored a way to have some degree of dynamic dependencies in Bazel (input "subsetting") using TreeArtifacts.
The particular use case modeled in the previous gist involved:
- a language with somewhat coarse
libraryandbinaryrules (i.e. each rule describes a collection of files and their collective dependencies — the default for most Bazel rulesets) - a monolithic (and slow!) compiler whose compilation unit size is the entire binary (rather than something smaller like modules or source files)
- i.e. exacerbating the pain of not having "perfect" file-level dependency information
- source files that can be easily (and quickly) scanned to determine which dependencies are unused
