tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

task.rst (1779B)


      1 Task Transforms
      2 ===============
      3 
      4 .. note::
      5 
      6   These transforms are currently duplicated by standalone Taskgraph
      7   and will likely be refactored / removed at a later date.
      8 
      9 Every kind needs to create tasks, and all of those tasks have some things in
     10 common.  They all run on one of a small set of worker implementations, each
     11 with their own idiosyncrasies.  And they all report to TreeHerder in a similar
     12 way.
     13 
     14 The transforms in ``taskcluster/gecko_taskgraph/transforms/task.py`` implement
     15 this common functionality.  They expect a "task description", and produce a
     16 task definition.  The schema for a task description is defined at the top of
     17 ``task.py``, with copious comments.  Go forth and read it now!
     18 
     19 In general, the task-description transforms handle functionality that is common
     20 to all Gecko tasks.  While the schema is the definitive reference, the
     21 functionality includes:
     22 
     23 * TreeHerder metadata
     24 
     25 * Build index routes
     26 
     27 * Information about the projects on which this task should run
     28 
     29 * Optimizations
     30 
     31 * Defaults for ``expires-after`` and and ``deadline-after``, based on project
     32 
     33 * Worker configuration
     34 
     35 The parts of the task description that are specific to a worker implementation
     36 are isolated in a ``task_description['worker']`` object which has an
     37 ``implementation`` property naming the worker implementation.  Each worker
     38 implementation has its own section of the schema describing the fields it
     39 expects.  Thus the transforms that produce a task description must be aware of
     40 the worker implementation to be used, but need not be aware of the details of
     41 its payload format.
     42 
     43 The ``task.py`` file also contains a dictionary mapping treeherder groups to
     44 group names using an internal list of group names.  Feel free to add additional
     45 groups to this list as necessary.