blob: a32ab9937c7a540ee38fab0ac86ef822c5aeb310 [file] [log] [blame]
[email protected]ec069f72013-08-21 02:44:581#!/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
Raul Tambre4197d3a2019-03-19 15:04:2011from __future__ import print_function
12
[email protected]ec069f72013-08-21 02:44:5813import sys
14
15import landmine_utils
16
17
Michael Achenbachd76f98f2018-02-16 22:40:0118host_os = landmine_utils.host_os
[email protected]ec069f72013-08-21 02:44:5819
20
[email protected]9372bec2014-08-14 14:03:3021def print_landmines():
[email protected]ec069f72013-08-21 02:44:5822 """
23 ALL LANDMINES ARE EMITTED FROM HERE.
[email protected]ec069f72013-08-21 02:44:5824 """
thakis37066a52015-03-23 18:57:5525 # DO NOT add landmines as part of a regular CL. Landmines are a last-effort
26 # bandaid fix if a CL that got landed has a build dependency bug and all bots
27 # need to be cleaned up. If you're writing a new CL that causes build
28 # dependency problems, fix the dependency problems instead of adding a
29 # landmine.
brucedawsona1ed2e02017-06-30 01:25:1130 #
31 # Before adding or changing a landmine consider the consequences of doing so.
32 # Doing so will wipe out every output directory on every Chrome developer's
33 # machine. This can be particularly problematic on Windows where the directory
34 # deletion may well fail (locked files, command prompt in the directory,
35 # etc.), and generated .sln and .vcxproj files will be deleted.
36 #
37 # This output directory deletion will be repeated when going back and forth
38 # across the change that added the landmine, adding to the cost. There are
39 # usually less troublesome alternatives.
thakis37066a52015-03-23 18:57:5540
Michael Achenbachd76f98f2018-02-16 22:40:0141 if host_os() == 'win':
Raul Tambre4197d3a2019-03-19 15:04:2042 print('Compile on cc_unittests fails due to symbols removed in r185063.')
Michael Achenbachd76f98f2018-02-16 22:40:0143 if host_os() == 'linux':
Raul Tambre4197d3a2019-03-19 15:04:2044 print('Builders switching from make to ninja will clobber on this.')
Michael Achenbachd76f98f2018-02-16 22:40:0145 if host_os() == 'mac':
Raul Tambre4197d3a2019-03-19 15:04:2046 print('Switching from bundle to unbundled dylib (issue 14743002).')
Michael Achenbachd76f98f2018-02-16 22:40:0147 if host_os() in ('win', 'mac'):
Raul Tambre4197d3a2019-03-19 15:04:2048 print('Improper dependency for create_nmf.py broke in r240802, '
49 'fixed in r240860.')
Michael Achenbachd76f98f2018-02-16 22:40:0150 if host_os() == 'win':
Raul Tambre4197d3a2019-03-19 15:04:2051 print('Switch to VS2015 Update 3, 14393 SDK')
52 print('Need to clobber everything due to an IDL change in r154579 (blink)')
53 print('Need to clobber everything due to gen file moves in r175513 (Blink)')
54 print('Clobber to get rid of obselete test plugin after r248358')
55 print('Clobber to rebuild GN files for V8')
56 print('Clobber to get rid of stale generated mojom.h files')
57 print('Need to clobber everything due to build_nexe change in nacl r13424')
58 print(
59 '[chromium-dev] PSA: clobber build needed for IDR_INSPECTOR_* compil...')
60 print('blink_resources.grd changed: crbug.com/400860')
61 print('ninja dependency cycle: crbug.com/408192')
62 print('Clobber to fix missing NaCl gyp dependencies (crbug.com/427427).')
63 print('Another clobber for missing NaCl gyp deps (crbug.com/427427).')
64 print(
65 'Clobber to fix GN not picking up increased ID range (crbug.com/444902)')
66 print('Remove NaCl toolchains from the output dir (crbug.com/456902)')
Michael Achenbachd76f98f2018-02-16 22:40:0167 if host_os() == 'win':
Raul Tambre4197d3a2019-03-19 15:04:2068 print('Clobber to delete stale generated files (crbug.com/510086)')
Michael Achenbachd76f98f2018-02-16 22:40:0169 if host_os() == 'mac':
Raul Tambre4197d3a2019-03-19 15:04:2070 print('Clobber to get rid of evil libsqlite3.dylib (crbug.com/526208)')
Michael Achenbachd76f98f2018-02-16 22:40:0171 if host_os() == 'mac':
Raul Tambre4197d3a2019-03-19 15:04:2072 print('Clobber to remove libsystem.dylib. See crbug.com/620075')
Michael Achenbachd76f98f2018-02-16 22:40:0173 if host_os() == 'mac':
Raul Tambre4197d3a2019-03-19 15:04:2074 print('Clobber to get past mojo gen build error (crbug.com/679607)')
Michael Achenbachd76f98f2018-02-16 22:40:0175 if host_os() == 'win':
Raul Tambre4197d3a2019-03-19 15:04:2076 print('Clobber Windows to fix strange PCH-not-rebuilt errors.')
77 print('CLobber all to fix GN breakage (crbug.com/736215)')
78 print('The Great Blink mv for source files (crbug.com/768828)')
Kevin Marshallf4282722019-02-25 01:42:4279 if host_os() == 'linux':
Raul Tambre4197d3a2019-03-19 15:04:2080 print('Clobber to workaround buggy .ninja_deps cycle (crbug.com/934404)')
81
[email protected]ec069f72013-08-21 02:44:5882
83def main():
[email protected]9372bec2014-08-14 14:03:3084 print_landmines()
[email protected]ec069f72013-08-21 02:44:5885 return 0
86
87
88if __name__ == '__main__':
89 sys.exit(main())