[starlark] Add PreExec/PostExec hooks, improve doc.

They'll be used to "open" and "close" scopes for lucicfg.var() variables.

Each 'exec'-ed module will get its own variables scope: all changes made to
variables inside a scope are "forgotten" when exiting the scope.

This will be used to define multiple configs of the same kind inside a single
lucicfg workspace, for example configs for multiple different Swarming servers.
They will execute in their own variables scope, not interfering with each
other.

R=tandrii@chromium.org
BUG=833946

Change-Id: Icd4076b28df3569bb7b4322725eab95de2df6a9d
Reviewed-on: https://chromium-review.googlesource.com/c/1450841
Commit-Queue: Vadim Shtayura <vadimsh@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
3 files changed
tree: 7788779d52156e2c9fac766151616be51ac2f3c2
  1. appengine/
  2. auth/
  3. buildbucket/
  4. cipd/
  5. client/
  6. common/
  7. config/
  8. cq/
  9. dm/
  10. examples/
  11. gce/
  12. grpc/
  13. hardcoded/
  14. infra/
  15. logdog/
  16. luci_notify/
  17. lucicfg/
  18. lucictx/
  19. machine-db/
  20. milo/
  21. mmutex/
  22. mp/
  23. scheduler/
  24. scripts/
  25. server/
  26. starlark/
  27. swarming/
  28. tokenserver/
  29. tools/
  30. tumble/
  31. vpython/
  32. web/
  33. .gitattributes
  34. .travis.yml
  35. AUTHORS
  36. codereview.settings
  37. CONTRIBUTING.md
  38. CONTRIBUTORS
  39. LICENSE
  40. OWNERS
  41. pre-commit-go.yml
  42. PRESUBMIT.py
  43. README.md
README.md

luci-go: LUCI services and tools in Go

GoDoc

Installing

LUCI Go code is meant to be worked on from an Chromium infra.git checkout, which enforces packages versions and Go toolchain version. First get fetch via depot_tools.git then run:

fetch infra
cd infra/go
eval `./env.py`
cd src/go.chromium.org/luci

Contributing

Contributing uses the same flow as Chromium contributions.