blob: a112a4605010a14ee441eb29163922049f6b13a0 [file] [log] [blame]
James Robinson646469d2014-10-03 15:33:28 -07001#!/usr/bin/env python
2# Copyright 2013 The Chromium Authors. All rights reserved.
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6"""
7This file emits the list of reasons why a particular build needs to be clobbered
8(or a list of 'landmines').
9"""
10
11import sys
12
13import landmine_utils
14
15
16builder = landmine_utils.builder
17distributor = landmine_utils.distributor
18gyp_defines = landmine_utils.gyp_defines
19gyp_msvs_version = landmine_utils.gyp_msvs_version
20platform = landmine_utils.platform
21
22
23def print_landmines():
24 """
25 ALL LANDMINES ARE EMITTED FROM HERE.
26 """
Alhaad Gokhale4f513072015-03-24 10:49:34 -070027 # DO NOT add landmines as part of a regular CL. Landmines are a last-effort
28 # bandaid fix if a CL that got landed has a build dependency bug and all bots
29 # need to be cleaned up. If you're writing a new CL that causes build
30 # dependency problems, fix the dependency problems instead of adding a
31 # landmine.
32
James Robinson646469d2014-10-03 15:33:28 -070033 if (distributor() == 'goma' and platform() == 'win32' and
34 builder() == 'ninja'):
35 print 'Need to clobber winja goma due to backend cwd cache fix.'
36 if platform() == 'android':
Benjamin Lermanc366b982015-05-21 11:50:45 +020037 print 'Clobber because of unions.'
James Robinson646469d2014-10-03 15:33:28 -070038 if platform() == 'win' and builder() == 'ninja':
39 print 'Compile on cc_unittests fails due to symbols removed in r185063.'
40 if platform() == 'linux' and builder() == 'ninja':
41 print 'Builders switching from make to ninja will clobber on this.'
42 if platform() == 'mac':
43 print 'Switching from bundle to unbundled dylib (issue 14743002).'
44 if platform() in ('win', 'mac'):
45 print ('Improper dependency for create_nmf.py broke in r240802, '
46 'fixed in r240860.')
47 if (platform() == 'win' and builder() == 'ninja' and
48 gyp_msvs_version() == '2012' and
49 gyp_defines().get('target_arch') == 'x64' and
50 gyp_defines().get('dcheck_always_on') == '1'):
51 print "Switched win x64 trybots from VS2010 to VS2012."
52 if (platform() == 'win' and builder() == 'ninja' and
53 gyp_msvs_version().startswith('2013')):
54 print "Switched win from VS2010 to VS2013."
55 print "Update to VS2013 Update 2."
Benjamin Lerman57998902014-11-18 16:06:02 +010056 print "Update to VS2013 Update 4."
Viet-Trung Luu235cf3d2015-06-11 10:01:25 -070057 if (platform() == 'win' and gyp_msvs_version().startswith('2015')):
58 print 'Switch to VS2015'
James Robinson646469d2014-10-03 15:33:28 -070059 print 'Need to clobber everything due to an IDL change in r154579 (blink)'
60 print 'Need to clobber everything due to gen file moves in r175513 (Blink)'
61 if (platform() != 'ios'):
62 print 'Clobber to get rid of obselete test plugin after r248358'
63 print 'Clobber to rebuild GN files for V8'
James Robinson5e66a792015-01-21 17:02:08 -080064 print 'Clobber to get rid of stale generated mojom.h files'
James Robinson646469d2014-10-03 15:33:28 -070065 print 'Need to clobber everything due to build_nexe change in nacl r13424'
66 print '[chromium-dev] PSA: clobber build needed for IDR_INSPECTOR_* compil...'
67 print 'blink_resources.grd changed: crbug.com/400860'
68 print 'ninja dependency cycle: crbug.com/408192'
James Robinson1ae030a2014-11-07 08:32:47 -080069 print 'Clobber to fix missing NaCl gyp dependencies (crbug.com/427427).'
James Robinson6a64b812014-12-03 13:38:42 -080070 print 'Another clobber for missing NaCl gyp deps (crbug.com/427427).'
James Robinson9127e722014-12-29 14:41:55 -080071 print 'Clobber to fix GN not picking up increased ID range (crbug.com/444902)'
Benjamin Lermane8ca9b72015-02-24 16:42:13 +010072 print 'Remove NaCl toolchains from the output dir (crbug.com/456902)'
James Robinsonc8f302a2015-05-14 16:38:33 -070073 if platform() == 'ios':
74 print 'Clobber iOS to workaround Xcode deps bug (crbug.com/485435)'
Viet-Trung Luu28773a12015-06-24 13:45:50 -070075 print 'Clobber: https://github.com/domokit/mojo/issues/269'
John McCutchancb47ff82015-08-27 14:01:29 -070076 print 'Clobber: https://github.com/domokit/mojo/issues/401'
James Robinson646469d2014-10-03 15:33:28 -070077
78
79def main():
80 print_landmines()
81 return 0
82
83
84if __name__ == '__main__':
85 sys.exit(main())