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 main.py 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 main.py moves up a level, which will make all
> known executions of main.py (namely recipes.py, 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 main.py to make all
> syspath manipulation unnecessary.
>
> R=fancl, yiwzhang, mohrr
>
> Bug: 1462728
> Change-Id: If32c880caa5dc2084fb6255f0bfef392cba225c3
> Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/recipes-py/+/5535275
> Commit-Queue: Chenlin Fan <fancl@chromium.org>
> Reviewed-by: Chenlin Fan <fancl@chromium.org>
> Auto-Submit: Robbie Iannucci <iannucci@chromium.org>

Bug: 1462728
Change-Id: I513d0c606ff22cba1789a8d3496ee71e92f8a57e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/recipes-py/+/5537831
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Robbie Iannucci <iannucci@chromium.org>
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
  16. AUTHORS
  17. codereview.settings
  18. CONTRIBUTORS
  19. LICENSE
  20. OWNERS
  21. PRESUBMIT.py
  22. pyproject.toml
  23. README.md
  24. README.recipes.md
  25. recipe.warnings
  26. 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.