# Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

# Watchlist Rules
# Refer: http://dev.chromium.org/developers/contributing-code/watchlists

{
  'WATCHLIST_DEFINITIONS': {
    'build': {
      'filepath': (
        '.*gyp$|'
        '.*gypi$|'
        '.*gn$|'
        '.*gni$|'
        '^tools/.*py$|'
        '^build/|'
        '^tools/buildtools/'
      )
    },
    'front_end': {
      'filepath': '^pkg/front_end',
    },
    'kernel': {
      'filepath': '^pkg/kernel',
    },
    'dart2js': {
      'filepath': (
        '^pkg/compiler|'
        '^sdk/lib/_internal/js_runtime|'
        '^tests/web'
      )
    },
    'dartdevc': {
      'filepath': (
        '^pkg/dev_compiler|'
        '^sdk/lib/_internal/js_dev_runtime|'
        '^tests/dartdevc'
      )
    },
    'package_vm': {
      'filepath': '^pkg/vm/',
    },
    'messages_review': {
      'filepath': (
        '^('
        'pkg/front_end/messages\\.yaml|'
        'pkg/compiler/lib/src/diagnostics/messages\\.dart|'
        'pkg/analyzer/lib/src/analysis_options/error/option_codes\\.dart|'
        'pkg/analyzer/lib/src/dart/error/hint_codes\\.dart|'
        'pkg/analyzer/lib/src/dart/error/lint_codes\\.dart|'
        'pkg/analyzer/lib/src/dart/error/todo_codes\\.dart|'
        'pkg/analyzer/lib/src/html/error/html_codes\\.dart|'
        'pkg/dart_messages/lib/shared_messages\\.dart'
        ')$'
      )
    },
    'observatory': {
      'filepath': (
        '^runtime/bin/vmservice/|'
        '^runtime/bin/vmservice*|'
        '^runtime/observatory/|'
        '^runtime/vm/service/|'
        '^runtime/vm/service*'
      )
    },
    'runtime': {
      'filepath': '^runtime/',
    },
    'vm_compiler': {
      'filepath': '^runtime/(vm|docs)/compiler/',
    },
  },

  'WATCHLISTS': {
    'build': [ 'keertip@google.com' ],
    'dart2js': [ 'dart2js-team+reviews@google.com' ],
    'dartdevc': [ 'dart-dc-team+reviews@google.com' ],
    'front_end': [ 'dart-fe-team+reviews@google.com' ],
    'kernel': [ 'jensj@google.com', 'alexmarkov@google.com' ],
    'messages_review': [ 'dart-uxr+reviews@google.com' ],
    'observatory': [ 'bkonyi@google.com' ],
    'package_vm': [ 'alexmarkov@google.com' ],
    'runtime': [ 'vm-dev@dartlang.org' ],
    'vm_compiler': [ 'dart-vm-compiler-team+reviews@google.com' ],
  },
}
