Revert "[step] Improve cost model to cover memory, disk and network resources, too."

This reverts commit 88c098c1d36351d6b551c604122ddb27236b2038.

Reason for revert: Produces too much noise in expectations for no-cmd and parent nest steps.

Original change's description:
> [step] Improve cost model to cover memory, disk and network resources, too.
> 
> I realized that since we're not actually acquiring the resources
> individually, the 'resource vector' can actually cover as many aspects of
> the machine as we like, and we won't deadlock (since in the worst case
> steps will be serialized as they each wait for enough resources to become
> available).
> 
> I plan to use this to model the `git gc --aggressive` action in terms of
> memory+cpu+disk usage, based on the size of the repo after it's been
> fetched.
> 
> I punted on modeling disk and network cost in terms of concrete units;
> This would require a pretty messy and inaccurate collection of syscalls,
> not to mention accounting for multiple disks, different network hosts or
> varying network conditions. Modeling them as percentages should be good
> enough, I think, for most use cases (e.g. "not much", "a little", "a lot",
> "all of it").
> 
> I have the default of (1/2 core + 50MB) for steps, as I thought that
> would be a reasonable starting point and should help throttle completely
> crazy numbers of parallel steps from overwhelming the machine (by default).
> Users who want craziness can always pass 'cost=None'.
> 
> R=​tandrii@chromium.org
> 
> Recipe-Nontrivial-Roll: build
> Recipe-Nontrivial-Roll: build_limited_scripts_slave
> Recipe-Nontrivial-Roll: chromiumos
> Recipe-Nontrivial-Roll: depot_tools
> Recipe-Nontrivial-Roll: fuchsia
> Recipe-Nontrivial-Roll: infra
> Recipe-Nontrivial-Roll: release_scripts
> Change-Id: Ied8fc0ef0046afc6ab378c4bcf64bbd70a09f6c1
> Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/recipes-py/+/1831236
> Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
> Auto-Submit: Robbie Iannucci <iannucci@chromium.org>
> Reviewed-by: Andrii Shyshkalov <tandrii@google.com>

TBR=iannucci@chromium.org,tandrii@google.com

Change-Id: I5993f1cb9eb0e4dbb85fbc655ccddf785f344263
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/recipes-py/+/1831987
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
86 files changed
tree: 017bf01a68f128b44f29056f81f439781a5ae28e
  1. doc/
  2. infra/
  3. misc/
  4. recipe_engine/
  5. recipe_modules/
  6. recipe_proto/
  7. recipes/
  8. unittests/
  9. .gitattributes
  10. .gitignore
  11. .style.yapf
  12. .vpython
  13. AUTHORS
  14. codereview.settings
  15. CONTRIBUTORS
  16. LICENSE
  17. OWNERS
  18. PRESUBMIT.py
  19. README.md
  20. README.recipes.md
  21. recipes.py
README.md

Recipes

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.

Contributing

  • Sign the Google CLA.
  • Make sure your 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.