commit | 30925bd08c1f78e835f04a2a3d409cf027cde55e | [log] [tgz] |
---|---|---|
author | iannucci <iannucci@chromium.org> | Thu Apr 20 21:57:44 2017 |
committer | Commit bot <commit-bot@chromium.org> | Thu Apr 20 21:57:44 2017 |
tree | c55127a0e8c9e9958db2486a15408b0f43bb1441 | |
parent | de548b9dbccba9e27b9bdb1d5bb619fb786e87a9 [diff] |
[autoroller] All commits in updates(), only roll interesting ones. Previously `updates` would only include the 'interesting' updates, which meant that the new autoroller algorithm skips over chunks of the repo history. If multiple repos have chunks of non-interesting history, the autoroller can end up not proposing any good candidates. This CL simplifies the repo interface by having `updates()` always return the full list of commits, but adds a new field to the CommitMetadata which indicates that a given commit was `interesting`. This way the full history of every repo is available when picking candidates (e.g. for `CommitList.advance_to`), but find_best_rev will only consider rolling to interesting commits. R=dnj@chromium.org, phajdan.jr@chromium.org BUG= Review-Url: https://codereview.chromium.org/2833723003
Recipes are a domain-specific language (embedded in python) for specifying sequences of subprocess calls in a cross-platform and testable way.
README.md
This file!
bootstrap/
Bootstrapping and vendoring related code.
doc/
Documentation for the recipe engine (including this file!). Also includes doc/recipes.py
, which is a file you can include in your repository to start using recipes. See the design doc for more detailed design information about the recipe engine.
infra/
Chrome infra config files.
recipes.py
The main entry point to the recipe engine. It has many subcommands and flags; run recipes.py -h
to see them.
recipes/
Recipes in the recipe engine. These are either example recipes, or recipes which are used to test the engine (see run_test.py to see these run)
recipe_modules/
Built in recipe modules. These are very useful when writing recipes; take a look in there, and look at their example.py
files.
recipe_engine/
The core functionality of the recipe engine. Noteworthy files include:
package.proto
-- The protobuf file which defines the format of a recipes.cfg
file.third_party/
-- third_party code which is vendored into the recipe engine.recipe_api.py
-- The api exposed to a recipe module.unittests
-- Unittests for the engine.There are also several files which correspond to a subcommand of recipes.py; depgraph
, run
, and autoroll
are some examples.
unittests/
Somewhat poorly named, these are higher level integration tests.
user.email
and user.name
are configured in git config
.Run the following to setup the code review tool and create your first review:
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $HOME/src/depot_tools export PATH="$PATH:$HOME/src/depot_tools" git checkout -b work origin/master # hack hack git commit -a -m "This is awesome\nR=joe@example.com" # This will ask for your Google Account credentials. git cl upload -s # Wait for LGTM over email. # Check the commit queue box in codereview website. # Wait for the change to be tested and landed automatically.
Use git cl help
and git cl help <cmd>
for more details.