[lucicfg] Make rule's arguments kwargs only and None by default.

Using positional args leads to some very confusing error messages like:

    core.builder(
        name = 'b',
        bucket = 'ci',
        service_account = 'noop@example.com',
    )

    Traceback (most recent call last):
      ...
    Error: function builder takes at least 3 positional arguments (3 given)

Instead we now get:

    Traceback (most recent call last):
      ...
    Error: missing required field "recipe"

Hopefully https://github.com/google/starlark-go/issues/61 will land someday
and we'll be able to say def f(*, a=None, b=None) to force all arguments to
be passed via keywords.

R=tandrii@chromium.org, nodir@chromium.org
BUG=833946

Change-Id: I96336bd6b849e55db0b0a2fa508786212c5652d6
Reviewed-on: https://chromium-review.googlesource.com/c/1406418
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Vadim Shtayura <vadimsh@chromium.org>
11 files changed
tree: 1a1e69c66c224044e527497884c36ae800026137
  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. tokenserver/
  28. tools/
  29. tumble/
  30. vpython/
  31. web/
  32. .gitattributes
  33. .travis.yml
  34. AUTHORS
  35. codereview.settings
  36. CONTRIBUTING.md
  37. CONTRIBUTORS
  38. LICENSE
  39. OWNERS
  40. pre-commit-go.yml
  41. PRESUBMIT.py
  42. 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.