Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(341)

Side by Side Diff: PRESUBMIT.py

Issue 484393003: Remove SVN Config PRESUBMIT check. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Top-level presubmit script for Chromium. 5 """Top-level presubmit script for Chromium.
6 6
7 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts 7 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
8 for more details about the presubmit API built into gcl. 8 for more details about the presubmit API built into gcl.
9 """ 9 """
10 10
(...skipping 1263 matching lines...) Expand 10 before | Expand all | Expand 10 after
1274 results.extend(_CheckParseErrors(input_api, output_api)) 1274 results.extend(_CheckParseErrors(input_api, output_api))
1275 1275
1276 if any('PRESUBMIT.py' == f.LocalPath() for f in input_api.AffectedFiles()): 1276 if any('PRESUBMIT.py' == f.LocalPath() for f in input_api.AffectedFiles()):
1277 results.extend(input_api.canned_checks.RunUnitTestsInDirectory( 1277 results.extend(input_api.canned_checks.RunUnitTestsInDirectory(
1278 input_api, output_api, 1278 input_api, output_api,
1279 input_api.PresubmitLocalPath(), 1279 input_api.PresubmitLocalPath(),
1280 whitelist=[r'^PRESUBMIT_test\.py$'])) 1280 whitelist=[r'^PRESUBMIT_test\.py$']))
1281 return results 1281 return results
1282 1282
1283 1283
1284 def _CheckSubversionConfig(input_api, output_api):
1285 """Verifies the subversion config file is correctly setup.
1286
1287 Checks that autoprops are enabled, returns an error otherwise.
1288 """
1289 join = input_api.os_path.join
1290 if input_api.platform == 'win32':
1291 appdata = input_api.environ.get('APPDATA', '')
1292 if not appdata:
1293 return [output_api.PresubmitError('%APPDATA% is not configured.')]
1294 path = join(appdata, 'Subversion', 'config')
1295 else:
1296 home = input_api.environ.get('HOME', '')
1297 if not home:
1298 return [output_api.PresubmitError('$HOME is not configured.')]
1299 path = join(home, '.subversion', 'config')
1300
1301 error_msg = (
1302 'Please look at http://dev.chromium.org/developers/coding-style to\n'
1303 'configure your subversion configuration file. This enables automatic\n'
1304 'properties to simplify the project maintenance.\n'
1305 'Pro-tip: just download and install\n'
1306 'http://src.chromium.org/viewvc/chrome/trunk/tools/build/slave/config\n')
1307
1308 try:
1309 lines = open(path, 'r').read().splitlines()
1310 # Make sure auto-props is enabled and check for 2 Chromium standard
1311 # auto-prop.
1312 if (not '*.cc = svn:eol-style=LF' in lines or
1313 not '*.pdf = svn:mime-type=application/pdf' in lines or
1314 not 'enable-auto-props = yes' in lines):
1315 return [
1316 output_api.PresubmitNotifyResult(
1317 'It looks like you have not configured your subversion config '
1318 'file or it is not up-to-date.\n' + error_msg)
1319 ]
1320 except (OSError, IOError):
1321 return [
1322 output_api.PresubmitNotifyResult(
1323 'Can\'t find your subversion config file.\n' + error_msg)
1324 ]
1325 return []
1326
1327
1328 def _CheckAuthorizedAuthor(input_api, output_api): 1284 def _CheckAuthorizedAuthor(input_api, output_api):
1329 """For non-googler/chromites committers, verify the author's email address is 1285 """For non-googler/chromites committers, verify the author's email address is
1330 in AUTHORS. 1286 in AUTHORS.
1331 """ 1287 """
1332 # TODO(maruel): Add it to input_api? 1288 # TODO(maruel): Add it to input_api?
1333 import fnmatch 1289 import fnmatch
1334 1290
1335 author = input_api.change.author_email 1291 author = input_api.change.author_email
1336 if not author: 1292 if not author:
1337 input_api.logging.info('No author, skipping AUTHOR check') 1293 input_api.logging.info('No author, skipping AUTHOR check')
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
1557 # Make sure the tree is 'open'. 1513 # Make sure the tree is 'open'.
1558 results.extend(input_api.canned_checks.CheckTreeIsOpen( 1514 results.extend(input_api.canned_checks.CheckTreeIsOpen(
1559 input_api, 1515 input_api,
1560 output_api, 1516 output_api,
1561 json_url='http://chromium-status.appspot.com/current?format=json')) 1517 json_url='http://chromium-status.appspot.com/current?format=json'))
1562 1518
1563 results.extend(input_api.canned_checks.CheckChangeHasBugField( 1519 results.extend(input_api.canned_checks.CheckChangeHasBugField(
1564 input_api, output_api)) 1520 input_api, output_api))
1565 results.extend(input_api.canned_checks.CheckChangeHasDescription( 1521 results.extend(input_api.canned_checks.CheckChangeHasDescription(
1566 input_api, output_api)) 1522 input_api, output_api))
1567 results.extend(_CheckSubversionConfig(input_api, output_api))
1568 return results 1523 return results
1569 1524
1570 1525
1571 def GetPreferredTryMasters(project, change): 1526 def GetPreferredTryMasters(project, change):
1572 files = change.LocalPaths() 1527 files = change.LocalPaths()
1573 1528
1574 if not files or all(re.search(r'[\\/]OWNERS$', f) for f in files): 1529 if not files or all(re.search(r'[\\/]OWNERS$', f) for f in files):
1575 return {} 1530 return {}
1576 1531
1577 if all(re.search('\.(m|mm)$|(^|[/_])mac[/_.]', f) for f in files): 1532 if all(re.search('\.(m|mm)$|(^|[/_])mac[/_.]', f) for f in files):
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1630 builders.extend(['cros_x86']) 1585 builders.extend(['cros_x86'])
1631 1586
1632 # The AOSP bot doesn't build the chrome/ layer, so ignore any changes to it 1587 # The AOSP bot doesn't build the chrome/ layer, so ignore any changes to it
1633 # unless they're .gyp(i) files as changes to those files can break the gyp 1588 # unless they're .gyp(i) files as changes to those files can break the gyp
1634 # step on that bot. 1589 # step on that bot.
1635 if (not all(re.search('^chrome', f) for f in files) or 1590 if (not all(re.search('^chrome', f) for f in files) or
1636 any(re.search('\.gypi?$', f) for f in files)): 1591 any(re.search('\.gypi?$', f) for f in files)):
1637 builders.extend(['android_aosp']) 1592 builders.extend(['android_aosp'])
1638 1593
1639 return GetDefaultTryConfigs(builders) 1594 return GetDefaultTryConfigs(builders)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698