siso: need to reset deps log after failure fix

before:

for fix like https://chromium-review.googlesource.com/c/chromium/src/+/5937378
it compiled *.o again

ukai@ukai ...src/chromium/src % siso ninja -C out/cros obj/chrome/browser/ui/bookmarks/impl/bookmark_context_menu_controller.o
depot_tools/siso.py: Using Siso binary from SISO_PATH: /usr/local/google/home/ukai/go/bin/siso.
ninja: Entering directory `out/cros'
reapi instance: projects/rbe-chrome-untrusted/instances/default_instance
 1.44s load build.ninja
Building last failed targets: [obj/chrome/browser/ui/bookmarks/impl/bookmark_context_menu_controller.o]...
 9.69s Regenerating ninja files
 2.57s reloading

Building last failed targets: [obj/chrome/browser/ui/bookmarks/impl/bookmark_context_menu_controller.o]...
build finished
local:2 remote:0 cache:0 fallback:0 retry:0 skip:15322
reapi: ops: 1(err:0) / r:0(err:0) 0B / w:54(err:0) 9.94MiB
fs: ops: 9729(err:540) / r:3418(err:0) 1.20GiB / w:0(err:0) 0B
 last failed targets fixed: [obj/chrome/browser/ui/bookmarks/impl/bookmark_context_menu_controller.o]
build finished
local:1 remote:0 cache:0 fallback:0 retry:0 skip:15323
reapi: ops: 2(err:0) / r:0(err:0) 0B / w:98(err:1) 19.81MiB
fs: ops: 9746(err:547) / r:6264(err:0) 2.32GiB / w:0(err:0) 0B
30.90s Build Succeeded: 1 steps - 0.03/s

This is because in 2nd build it failed to lookup deps log, which were
recorded in the last fix build.

Need to reset deps log, so that recorded entries are available
in the 2nd build.

after:

ukai@ukai ...src/chromium/src % siso ninja -C out/cros obj/chrome/browser/ui/bookmarks/impl/bookmark_context_menu_controller.o
depot_tools/siso.py: Using Siso binary from SISO_PATH: /usr/local/google/home/ukai/go/bin/siso.
ninja: Entering directory `out/cros'
reapi instance: projects/rbe-chrome-untrusted/instances/default_instance
 1.46s load build.ninja
Building last failed targets: [obj/chrome/browser/ui/bookmarks/impl/bookmark_context_menu_controller.o]...
 9.47s Regenerating ninja files
 2.42s reloading

Building last failed targets: [obj/chrome/browser/ui/bookmarks/impl/bookmark_context_menu_controller.o]...
build finished
local:2 remote:0 cache:0 fallback:0 retry:0 skip:15322
reapi: ops: 1(err:0) / r:0(err:0) 0B / w:19(err:0) 9.80MiB
fs: ops: 12341(err:1846) / r:2720(err:0) 555.50MiB / w:0(err:0) 0B
 last failed targets fixed: [obj/chrome/browser/ui/bookmarks/impl/bookmark_context_menu_controller.o]
ninja: no work to do.
24.83s Build Succeeded: 0 steps - 0.00/s

Bug: b/373716311
Change-Id: I3e78eda728c11b707418dc0617a36b5ff7490994
Reviewed-on: https://chromium-review.googlesource.com/c/infra/infra/+/5938562
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
Auto-Submit: Fumitoshi Ukai <ukai@google.com>
Commit-Queue: Fumitoshi Ukai <ukai@google.com>
Cr-Commit-Position: refs/heads/main@{#69204}
2 files changed
tree: ad1098a1ca40a2464fb80a60476ed70c9adac0df
  1. 3pp/
  2. appengine/
  3. appengine_module/
  4. bootstrap/
  5. build/
  6. chromeperf/
  7. crdx/
  8. doc/
  9. docker/
  10. go/
  11. infra/
  12. node/
  13. packages/
  14. python_pb2/
  15. rbe/
  16. recipes/
  17. test/
  18. utils/
  19. .gitallowed
  20. .gitattributes
  21. .gitignore
  22. .gitmodules
  23. .style.yapf
  24. .vpython
  25. .vpython3
  26. .yapfignore
  27. codereview.settings
  28. CONTRIBUTING.md
  29. DEPS
  30. LICENSE
  31. navbar.md
  32. OWNERS
  33. PRESUBMIT.py
  34. README.md
  35. run.py
  36. test.py
  37. WATCHLISTS
  38. WHITESPACE
README.md

infra.git repository

Welcome to the Chrome Infra repository!

Wondering where to start? Check out General Chrome Infrastructure documentation. In particular, to check out this repo and the rest of the infrastructure code, follow the instructions here. The rest of this page is specific to this repo.

Entry points

  • run.py: wrapper script to run programs contained in subdirectories without having to deal with sys.path modifications.
  • test.py: multi-purpose script to run tests.
  • packages/infra_libs/: generally useful functions and classes
  • infra/services/: standalone programs intended to be run as daemons.
  • infra/tools: command-line tools, intended to be run by developers.
  • appengine/: many Chrome-infra-managed AppEngine applications.
  • infra/experimental: for, well, experimental stuff. Once they are stabilized and reviewed, they should be moved in a more permanent place.

Miscellaneous technical stuff

  • bootstrap/: utilities to set up a proper Python virtual environment.
  • utils/: purpose? utils?
  • Need to bump infra/deployed to pick up changes?
    • git push origin <updated hash>:deployed
    • mail chrome-troopers@, include:
      • previously deployed hash (for quick rollback)
      • the hash you just pushed
      • the list of CLs that made this push necessary
      • the output of the git push command

Integrating tests with test.py

If you've added a new module, run your tests with test.py:

  1. Create a .coveragerc file in the root directory of the module you want to test. Take a look at another .coveragerc to see what to include in that.
  2. Create a “test” directory in the root directory of the module you want to test. Move your *_test.py files to this directory.

Double-check that your tests are getting picked up when you want them to be: ./test.py test <path-to-package>.

Tests still not getting picked up by test.py? Double-check to make sure you have __init__.py files in each directory of your module so Python recognizes it as a package.

Style

The preferred style is PEP8 with two-space indent; that is, the Chromium Python style, except functions use lowercase_with_underscores. Use yapf (git cl format) to autoformat new code.