Revert "Reland: Remove a bit of sys.path hackery."

This reverts commit 5754d5d1d5d4167e57136baee3f38a4e8d4dc206.

Reason for revert: autoroller not yet ready for this

Original change's description:
> Reland: Remove a bit of sys.path hackery.
> Previously would reconfigure sys.path during the execution of
> the recipe code in order to make `from recipe_engine import ...` work.
> This changes it so that moves up a level, which will make all
> known executions of (namely, the test runner and
> the two bundled launcher scripts) automatically set PYTHONPATH
> correctly.
> Reland: Spurious quotes in generated .bat file caused invalid
> PYTHONPATH entry... but the reland just moves to make all
> syspath manipulation unnecessary.
> R=fancl, yiwzhang, mohrr
> Bug: 1462728
> Change-Id: If32c880caa5dc2084fb6255f0bfef392cba225c3
> Reviewed-on:
> Commit-Queue: Chenlin Fan <>
> Reviewed-by: Chenlin Fan <>
> Auto-Submit: Robbie Iannucci <>

Bug: 1462728
Change-Id: I513d0c606ff22cba1789a8d3496ee71e92f8a57e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bot-Commit: Rubber Stamper <>
Commit-Queue: Rubber Stamper <>
Auto-Submit: Robbie Iannucci <>
5 files changed
tree: 3ebde71663f820e123042b7542407a6ad5593b81
  1. doc/
  2. infra/
  3. misc/
  4. recipe_engine/
  5. recipe_modules/
  6. recipe_proto/
  7. recipes/
  8. unittests/
  9. .editorconfig
  10. .gitattributes
  11. .gitignore
  12. .pycharm.vpython3
  13. .style.yapf
  14. .vpython3
  15. .vscode.vpython3
  17. codereview.settings
  20. OWNERS
  22. pyproject.toml
  25. recipe.warnings


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.


  • Sign the Google CLA.
  • Make sure your and 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 $HOME/src/depot_tools
export PATH="$PATH:$HOME/src/depot_tools"

# Check out the recipe engine repo
git clone $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
# 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.