Roll recipe dependencies (trivial).

This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
build:
  https://crrev.com/35e4fe706e8f4f224e8d0c296786a0564cb23043 Kill gradle and dart after tests on windows (dnfield@google.com)
  https://crrev.com/5e6f578c872658af68f2621c87289530b648eed2 Revert "Roll recipe dependencies (nontrivial)." (tandrii@chromium.org)
  https://crrev.com/8da1e22bd0af11e446d8497962336e551aaeea3a Manual recipe roll (iannucci@chromium.org)
depot_tools:
  https://crrev.com/f2f4cc6382f9d132699de64e656d13e6b798c4fe Revert "Roll recipe dependencies (trivial)." (tandrii@chromium.org)
  https://crrev.com/545f0d025ef1f93aa276c4da765f5450013014dc Manual recipe roll. (iannucci@chromium.org)
recipe_engine:
  https://crrev.com/bcd44328140e7912e96e2fd0ae1c76222ebca167 Revert "[step_runner] Specify close_fds to avoid leaking non-std handles to steps." (tandrii@chromium.org)


TBR=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I6951620bf379a56752a5fddf1801baf8e264fd35
Reviewed-on: https://chromium-review.googlesource.com/c/1460232
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
Cr-Commit-Position: refs/heads/master@{#20539}
2 files changed
tree: 3a32d54e7255f9cf1fe57f6102d90bb3e8179f22
  1. 3pp/
  2. appengine/
  3. appengine_module/
  4. bootstrap/
  5. build/
  6. cipd/
  7. crdx/
  8. data/
  9. doc/
  10. docker/
  11. glyco/
  12. go/
  13. infra/
  14. node/
  15. packages/
  16. recipes/
  17. test/
  18. utils/
  19. .gitattributes
  20. .gitignore
  21. codereview.settings
  22. CONTRIBUTING.md
  23. DEPS
  24. LICENSE
  25. navbar.md
  26. OWNERS
  27. PRESUBMIT.py
  28. README.md
  29. run.py
  30. test.py
  31. WATCHLISTS
  32. 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.
  • infra/path_hacks: submodules of this modules give access to modules in the build/ repository. from infra.path_hacks.common import <stg> is actually getting <stg> from build/scripts/common.
  • 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, integrate 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. More 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.