Implementing chrome://thumbnails page to view URLs in TopSites and cached thumbnails.
[chromium-blink-merge.git] / DEPS
blob454070fb646798cebf97c9e739c3e17ead15bc21
1 # When adding a new dependency, please update the top-level .gitignore file
2 # to list the dependency's destination directory.
4 vars = {
5   # Use this googlecode_url variable only if there is an internal mirror for it.
6   # If you do not know, use the full path while defining your new deps entry.
7   "googlecode_url": "http://%s.googlecode.com/svn",
8   "sourceforge_url": "http://svn.code.sf.net/p/%(repo)s/code",
9   "webkit_trunk": "http://src.chromium.org/blink/trunk",
10   "nacl_trunk": "http://src.chromium.org/native_client/trunk",
11   "webkit_revision": "158648",
12   "chromium_git": "https://chromium.googlesource.com",
13   "chromiumos_git": "https://chromium.googlesource.com/chromiumos",
14   "skia_git": "https://skia.googlesource.com",
15   "swig_revision": "69281",
16   "nacl_revision": "12194",
17   # After changing nacl_revision, run 'glient sync' and check native_client/DEPS
18   # to update other nacl_*_revision's.
19   "nacl_tools_revision": "11437",  # native_client/DEPS: tools_rev
20   "gtm_revision": "616",
22   "libphonenumber_revision": "584",
23   "libvpx_revision": "225010",
24   "lss_revision": "24",
26   # These two FFmpeg variables must be updated together.  One is used for SVN
27   # checkouts and the other for Git checkouts.
28   "ffmpeg_revision": "224426",
29   "ffmpeg_hash": "5879ccd47e649bf2dfaec45f02ec5517bd3621d2",
31   "sfntly_revision": "134",
32   "lighttpd_revision": "33737",
33   "skia_revision": "11542",
34   "skia_hash": "cb6d9817fa217c249325d124f9153cbc3adfd3e5",
35   # Three lines of non-changing comments so that
36   # the commit queue can handle CLs rolling Skia
37   # and V8 without interference from each other.
38   "v8_revision": "17029",
39   # Three lines of non-changing comments so that
40   # the commit queue can handle CLs rolling WebRTC
41   # and V8 without interference from each other.
42   "webrtc_revision": "4889",
43   "jsoncpp_revision": "248",
44   "nss_revision": "223139",
45   # Three lines of non-changing comments so that
46   # the commit queue can handle CLs rolling swarm_client
47   # and whatever else without interference from each other.
48   "swarm_revision": "224429",
49   # Three lines of non-changing comments so that
50   # the commit queue can handle CLs rolling openssl
51   # and whatever else without interference from each other.
52   "openssl_revision": "207965",
55 deps = {
56   "src/breakpad/src":
57     (Var("googlecode_url") % "google-breakpad") + "/trunk/src@1213",
59   "src/sdch/open-vcdiff":
60     (Var("googlecode_url") % "open-vcdiff") + "/trunk@42",
62   "src/testing/gtest":
63     (Var("googlecode_url") % "googletest") + "/trunk@629",
65   "src/testing/gmock":
66     (Var("googlecode_url") % "googlemock") + "/trunk@410",
68   "src/third_party/angle_dx11":
69     Var("chromium_git") +
70     "/external/angle.git@300b1eb5018651d2e68289a9dd234bbf906b3cc0",
72   "src/third_party/trace-viewer":
73     (Var("googlecode_url") % "trace-viewer") + "/trunk@1006",
75   "src/third_party/WebKit":
76     Var("webkit_trunk") + "@" + Var("webkit_revision"),
78   "src/third_party/icu":
79     "/trunk/deps/third_party/icu46@224814",
81   "src/third_party/libexif/sources":
82     "/trunk/deps/third_party/libexif/sources@146817",
84   "src/third_party/hunspell":
85    "/trunk/deps/third_party/hunspell@206172",
87   "src/third_party/hunspell_dictionaries":
88     "/trunk/deps/third_party/hunspell_dictionaries@193701",
90   "src/third_party/safe_browsing/testing":
91     (Var("googlecode_url") % "google-safe-browsing") + "/trunk/testing@112",
93   "src/third_party/cacheinvalidation/src":
94     (Var("googlecode_url") % "google-cache-invalidation-api") +
95     "/trunk/src@313",
97   "src/third_party/leveldatabase/src":
98     (Var("googlecode_url") % "leveldb") + "/trunk@77",
100   "src/third_party/snappy/src":
101     (Var("googlecode_url") % "snappy") + "/trunk@80",
103   "src/tools/grit":
104     (Var("googlecode_url") % "grit-i18n") + "/trunk@136",
106   "src/tools/gyp":
107     (Var("googlecode_url") % "gyp") + "/trunk@1735",
109   "src/tools/swarm_client":
110     "/trunk/tools/swarm_client@" + Var("swarm_revision"),
112   "src/v8":
113     (Var("googlecode_url") % "v8") + "/trunk@" + Var("v8_revision"),
115   "src/native_client":
116     Var("nacl_trunk") + "/src/native_client@" + Var("nacl_revision"),
118   "src/chrome/test/data/extensions/api_test/permissions/nacl_enabled/bin":
119     Var("nacl_trunk") + "/src/native_client/tests/prebuilt@" +
120     Var("nacl_revision"),
122   "src/third_party/sfntly/cpp/src":
123     (Var("googlecode_url") % "sfntly") + "/trunk/cpp/src@" +
124     Var("sfntly_revision"),
126   "src/third_party/skia/src":
127     (Var("googlecode_url") % "skia") + "/trunk/src@" + Var("skia_revision"),
129   "src/third_party/skia/gyp":
130     (Var("googlecode_url") % "skia") + "/trunk/gyp@" + Var("skia_revision"),
132   "src/third_party/skia/include":
133     (Var("googlecode_url") % "skia") + "/trunk/include@" + Var("skia_revision"),
135   "src/third_party/ots":
136     (Var("googlecode_url") % "ots") + "/trunk@102",
138   "src/tools/page_cycler/acid3":
139     "/trunk/deps/page_cycler/acid3@171600",
141   "src/chrome/test/data/perf/canvas_bench":
142     "/trunk/deps/canvas_bench@122605",
144   "src/chrome/test/data/perf/frame_rate/content":
145     "/trunk/deps/frame_rate/content@93671",
147   "src/chrome/test/data/perf/third_party/octane":
148     (Var("googlecode_url") % "octane-benchmark") + "/trunk@19",
150   "src/third_party/bidichecker":
151     (Var("googlecode_url") % "bidichecker") + "/trunk/lib@4",
153   # When roll to another webgl conformance tests revision, please goto
154   # chrome/test/gpu and run generate_webgl_conformance_test_list.py.
155   "src/third_party/webgl_conformance":
156     "/trunk/deps/third_party/webgl/sdk/tests@218717",
158   "src/third_party/swig/Lib":
159     "/trunk/deps/third_party/swig/Lib@" + Var("swig_revision"),
161   # Make sure you update the two functional.DEPS and webdriver.DEPS too.
162   "src/third_party/webdriver/pylib":
163     (Var("googlecode_url") % "selenium") + "/trunk/py@18337",
165   "src/third_party/libvpx":
166     "/trunk/deps/third_party/libvpx@" +
167     Var("libvpx_revision"),
169   "src/third_party/ffmpeg":
170     "/trunk/deps/third_party/ffmpeg@" +
171     Var("ffmpeg_revision"),
173   "src/third_party/libjingle/source/talk":
174     (Var("googlecode_url") % "webrtc") + "/stable/talk@" +
175     Var("webrtc_revision"),
177   "src/third_party/usrsctp/usrsctplib":
178     (Var("googlecode_url") % "sctp-refimpl") +
179     "/trunk/KERN/usrsctp/usrsctplib@8603",
181   "src/third_party/libsrtp":
182     "/trunk/deps/third_party/libsrtp@214783",
184   "src/third_party/speex":
185     "/trunk/deps/third_party/speex@198168",
187   "src/third_party/yasm/source/patched-yasm":
188     "/trunk/deps/third_party/yasm/patched-yasm@167605",
190   "src/third_party/libjpeg_turbo":
191     "/trunk/deps/third_party/libjpeg_turbo@177737",
193   "src/third_party/flac":
194     "/trunk/deps/third_party/flac@222897",
196   "src/third_party/pyftpdlib/src":
197     (Var("googlecode_url") % "pyftpdlib") + "/trunk@977",
199   "src/third_party/scons-2.0.1":
200     Var("nacl_trunk") + "/src/third_party/scons-2.0.1@" +
201         Var("nacl_tools_revision"),
203   "src/third_party/webrtc":
204     (Var("googlecode_url") % "webrtc") + "/stable/webrtc@" + Var("webrtc_revision"),
206   "src/third_party/openmax_dl":
207     (Var("googlecode_url") % "webrtc") + "/deps/third_party/openmax@4261",
209   "src/third_party/jsoncpp/source/include":
210     (Var("sourceforge_url") % {"repo": "jsoncpp"}) +
211         "/trunk/jsoncpp/include@" + Var("jsoncpp_revision"),
213   "src/third_party/jsoncpp/source/src/lib_json":
214     (Var("sourceforge_url") % {"repo": "jsoncpp"}) +
215         "/trunk/jsoncpp/src/lib_json@" + Var("jsoncpp_revision"),
217   "src/third_party/libyuv":
218     (Var("googlecode_url") % "libyuv") + "/trunk@723",
220   "src/third_party/smhasher/src":
221     (Var("googlecode_url") % "smhasher") + "/trunk@149",
223   "src/third_party/libphonenumber/src/phonenumbers":
224      (Var("googlecode_url") % "libphonenumber") +
225          "/trunk/cpp/src/phonenumbers@" + Var("libphonenumber_revision"),
226   "src/third_party/libphonenumber/src/test":
227      (Var("googlecode_url") % "libphonenumber") + "/trunk/cpp/test@" +
228          Var("libphonenumber_revision"),
229   "src/third_party/libphonenumber/src/resources":
230      (Var("googlecode_url") % "libphonenumber") + "/trunk/resources@" +
231          Var("libphonenumber_revision"),
233   "src/tools/deps2git":
234     "/trunk/tools/deps2git@214390",
236   "src/third_party/webpagereplay":
237     (Var("googlecode_url") % "web-page-replay") + "/trunk@521",
239   "src/third_party/pywebsocket/src":
240     (Var("googlecode_url") % "pywebsocket") + "/trunk/src@662",
242   "src/third_party/opus/src":
243     "/trunk/deps/third_party/opus@185324",
245   "src/media/cdm/ppapi/api":
246     "/trunk/deps/cdm@181763",
248   "src/third_party/mesa/src":
249     "/trunk/deps/third_party/mesa@210110",
251   "src/third_party/cld_2/src":
252     (Var("googlecode_url") % "cld2") + "/trunk@84",
256 deps_os = {
257   "win": {
258     "src/chrome/tools/test/reference_build/chrome_win":
259       "/trunk/deps/reference_builds/chrome_win@221746",
261     "src/third_party/cygwin":
262       "/trunk/deps/third_party/cygwin@133786",
264     "src/third_party/python_26":
265       "/trunk/tools/third_party/python_26@89111",
267     "src/third_party/psyco_win32":
268       "/trunk/deps/third_party/psyco_win32@79861",
270     "src/third_party/bison":
271       "/trunk/deps/third_party/bison@147303",
273     "src/third_party/gperf":
274       "/trunk/deps/third_party/gperf@147304",
276     "src/third_party/perl":
277       "/trunk/deps/third_party/perl@147900",
279     "src/third_party/lighttpd":
280       "/trunk/deps/third_party/lighttpd@" + Var("lighttpd_revision"),
282     # Chrome Frame related deps
283     "src/third_party/xulrunner-sdk":
284       "/trunk/deps/third_party/xulrunner-sdk@119756",
285     "src/chrome_frame/tools/test/reference_build/chrome_win":
286       "/trunk/deps/reference_builds/chrome_win@89574",
288     # Parses Windows PE/COFF executable format.
289     "src/third_party/pefile":
290       (Var("googlecode_url") % "pefile") + "/trunk@63",
292     # NSS, for SSLClientSocketNSS.
293     "src/third_party/nss":
294       "/trunk/deps/third_party/nss@" + Var("nss_revision"),
296     "src/third_party/swig/win":
297       "/trunk/deps/third_party/swig/win@" + Var("swig_revision"),
299     # GNU binutils assembler for x86-32.
300     "src/third_party/gnu_binutils":
301       (Var("nacl_trunk") + "/deps/third_party/gnu_binutils@" +
302        Var("nacl_tools_revision")),
303     # GNU binutils assembler for x86-64.
304     "src/third_party/mingw-w64/mingw/bin":
305       (Var("nacl_trunk") + "/deps/third_party/mingw-w64/mingw/bin@" +
306        Var("nacl_tools_revision")),
308     # Dependencies used by libjpeg-turbo
309     "src/third_party/yasm/binaries":
310       "/trunk/deps/third_party/yasm/binaries@154708",
312     # Binary level profile guided optimizations. This points to the
313     # latest release binaries for the toolchain.
314     "src/third_party/syzygy/binaries":
315       (Var("googlecode_url") % "sawbuck") + "/trunk/syzygy/binaries@1811",
317     # Binaries for nacl sdk.
318     "src/third_party/nacl_sdk_binaries":
319       "/trunk/deps/third_party/nacl_sdk_binaries@111576",
320   },
321   "ios": {
322     "src/third_party/GTM":
323       (Var("googlecode_url") % "google-toolbox-for-mac") + "/trunk@" +
324       Var("gtm_revision"),
326     "src/third_party/nss":
327       "/trunk/deps/third_party/nss@" + Var("nss_revision"),
329     # class-dump utility to generate header files for undocumented SDKs
330     "src/testing/iossim/third_party/class-dump":
331       "/trunk/deps/third_party/class-dump@199203",
333     # Code that's not needed due to not building everything
334     "src/build/util/support": None,
335     "src/chrome/test/data/extensions/api_test/permissions/nacl_enabled/bin": None,
336     "src/chrome/test/data/perf/canvas_bench": None,
337     "src/chrome/test/data/perf/frame_rate/content": None,
338     "src/chrome/test/data/perf/third_party/octane": None,
339     "src/media/cdm/ppapi/api": None,
340     "src/native_client": None,
341     "src/native_client/src/third_party/ppapi": None,
342     "src/third_party/angle_dx11": None,
343     "src/third_party/cld_2/src": None,
344     "src/third_party/bidichecker": None,
345     "src/third_party/webgl_conformance": None,
346     "src/third_party/ffmpeg": None,
347     "src/third_party/hunspell_dictionaries": None,
348     "src/third_party/hunspell": None,
349     "src/third_party/leveldatabase/src": None,
350     "src/third_party/libexif/sources": None,
351     "src/third_party/libjpeg_turbo": None,
352     "src/third_party/libsrtp": None,
353     "src/third_party/usrsctp/usrsctplib": None,
354     "src/third_party/libvpx": None,
355     "src/third_party/libyuv": None,
356     "src/third_party/mesa/src": None,
357     "src/third_party/opus/src": None,
358     "src/third_party/openmax_dl": None,
359     "src/third_party/ots": None,
360     "src/third_party/pymox/src": None,
361     "src/third_party/safe_browsing/testing": None,
362     "src/third_party/scons-2.0.1": None,
363     "src/third_party/sfntly/cpp/src": None,
364     "src/third_party/smhasher/src": None,
365     "src/third_party/snappy/src": None,
366     "src/third_party/swig/Lib": None,
367     "src/third_party/undoview": None,
368     "src/third_party/v8-i18n": None,
369     "src/third_party/webdriver/pylib": None,
370     "src/third_party/webpagereplay": None,
371     "src/third_party/webrtc": None,
372     "src/third_party/yasm/source/patched-yasm": None,
373     "src/tools/page_cycler/acid3": None,
374     "src/v8": None,
375   },
376   "mac": {
377     "src/chrome/tools/test/reference_build/chrome_mac":
378       "/trunk/deps/reference_builds/chrome_mac@221746",
380     "src/third_party/GTM":
381       (Var("googlecode_url") % "google-toolbox-for-mac") + "/trunk@" +
382       Var("gtm_revision"),
383     "src/third_party/pdfsqueeze":
384       (Var("googlecode_url") % "pdfsqueeze") + "/trunk@5",
385     "src/third_party/lighttpd":
386       "/trunk/deps/third_party/lighttpd@" + Var("lighttpd_revision"),
388     "src/third_party/swig/mac":
389       "/trunk/deps/third_party/swig/mac@" + Var("swig_revision"),
391     # NSS, for SSLClientSocketNSS.
392     "src/third_party/nss":
393       "/trunk/deps/third_party/nss@" + Var("nss_revision"),
395     "src/chrome/installer/mac/third_party/xz/xz":
396       "/trunk/deps/third_party/xz@189101",
397   },
398   "unix": {
399     # Linux, really.
400     "src/chrome/tools/test/reference_build/chrome_linux":
401       "/trunk/deps/reference_builds/chrome_linux@221746",
403     "src/third_party/xdg-utils":
404       "/trunk/deps/third_party/xdg-utils@203785",
406     "src/third_party/swig/linux":
407       "/trunk/deps/third_party/swig/linux@" + Var("swig_revision"),
409     "src/third_party/lss":
410       ((Var("googlecode_url") % "linux-syscall-support") + "/trunk/lss@" +
411        Var("lss_revision")),
413     "src/third_party/openssl":
414       "/trunk/deps/third_party/openssl@" + Var("openssl_revision"),
416     "src/third_party/gold":
417       "/trunk/deps/third_party/gold@203758",
419     "src/third_party/libmtp":
420       "/trunk/deps/third_party/libmtp@206535",
422     # Used on Linux only. CrOS already has a copy.
423     "src/third_party/mtpd/source":
424       Var("chromiumos_git") + "/platform/mtpd.git" +
425       "@5be739c938a0a229ba9479b00b180e1f9c843e81",
427     # Used on Linux only. CrOS already has a copy.
428     "src/third_party/cros_dbus_cplusplus/source":
429       Var("chromiumos_git") + "/third_party/dbus-cplusplus.git" +
430       "@5e8f6d9db5c2abfb91d91f751184f25bb5cd0900",
432     # For Linux and Chromium OS.
433     "src/third_party/cros_system_api":
434       Var("chromiumos_git") + "/platform/system_api.git" +
435       "@aad5ce47ca8ae17ccaa42e31c10c8d9a5c16d202",
437     # Note that this is different from Android's freetype repo.
438     "src/third_party/freetype2/src":
439       Var("chromium_git") + "/chromium/src/third_party/freetype2.git" +
440       "@d699c2994ecc178c4ed05ac2086061b2034c2178",
442     # Build tools for targeting ChromeOS.
443     "src/third_party/chromite":
444       Var("chromiumos_git") + "/chromite.git" +
445       "@cbdd21c5ea76aa93ba4619a6d253697765f4de1f",
447     # Dependency of chromite.git.
448     "src/third_party/pyelftools":
449       Var("chromiumos_git") + "/third_party/pyelftools.git" +
450       "@bdc1d380acd88d4bfaf47265008091483b0d614e",
452     "src/third_party/undoview":
453       "/trunk/deps/third_party/undoview@119694",
454   },
455   "android": {
456     "src/third_party/android_tools":
457       Var("chromium_git") + "/android_tools.git" +
458       "@e504b737693e96816b40e6ae80d177352c079c18",
460     "src/third_party/aosp":
461       "/trunk/deps/third_party/aosp@148330",
463     "src/third_party/apache-mime4j":
464       "/trunk/deps/third_party/apache-mime4j@170888",
466     "src/third_party/findbugs":
467       "/trunk/deps/third_party/findbugs@163586",
469     "src/third_party/freetype":
470       Var("chromium_git") + "/chromium/src/third_party/freetype.git" +
471       "@e3b631da8034f7c6ecc6d809cd9e46d306215c32",
473     "src/third_party/guava/src":
474       Var("chromium_git") + "/external/guava-libraries.git" +
475       "@c523556ab7d0f05afadebd20e7768d4c16af8771",
477     "src/third_party/httpcomponents-client":
478       "/trunk/deps/third_party/httpcomponents-client@170888",
480     "src/third_party/httpcomponents-core":
481       "/trunk/deps/third_party/httpcomponents-core@170888",
483     "src/third_party/jarjar":
484       "/trunk/deps/third_party/jarjar@170888",
486     "src/third_party/jsr-305/src":
487       (Var("googlecode_url") % "jsr-305") + "/trunk@51",
489     "src/third_party/lss":
490       ((Var("googlecode_url") % "linux-syscall-support") + "/trunk/lss@" +
491        Var("lss_revision")),
493     "src/third_party/openssl":
494       "/trunk/deps/third_party/openssl@" + Var("openssl_revision"),
496     "src/third_party/eyesfree/src/android/java/src/com/googlecode/eyesfree/braille":
497       (Var("googlecode_url") % "eyes-free") + "/trunk/braille/client/src/com/googlecode/eyesfree/braille@797",
498   },
502 include_rules = [
503   # Everybody can use some things.
504   "+base",
505   "+build",
506   "+ipc",
508   # Everybody can use headers generated by tools/generate_library_loader.
509   "+library_loaders",
511   "+testing",
512   "+third_party/icu/source/common/unicode",
513   "+third_party/icu/source/i18n/unicode",
514   "+url",
518 # checkdeps.py shouldn't check include paths for files in these dirs:
519 skip_child_includes = [
520   "breakpad",
521   "chrome_frame",
522   "delegate_execute",
523   "metro_driver",
524   "native_client_sdk",
525   "o3d",
526   "pdf",
527   "sdch",
528   "skia",
529   "testing",
530   "third_party",
531   "v8",
532   "win8",
536 hooks = [
537   {
538     # This downloads binaries for Native Client's newlib toolchain.
539     # Done in lieu of building the toolchain from scratch as it can take
540     # anywhere from 30 minutes to 4 hours depending on platform to build.
541     "name": "nacltools",
542     "pattern": ".",
543     "action": [
544         "python", "src/build/download_nacl_toolchains.py",
545          "--no-arm-trusted",
546          "--keep",
547     ],
548   },
549   {
550     # Downloads an ARM sysroot image to src/arm-sysroot. This image updates
551     # at about the same rate that the chrome build deps change.
552     # This script is a no-op except for linux users who have
553     # target_arch=arm in their GYP_DEFINES.
554     "name": "sysroot",
555     "pattern": ".",
556     "action": ["python", "src/build/linux/install-arm-sysroot.py",
557                "--linux-only"],
558   },
559   {
560     # Downloads the Debian Wheezy sysroot to chrome/installer/linux if needed.
561     # This sysroot updates at about the same rate that the chrome build deps
562     # change. This script is a no-op except for linux users who are doing
563     # official chrome builds.
564     "name": "sysroot",
565     "pattern": ".",
566     "action": [
567         "python",
568         "src/chrome/installer/linux/sysroot_scripts/install-debian.wheezy.sysroot.py",
569         "--linux-only",
570         "--arch=amd64"],
571   },
572   {
573     # Same as above, but for 32-bit Linux.
574     "name": "sysroot",
575     "pattern": ".",
576     "action": [
577         "python",
578         "src/chrome/installer/linux/sysroot_scripts/install-debian.wheezy.sysroot.py",
579         "--linux-only",
580         "--arch=i386"],
581   },
582   {
583     # Pull clang on mac. If nothing changed, or on non-mac platforms, this takes
584     # zero seconds to run. If something changed, it downloads a prebuilt clang,
585     # which takes ~20s, but clang speeds up builds by more than 20s.
586     "name": "clang",
587     "pattern": ".",
588     "action": ["python", "src/tools/clang/scripts/update.py", "--mac-only"],
589   },
590   {
591     # Update the cygwin mount on Windows.
592     "name": "cygwin",
593     "pattern": ".",
594     "action": ["python", "src/build/win/setup_cygwin_mount.py", "--win-only"],
595   },
596   {
597     # Update LASTCHANGE. This is also run by export_tarball.py in
598     # src/tools/export_tarball - please keep them in sync.
599     "name": "lastchange",
600     "pattern": ".",
601     "action": ["python", "src/build/util/lastchange.py",
602                "-o", "src/build/util/LASTCHANGE"],
603   },
604   {
605     # Update LASTCHANGE.blink. This is also run by export_tarball.py in
606     # src/tools/export_tarball - please keep them in sync.
607     "name": "lastchange",
608     "pattern": ".",
609     "action": ["python", "src/build/util/lastchange.py",
610                "-s", "src/third_party/WebKit",
611                "-o", "src/build/util/LASTCHANGE.blink"],
612   },
613   {
614     # A change to a .gyp, .gypi, or to GYP itself should run the generator.
615     "name": "gyp",
616     "pattern": ".",
617     "action": ["python", "src/build/gyp_chromium"],
618   },
619   {
620     # Check for landmines (reasons to clobber the build).
621     "name": "landmines",
622     "pattern": ".",
623     "action": ["python", "src/build/landmines.py"],
624   },