An important piece is missing: What is the plan for graduation of an experiment?
Google’s monorepo has an //experimental
top-level directory (which you
can find references to in public docs; this isn’t secret information).
Code in //experimental
is subject to weaker review requirements, and
code in the rest of Google is freely allowed to break it. But there is a
clear policy that this is really only for experimental code. Anything
that is expected to eventually run in production is not permitted to
start in //experimental
, and you are not permitted to copy code from
//experimental
into mainline: it’s expected to be re-written with
proper standards for review, testing, and the like.
Even though this policy is clearly stated, and despite automated warnings, people still try to flagrantly violate it. People are rarely excited about actually productionizing their code rather than taking the easy way out. So we should be clear about expectations here: If we’ve determined that an experiment in SourceCred is worth promoting to the main repository, how do we proceed?