# Overview

This is an overview of how Skia is built and tested and the relationships
between the various services we use.

## Life of a +1

What happens when a user submits a CL to the Commit Queue (CQ):

<details>
  <summary>
    <object type="image/svg+xml" data="https://dot.skia.org/dot?lifeof"></object>
  </summary>
  <pre>
digraph {
  rankdir=LR;
  node [shape = box, fixedsize = true, width=2, height=0.6];

IN, OUT [style = invis];

// The top level input and output flows, a +2 goes in and eventually an email is sent
// on success or failure.
IN -> Gerrit [ label="+2" ];
Gerrit -> OUT [ label="email" ];

// Requests flowing down to Swarming to do the building, testing, and uploading.
Gerrit -> CQ [ label="CL (poll)" ];
LUCIConfig -> CQ [ label="TryJobs\n(poll)" ];
CQ -> BuildBucket [ label="create(CL, TryJob)\n(API)" ];
BuildBucket -> TaskScheduler [ label="CL+TryJob\n(poll)" ];
TaskScheduler -> Swarming [ label="TaskInfo\nCIPD List + Isolate List" ];
TaskScheduler -> Isolate [ label="HEAD+CL" ];
CIPD -> Swarming [ label="(pull)" ];
Isolate -> Swarming [ label="(pull)" ];

// Propagating the signal that the job is done.
Swarming -> TaskScheduler [ label="TaskResult\nPubSub+poll", style=dotted ];
TaskScheduler -> BuildBucket [ label="Done", style=dotted ];
BuildBucket -> CQ [ label="Done", style=dotted ];
CQ -> Gerrit [ label="Done", style=dotted ];
}

   </pre>
</details>
