skia2/infra/bots/recipe_modules
Kevin Lubick 641bf8745d [PathKit] Add more Path2D functionality and move some methods to be members
Adds arc, arcTo, rect and Path2D names for quadTo, cubicTo, close.

Adds conic verb support (approximated with 2 quads).

Breaking changes:
Some functions have been moved to be member functions:
PathKit.Simplify(path) -> path.simplify()
PathKit.ToCanvas(path, ctx) -> path.toCanvas(ctx)
PathKit.ToSVGString(path) -> path.toSVGString()
PathKit.ToPath2D(path) -> path.toPath2D()
PathKit.ToCmds(path) -> path.toCmds()
PathKit.ResolveBuilder(builder) -> builder.resolve()
PathKit.GetBoundaryPathFromRegion(region) -> region.getBoundaryPath()

Pathkit.ApplyPathOp(pathOne, pathTwo, op) still exists, but there's
now also pathOne.op(pathTwo, op) for cases when that's easier.

As per custom with version 0.x.y projects, I'm bumping the
minor version (in npm) for these breaking changes instead of the
major version (which will happen when we are version >= 1.0.0).

This also has some small improvements to the output code size.
The biggest jump was from enabling the closure compiler on the
helper JS, which trimmed it down by about 40%. Using the closure
compiler requires the JRE on the bots, which prompted the emsdk-base
image change.

Bug: skia:8216
Change-Id: I40902d23380093c34d1679df0255bcb0eaa77b01
Reviewed-on: https://skia-review.googlesource.com/145420
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2018-08-06 19:07:12 +00:00
..
binary_size Reland [recipes] Isolate build outputs with no subdirs 2018-06-01 15:18:46 +00:00
build [PathKit] Add more Path2D functionality and move some methods to be members 2018-08-06 19:07:12 +00:00
builder_name_schema [infra] Support recursive configs in builder_name_schema 2018-04-17 18:56:24 +00:00
checkout Roll recipe dependencies (nontrivial). 2018-08-03 11:20:51 +00:00
ct Update CT bots to Debian-9.2 2017-11-29 18:45:05 +00:00
doxygen [recipes] Rename some modules and files 2018-05-24 14:06:55 +00:00
env Rename example.py -> examples/full.py for all modules 2017-06-02 11:40:36 +00:00
flavor Use XCode from CIPD. Include xSAN dylibs in Build task isolated output. 2018-08-03 17:14:14 +00:00
git Use chrome-infra Git CIPD package 2017-06-06 12:45:11 +00:00
gsutil Upload multiple dm images at once 2018-01-17 12:29:26 +00:00
infra [infra] Add new go_deps asset 2018-08-03 18:33:24 +00:00
isolate Revert "Update isolate binaries and update isolate recipe" 2017-12-22 18:53:56 +00:00
run [recipes] Move a lot of logic out of vars module 2018-05-18 11:58:14 +00:00
skia_swarming Manually roll recipe DEPS 2017-09-27 17:24:38 +00:00
swarming Manually roll recipe DEPS 2017-09-27 17:24:38 +00:00
swarming_client Manually roll recipe DEPS 2017-09-27 17:24:38 +00:00
vars Reland [recipes] Isolate build outputs with no subdirs 2018-06-01 15:18:46 +00:00
README.md Use new recipes.py test command 2017-04-18 13:57:56 +00:00

Skia Recipe Modules

This directory contains recipe modules designed to be used by recipes (see infra/bots/recipes). They are all Skia-specific and some are interrelated:

  • builder_name_schema - Helps to derive expected behavior from task (formerly builder) names.
  • core - Use as a starting point for most recipes: runs setup and sync steps.
  • ct - Shared Cluster Telemetry utilities.
  • flavor - Allows the caller to specify a high-level command to run, leaving the platform-specific details to be handled by the specific flavor module.
  • infra - Shared infrastructure-related utilities.
  • run - Utilities for running commands.
  • swarming - Utilities for running Swarming tasks.
  • vars - Common global variables used by Skia recipes/modules.

When you change a recipe module, you generally need to re-train the simulation test:

$ python infra/bots/recipes.py test run --train

Or:

$ cd infra/bots; make train

Each recipe module contains a few files:

  • api.py - This is the meat of the module.
  • __init__.py - Contains a single DEPS variable, indicating the other recipe modules on which this module depends.
  • example.py - Optional, this file contains examples which demonstrate how to use the module and should contain enough tests to achieve 100% coverage for the module. The tests are run using the recipes test command above.