| Index: third_party/cq_client/README.md
|
| diff --git a/third_party/cq_client/README.md b/third_party/cq_client/README.md
|
| index f1bb79c2ddea724aa939d2d893334880b67d0495..d3a264f0268c9e5ffb4fdde5f94bb78dc64cf588 100644
|
| --- a/third_party/cq_client/README.md
|
| +++ b/third_party/cq_client/README.md
|
| @@ -1,29 +1,55 @@
|
| +# CQ Client Library.
|
| +
|
| This directory contains CQ client library to be distributed to other repos. If
|
| you need to modify some files in this directory, please make sure that you are
|
| changing the canonical version of the source code and not one of the copies,
|
| which should only be updated as a whole using Glyco (when available, see
|
| [chromium issue 489420](http://crbug.com/489420)).
|
|
|
| -The canonical version is located at `https://chrome-internal.googlesource.com/
|
| -infra/infra_internal/+/master/commit_queue/cq_client`.
|
| +The canonical version is located at
|
| +[https://chrome-internal.googlesource.com/infra/infra_internal/+/master/commit_queue/cq_client]().
|
| +
|
| +When modifying cq.proto, consider adding checks to validator in
|
| +[https://chrome-internal.googlesource.com/infra/infra_internal/+/master/appengine/commit_queue/src/commitqueue/validate.go]().
|
| +
|
| +
|
| +## Generation of Python and Go bindings
|
| +
|
| +### tl;dr
|
| +
|
| + make
|
| +
|
| +
|
| +### Details
|
| +
|
| +All commands below assume you are working in a standard infra_internal gclient
|
| +checkout (e.g., after you ran `mkdir src && cd src && fetch infra_internal`) and
|
| +are in current directory of this README.md (that is, in
|
| +`cd infra_internal/commit_queue/cq_client`).
|
|
|
| -You'll need to use protoc version 2.6.1 and
|
| -recent golang/protobuf package. Sadly, the latter has neither tags nor versions.
|
| +To generate Python's `cq_pb2.py` you'll need to get and `protoc` of version
|
| +**2.6.1**. You can get it by `make py-prepare`.
|
| +
|
| + make py
|
|
|
| -You can get protobuf by downloading archive from
|
| -https://github.com/google/protobuf/tree/v2.6.1 and manually building it. As for
|
| -golang compiler, if you have go configured, just
|
| +To generate Golang's protobuf file `cq.pb.go`, you'll need to bootstrap
|
| +infra/infra repository and go utilities `make go-prepare`.
|
|
|
| - go get -u github.com/golang/protobuf/{proto,protoc-gen-go}
|
| + make go
|
|
|
| -TODO(tandrii,sergiyb): decide how to pin the go protobuf generator.
|
| +## Notes
|
|
|
| -To generate `cq_pb2.py` and `cq.pb.go`:
|
| +1. Please make sure to use proto3-compatible yntax, e.g. no default
|
| +values, no required fields. As of this writing (Jan 2016),
|
| +the Go protobuf compiler has been upgraded to 3.0.0. So, if you can generate go
|
| +bindings, all is good.
|
|
|
| - cd commit_queue/cq_client
|
| - protoc cq.proto --python_out $(pwd) --go_out $(pwd)
|
| +2. If after generating Python binding, CQ tests fail with:
|
|
|
| -Additionally, please make sure to use proto3-compatible syntax, e.g. no default
|
| -values, no required fields. Ideally, we should use proto3 generator already,
|
| -however alpha version thereof is still unstable.
|
| + TypeError: __init__() got an unexpected keyword argument 'syntax'
|
|
|
| +You've probably used 3.0.0 protoc generator. We should eventually switch to 3x
|
| +Python version as well, but it requires upgrading infra's Python ENV to newer
|
| +package. See [bootstrap/README.md](../../bootstrap/README.md) for more
|
| +information. We may end up deprecating Python before all infra's Python code
|
| +can be moved to protobuf v3.
|
|
|