We currently have ~111 BUILD targets serving our python code, and ~106 test
targets:

$ find . -name BUILD | xargs grep python_library | wc -l
111

$ find . -name BUILD | xargs grep python_test | wc -l
106

This presents a non-trivial maintenance burden, and i'm not convinced the
benefits are worth it.  Now that we have a good IDE story, refactors are
painless in the source code, but painful when you need to hand-edit all
affected BUILD targets.

I can think of several motivations for using fine-grained targets
1. Running specific unit tests with pants
2. Limiting the sources included in a binary
3. Carving out libraries to be published

I'm not convinced these benefits outweigh the maintenance burden of these
files.  I propose we reduce our BUILD targets to ~equal to the number of
binaries we produce, possibly with a few for libraries shared between
components.

Does anyone else have opinions on this?  Is there something i'm overlooking?


-=Bill

Reply via email to