| Also, MIGRATIONS! Interfaces are VERY GOOD for migrations. If you decide that you want to stop using some compiler flag, or maybe use a different compiler, or change your python version, or... You can right a regex to go over all your shell invocations, change them, then test, or you can do something like: ```
def build_thing(name, srcs, hdrs, migration=False):
if migration:
... build_thing(
name = "my_lib",
srcs = ["my_lib.cc"],
hdrs = ["my_lib.h"],
)
``` You can then manually flip that to test stuff, write a script to flip it for every team, sending out a PR (because your targets can have oncalls) and they can land it, and then at the end you can flip the default and manually add a False to the holdouts. All this stuff gives you the ability to do hard stuff at scale. |