commit | f63a8b6a2def1fbdbaf0bb6d88ce4487630c8ab2 | [log] [tgz] |
---|---|---|
author | Greg Edelston <gredelston@google.com> | Mon Jun 05 15:23:47 2023 |
committer | LUCI CQ <infra-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon Jun 05 15:23:47 2023 |
tree | 26cca6226f91e4d6d5be623529d657e641bb1c22 | |
parent | e698b49d3e82e1c0bb9bf0a1265d83f34c51d318 [diff] |
config_types: Enable separating pieces See bug for why this is a problem. Unfortunately, it is shockingly hard to solve the problem robustly, since config_types.Path doesn't know what platform it is running on, and thus doesn't know what the separator is. To unblock development, this CL does the following: * Added config_types.Path.separate(separator: str), which separates any path pieces by separators. Added tests to config_types_test.py. * Added api.path.eq() and api.path.is_parent_of(), which compare separated copies of the input paths, thus allowing users to work around the issue. Added tests to path/examples/full.py. Since I was in the neighborhood, I did some opportunistic cleanup: * Added lots of type hints and docstrings. * Replaced some double-quotes with single-quotes. * Removed some py2 compatibility, like iteritems and class ...(object):. * Changed class/function imports into module imports, per go/pystyle. * Renamed a class and method in config_types_test.py. * Made some function kwargs actually read from named kwargs. BUG=chromium:1450037 TEST=unittests/config_types_test.py TEST=./recipes.py test run Change-Id: I7cf8970131cae4750e78109bd41256e653acc1f4 Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/recipes-py/+/4577648 Reviewed-by: Yiwei Zhang <yiwzhang@google.com> Auto-Submit: Greg Edelston <gredelston@google.com> Commit-Queue: Greg Edelston <gredelston@google.com>
Recipes are a domain-specific language (embedded in Python) for specifying sequences of subprocess calls in a cross-platform and testable way.
They allow writing build flows which integrate with the rest of LUCI.
Documentation for the recipe engine (including this file!). Take a look at the user guide for some hints on how to get started. See the implementation details doc for more detailed implementation information about the recipe engine.
user.email
and user.name
are configured in git config
.Run the following to setup the code review tool and create your first review:
# Get `depot_tools` in $PATH if you don't have it git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $HOME/src/depot_tools export PATH="$PATH:$HOME/src/depot_tools" # Check out the recipe engine repo git clone https://chromium.googlesource.com/infra/luci/recipes-py $HOME/src/recipes-py # make your change cd $HOME/src/recipes-py git new-branch cool_feature # hack hack git commit -a -m "This is awesome" # This will ask for your Google Account credentials. git cl upload -s -r joe@example.com # Wait for approval over email. # Click "Submit to CQ" button or ask reviewer to do it for you. # Wait for the change to be tested and landed automatically.
Use git cl help
and git cl help <cmd>
for more details.