blob: 8a655e30329a92e5f1ed1a73291fa28437fdddf6 [file] [log] [blame]
sivachandra@chromium.org54da9682013-08-21 11:44:58 +09001#!/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
sivachandra@chromium.org54da9682013-08-21 11:44:58 +090011import sys
12
13import landmine_utils
14
15
Michael Achenbacha3dba502018-02-17 07:40:01 +090016host_os = landmine_utils.host_os
sivachandra@chromium.org54da9682013-08-21 11:44:58 +090017
18
scottmg@chromium.org2f8c83b2014-08-14 23:03:30 +090019def print_landmines():
sivachandra@chromium.org54da9682013-08-21 11:44:58 +090020 """
21 ALL LANDMINES ARE EMITTED FROM HERE.
sivachandra@chromium.org54da9682013-08-21 11:44:58 +090022 """
thakis0ce7d652015-03-24 03:57:55 +090023 # DO NOT add landmines as part of a regular CL. Landmines are a last-effort
24 # bandaid fix if a CL that got landed has a build dependency bug and all bots
25 # need to be cleaned up. If you're writing a new CL that causes build
26 # dependency problems, fix the dependency problems instead of adding a
27 # landmine.
brucedawsonb23dc2d2017-06-30 10:25:11 +090028 #
29 # Before adding or changing a landmine consider the consequences of doing so.
30 # Doing so will wipe out every output directory on every Chrome developer's
31 # machine. This can be particularly problematic on Windows where the directory
32 # deletion may well fail (locked files, command prompt in the directory,
33 # etc.), and generated .sln and .vcxproj files will be deleted.
34 #
35 # This output directory deletion will be repeated when going back and forth
36 # across the change that added the landmine, adding to the cost. There are
37 # usually less troublesome alternatives.
thakis0ce7d652015-03-24 03:57:55 +090038
Michael Achenbacha3dba502018-02-17 07:40:01 +090039 if host_os() == 'win':
sivachandra@chromium.org54da9682013-08-21 11:44:58 +090040 print 'Compile on cc_unittests fails due to symbols removed in r185063.'
Michael Achenbacha3dba502018-02-17 07:40:01 +090041 if host_os() == 'linux':
sivachandra@chromium.org54da9682013-08-21 11:44:58 +090042 print 'Builders switching from make to ninja will clobber on this.'
Michael Achenbacha3dba502018-02-17 07:40:01 +090043 if host_os() == 'mac':
sivachandra@chromium.org54da9682013-08-21 11:44:58 +090044 print 'Switching from bundle to unbundled dylib (issue 14743002).'
Michael Achenbacha3dba502018-02-17 07:40:01 +090045 if host_os() in ('win', 'mac'):
iannucci@chromium.org78646dd2013-12-17 06:48:08 +090046 print ('Improper dependency for create_nmf.py broke in r240802, '
47 'fixed in r240860.')
Michael Achenbacha3dba502018-02-17 07:40:01 +090048 if host_os() == 'win':
scottmg2e3d3672016-12-08 14:58:07 +090049 print 'Switch to VS2015 Update 3, 14393 SDK'
sivachandra@chromium.org54da9682013-08-21 11:44:58 +090050 print 'Need to clobber everything due to an IDL change in r154579 (blink)'
nbarth@chromium.org07c0b322014-06-06 20:25:13 +090051 print 'Need to clobber everything due to gen file moves in r175513 (Blink)'
Michael Achenbacha3dba502018-02-17 07:40:01 +090052 print 'Clobber to get rid of obselete test plugin after r248358'
53 print 'Clobber to rebuild GN files for V8'
blundellc7690f92015-01-20 02:18:33 +090054 print 'Clobber to get rid of stale generated mojom.h files'
bradnelson@google.com52f2eac2014-07-03 08:11:11 +090055 print 'Need to clobber everything due to build_nexe change in nacl r13424'
thakis@chromium.orgb71ec462014-08-02 07:08:49 +090056 print '[chromium-dev] PSA: clobber build needed for IDR_INSPECTOR_* compil...'
eseidel@chromium.orgcfa02862014-08-06 08:21:53 +090057 print 'blink_resources.grd changed: crbug.com/400860'
Nico Weberc8cd8d62014-09-03 08:42:42 +090058 print 'ninja dependency cycle: crbug.com/408192'
petrcermak4dec79e2014-11-06 11:17:57 +090059 print 'Clobber to fix missing NaCl gyp dependencies (crbug.com/427427).'
dcheng60283a82014-11-26 14:04:55 +090060 print 'Another clobber for missing NaCl gyp deps (crbug.com/427427).'
Daniel Cheng2dcdbf02014-12-24 07:54:10 +090061 print 'Clobber to fix GN not picking up increased ID range (crbug.com/444902)'
ncbray3318b092015-02-19 05:10:55 +090062 print 'Remove NaCl toolchains from the output dir (crbug.com/456902)'
Michael Achenbacha3dba502018-02-17 07:40:01 +090063 if host_os() == 'win':
luqui49549132015-07-15 05:27:55 +090064 print 'Clobber to delete stale generated files (crbug.com/510086)'
Michael Achenbacha3dba502018-02-17 07:40:01 +090065 if host_os() == 'mac':
luqui70608432015-09-02 09:19:54 +090066 print 'Clobber to get rid of evil libsqlite3.dylib (crbug.com/526208)'
Michael Achenbacha3dba502018-02-17 07:40:01 +090067 if host_os() == 'mac':
bpastene189a0a32016-06-17 04:26:08 +090068 print 'Clobber to remove libsystem.dylib. See crbug.com/620075'
Michael Achenbacha3dba502018-02-17 07:40:01 +090069 if host_os() == 'mac':
Philip Jägenstedt4fd25502017-01-11 18:25:44 +090070 print 'Clobber to get past mojo gen build error (crbug.com/679607)'
Michael Achenbacha3dba502018-02-17 07:40:01 +090071 if host_os() == 'win':
brettwce38c192017-03-25 01:36:42 +090072 print 'Clobber Windows to fix strange PCH-not-rebuilt errors.'
Andrii Shyshkalov00c51362017-06-23 18:58:48 +090073 print 'CLobber all to fix GN breakage (crbug.com/736215)'
Blink Reformat4bd8a0c2018-04-08 00:32:37 +090074 print 'The Great Blink mv for source files (crbug.com/768828)'
sivachandra@chromium.org54da9682013-08-21 11:44:58 +090075
76def main():
scottmg@chromium.org2f8c83b2014-08-14 23:03:30 +090077 print_landmines()
sivachandra@chromium.org54da9682013-08-21 11:44:58 +090078 return 0
79
80
81if __name__ == '__main__':
82 sys.exit(main())