commit | 39caec8e9b8525d89d118c4bbd19607664f9eaa0 | [log] [tgz] |
---|---|---|
author | Robert Iannucci <iannucci@chromium.org> | Tue Jul 19 21:12:13 2022 |
committer | LUCI CQ <infra-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Jul 19 21:12:13 2022 |
tree | 89a8befbf880e5de865fbf59345d8a391fca28b1 | |
parent | 9c5b1b8419f6b5a1807976e330ca90ef33f1b566 [diff] |
[proto/protowalk] Add proto processing library. This adds a protoreflect-based processing library which efficiently allows processing of protobuf messages with field annotations applied. This comes with processors which can check the `deprecated` proto annotation as well as google.api.field_behavior = REQUIRED. It additionally has a processor which can zero-out any google.api.field_behavior = OUTPUT_ONLY fields. This is meant to be used in conjunction with the protoc-gen-validate generated code, though it would also be possible to implement a processor which was able to apply these constraints via this library instead, in case the generated code proves to be cumbersome. R=chanli, ddoman, vadimsh Bug: 1324799 Change-Id: I91837c9e5468d3e37346645f1e78259f7cf2774d Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/3632598 Commit-Queue: Robbie Iannucci <iannucci@chromium.org> Reviewed-by: Vadim Shtayura <vadimsh@chromium.org> Reviewed-by: Chan Li <chanli@chromium.org> Auto-Submit: Robbie Iannucci <iannucci@chromium.org> Reviewed-by: Scott Lee <ddoman@chromium.org>
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
It is now possible to directly install tools with go install:
go install go.chromium.org/luci/auth/client/cmd/...@latest go install go.chromium.org/luci/buildbucket/cmd/...@latest go install go.chromium.org/luci/cipd/client/cmd/...@latest go install go.chromium.org/luci/client/cmd/...@latest go install go.chromium.org/luci/cv/cmd/...@latest go install go.chromium.org/luci/gce/cmd/...@latest go install go.chromium.org/luci/grpc/cmd/...@latest go install go.chromium.org/luci/logdog/client/cmd/...@latest go install go.chromium.org/luci/luci_notify/cmd/...@latest go install go.chromium.org/luci/lucicfg/cmd/...@latest go install go.chromium.org/luci/luciexe/legacy/cmd/...@latest go install go.chromium.org/luci/mailer/cmd/...@latest go install go.chromium.org/luci/mmutex/cmd/...@latest go install go.chromium.org/luci/resultdb/cmd/...@latest go install go.chromium.org/luci/server/cmd/...@latest go install go.chromium.org/luci/swarming/cmd/...@latest go install go.chromium.org/luci/tokenserver/cmd/...@latest go install go.chromium.org/luci/tools/cmd/...@latest
Contributing uses the same flow as Chromium contributions.