| Index: doc/package_config.md
 | 
| diff --git a/doc/package_config.md b/doc/package_config.md
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..b0fb74e4cc78124b693ff99a756555a8dde25253
 | 
| --- /dev/null
 | 
| +++ b/doc/package_config.md
 | 
| @@ -0,0 +1,116 @@
 | 
| +Each package may include a configuration file that applies to the package as a
 | 
| +whole. This file can be used to provide custom defaults for various options, to
 | 
| +define configuration for multiple files, and more.
 | 
| +
 | 
| +The file is named `dart_test.yaml` and lives at the root of the package, next to
 | 
| +the package's pubspec. Like the pubspec, it's a [YAML][] file. Here's an
 | 
| +example:
 | 
| +
 | 
| +[YAML]: http://yaml.org/
 | 
| +
 | 
| +```yaml
 | 
| +# This package's tests are very slow. Double the default timeout.
 | 
| +timeout: 2x
 | 
| +
 | 
| +# This is a browser-only package, so test on content shell by default.
 | 
| +platforms: [content-shell]
 | 
| +```
 | 
| +
 | 
| +* [Config Fields](#config-fields)
 | 
| +
 | 
| +## Config Fields
 | 
| +
 | 
| +These fields directly affect the behavior of the test runner. They go at the
 | 
| +root of the configuration file.
 | 
| +
 | 
| +### `platforms`
 | 
| +
 | 
| +This field indicates which platforms tests should run on by default. It allows
 | 
| +the same paltform identifiers that can be passed to `--platform`. If multiple
 | 
| +platforms are included, the test runner will default to running tests on all of
 | 
| +them. This defaults to `[vm]`.
 | 
| +
 | 
| +```yaml
 | 
| +platforms: [content_shell]
 | 
| +
 | 
| +platforms:
 | 
| +- chrome
 | 
| +- firefox
 | 
| +```
 | 
| +
 | 
| +### `concurrency`
 | 
| +
 | 
| +This field indicates the default number of test suites to run in parallel. More
 | 
| +parallelism can improve the overall speed of running tests up to a point, but
 | 
| +eventually it just adds more memory overhead without any performance gain. This
 | 
| +defaults to approximately half the number of processors on the current machine.
 | 
| +If it's set to 1, only one test suite will run at a time.
 | 
| +
 | 
| +```yaml
 | 
| +concurrency: 3
 | 
| +```
 | 
| +
 | 
| +### `pub_serve`
 | 
| +
 | 
| +This field indicates that the test runner should run against a `pub serve`
 | 
| +instance by default, and provides the port number for that instance. Note that
 | 
| +if there is no `pub serve` instance running at that port, running the tests will
 | 
| +fail by default.
 | 
| +
 | 
| +```yaml
 | 
| +pub_serve: 8081
 | 
| +```
 | 
| +
 | 
| +### `timeout`
 | 
| +
 | 
| +This field indicates how much time the test runner should allow a test to remain
 | 
| +inactive before it considers that test to have failed. It has three possible
 | 
| +formats:
 | 
| +
 | 
| +* The string "none" indicates that tests should never time out.
 | 
| +
 | 
| +* A number followed by a unit abbreviation indicates an exact time. For example,
 | 
| +  "1m" means a timeout of one minute, and "30s" means a timeout of thirty
 | 
| +  seconds. Multiple numbers can be combined, as in "1m 30s".
 | 
| +
 | 
| +* A number followed by "x" indicates a multiple. This is applied to the default
 | 
| +  value of 30s.
 | 
| +
 | 
| +```yaml
 | 
| +timeout: 1m
 | 
| +```
 | 
| +
 | 
| +### `reporter`
 | 
| +
 | 
| +This field indicates the default reporter to use. It may be set to "compact",
 | 
| +"expanded", or "json" (although why anyone would want to default to JSON is
 | 
| +beyond me). It defaults to "expanded" on Windows and "compact" everywhere else.
 | 
| +
 | 
| +```yaml
 | 
| +reporter: expanded
 | 
| +```
 | 
| +
 | 
| +### `verbose_trace`
 | 
| +
 | 
| +This boolean field controls whether or not stack traces caused by errors are
 | 
| +trimmed to remove internal stack frames. This includes frames from the Dart core
 | 
| +libraries, the [`stack_trace`][stack_trace] package, and the `test` package
 | 
| +itself. It defaults to `false`.
 | 
| +
 | 
| +[stack_trace]: https://pub.dartlang.org/packages/stack_trace
 | 
| +
 | 
| +```yaml
 | 
| +verbose_trace: true
 | 
| +```
 | 
| +
 | 
| +### `js_trace`
 | 
| +
 | 
| +This boolean field controls whether or not stack traces caused by errors that
 | 
| +occur while running Dart compiled to JS are converted back to Dart style. This
 | 
| +conversion uses the source map generated by `dart2js` to approximate the
 | 
| +original Dart line, column, and in some cases member name for each stack frame.
 | 
| +It defaults to `false`.
 | 
| +
 | 
| +```yaml
 | 
| +js_trace: true
 | 
| +```
 | 
| 
 |