[random] Remove hacks for python2 compatibility.

Python stabilized the random implementation between architectures
sometime around python3.5ish, and also changed the selection algorithm
for shuffle to be better. The current module code only has the
compatibility stuff to avoid poking all downstream expectations.

This CL rips off the (tiny) band-aid and will cause nontrivial rolls
in most repos, but after this the implementation is exactly stock, and
should remain stable.

(Note that passing Random.seed(..., version=1) is insufficient to
maintain python2 pseudorandom behavior.)

Recipe-Nontrivial-Roll: chrome_release
Recipe-Nontrivial-Roll: chromiumos
Change-Id: I5f62c7331377efee11b15c5c1a5539f40d17f30f
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/recipes-py/+/4973861
Auto-Submit: Robbie Iannucci <iannucci@chromium.org>
Reviewed-by: Ashish Gandhi <ashishgandhi@google.com>
Commit-Queue: Ashish Gandhi <ashishgandhi@google.com>
4 files changed
tree: 2a443c04dc4b513141193698dab1485554e87cfd
  1. doc/
  2. infra/
  3. misc/
  4. recipe_engine/
  5. recipe_modules/
  6. recipe_proto/
  7. recipes/
  8. unittests/
  9. .gitattributes
  10. .gitignore
  11. .pycharm.vpython3
  12. .style.yapf
  13. .vpython3
  14. .vscode.vpython3
  15. AUTHORS
  16. codereview.settings
  17. CONTRIBUTORS
  18. LICENSE
  19. OWNERS
  20. PRESUBMIT.py
  21. pyproject.toml
  22. README.md
  23. README.recipes.md
  24. recipe.warnings
  25. 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.