Skip to content

Commit 3b15b14

Browse files
authored
Add Format and Lint to Makefile (feast-dev#545)
* Add Make commands for format, lint, flake8, spotless, isort, black, and refactor * Add mypy test * Add lint tests to CI * Fix broken Python test * Fix broken test for Python * Add black to dependencies * Remove Python Protos * Add automatic local linting * Update precommit names * Add black exclusions * Add tensorflow metadata proto generation * Ignore tf meta directory * Add build essentials to install make in CI * Add exports back to __init__.py * Add __all__ to export * Add white space to export * Add source to export * Fix python export formatting
1 parent fb893de commit 3b15b14

79 files changed

Lines changed: 4685 additions & 6611 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,3 +179,8 @@ dmypy.json
179179
.flattened-pom.xml
180180

181181
sdk/python/docs/html
182+
sdk/python/feast/core/
183+
sdk/python/feast/serving/
184+
sdk/python/feast/storage/
185+
sdk/python/feast/types/
186+
sdk/python/tensorflow_metadata

.pre-commit-config.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
repos:
2+
- repo: local
3+
hooks:
4+
- id: format
5+
name: Format
6+
stages: [commit]
7+
language: system
8+
entry: make format
9+
- id: lint
10+
name: Lint
11+
stages: [commit]
12+
language: system
13+
entry: make lint

.prow/scripts/test-core-ingestion.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
#!/usr/bin/env bash
22

3+
apt-get -qq update
4+
apt-get -y install build-essential
5+
6+
make lint-java
7+
38
.prow/scripts/download-maven-cache.sh \
49
--archive-uri gs://feast-templocation-kf-feast/.m2.2019-10-24.tar \
510
--output-dir /root/

.prow/scripts/test-end-to-end-batch.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ This script will run end-to-end tests for Feast Core and Batch Serving.
2222
"
2323

2424
apt-get -qq update
25-
apt-get -y install wget netcat kafkacat
25+
apt-get -y install wget netcat kafkacat build-essential
2626

2727

2828
echo "
@@ -233,6 +233,7 @@ bash /tmp/miniconda.sh -b -p /root/miniconda -f
233233
source ~/.bashrc
234234

235235
# Install Feast Python SDK and test requirements
236+
make compile-protos-python
236237
pip install -qe sdk/python
237238
pip install -qr tests/e2e/requirements.txt
238239

.prow/scripts/test-end-to-end.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ This script will run end-to-end tests for Feast Core and Online Serving.
2121
"
2222

2323
apt-get -qq update
24-
apt-get -y install wget netcat kafkacat
24+
apt-get -y install wget netcat kafkacat build-essential
2525

2626
echo "
2727
============================================================
@@ -207,6 +207,7 @@ bash /tmp/miniconda.sh -b -p /root/miniconda -f
207207
source ~/.bashrc
208208

209209
# Install Feast Python SDK and test requirements
210+
make compile-protos-python
210211
pip install -qe sdk/python
211212
pip install -qr tests/e2e/requirements.txt
212213

.prow/scripts/test-golang-sdk.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
set -o pipefail
44

5+
make lint-go
6+
57
cd sdk/go
68
go test -v 2>&1 | tee /tmp/test_output
79
TEST_EXIT_CODE=$?

.prow/scripts/test-python-sdk.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ set -e
55
# Default artifact location setting in Prow jobs
66
LOGS_ARTIFACT_PATH=/logs/artifacts
77

8-
cd sdk/python
9-
pip install -r requirements-ci.txt
8+
pip install -r sdk/python/requirements-ci.txt
9+
make compile-protos-python
10+
make lint-python
11+
12+
cd sdk/python/
1013
pip install -e .
1114
pytest --junitxml=${LOGS_ARTIFACT_PATH}/python-sdk-test-report.xml

Makefile

Lines changed: 92 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,73 @@
1414
# limitations under the License.
1515
#
1616

17-
PROJECT_ROOT := $(shell git rev-parse --show-toplevel)
17+
ROOT_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
18+
PROTO_TYPE_SUBDIRS = core serving types storage
19+
PROTO_SERVICE_SUBDIRS = core serving
1820

19-
test:
20-
mvn test
21+
# General
22+
23+
format: format-python lint-go lint-java
24+
25+
lint: lint-python lint-go lint-java
26+
27+
test: test-python test-java
28+
29+
protos: compile-protos-go compile-protos-python compile-protos-docs
30+
31+
build: protos build-java build-docker build-html
2132

22-
test-integration:
23-
$(MAKE) -C testing/integration test-integration TYPE=$(TYPE) ID=$(ID)
33+
# Java
2434

25-
build-proto:
26-
$(MAKE) -C protos gen-go
27-
$(MAKE) -C protos gen-python
28-
$(MAKE) -C protos gen-docs
35+
format-java:
36+
mvn spotless:apply
2937

30-
build-cli:
31-
$(MAKE) build-proto
32-
$(MAKE) -C cli build-all
38+
lint-java:
39+
mvn spotless:check
40+
41+
test-java:
42+
mvn test
3343

3444
build-java:
3545
mvn clean verify
3646

47+
# Python SDK
48+
49+
install-python-ci-dependencies:
50+
pip install -r sdk/python/requirements-ci.txt
51+
52+
compile-protos-python: install-python-ci-dependencies
53+
@$(foreach dir,$(PROTO_TYPE_SUBDIRS),cd ${ROOT_DIR}/protos; python -m grpc_tools.protoc -I. --python_out=../sdk/python/ --mypy_out=../sdk/python/ feast/$(dir)/*.proto;)
54+
@$(foreach dir,$(PROTO_SERVICE_SUBDIRS),cd ${ROOT_DIR}/protos; python -m grpc_tools.protoc -I. --grpc_python_out=../sdk/python/ feast/$(dir)/*.proto;)
55+
cd ${ROOT_DIR}/protos; python -m grpc_tools.protoc -I. --python_out=../sdk/python/ --mypy_out=../sdk/python/ tensorflow_metadata/proto/v0/*.proto
56+
57+
test-python:
58+
pytest --verbose --color=yes sdk/python/tests
59+
60+
format-python:
61+
cd ${ROOT_DIR}/sdk/python; isort -rc feast tests
62+
cd ${ROOT_DIR}/sdk/python; black --target-version py37 feast tests
63+
64+
lint-python:
65+
# TODO: This mypy test needs to be re-enabled and all failures fixed
66+
#cd ${ROOT_DIR}/sdk/python; mypy feast/ tests/
67+
cd ${ROOT_DIR}/sdk/python; flake8 feast/ tests/
68+
cd ${ROOT_DIR}/sdk/python; black --check feast tests
69+
cd ${ROOT_DIR}/sdk/python; isort -rc feast tests --check-only
70+
71+
# Go SDK
72+
73+
compile-protos-go:
74+
@$(foreach dir,$(PROTO_TYPE_SUBDIRS), cd ${ROOT_DIR}/protos; protoc -I/usr/local/include -I. --go_out=plugins=grpc,paths=source_relative:../sdk/go/protos/ feast/$(dir)/*.proto;)
75+
76+
format-go:
77+
cd ${ROOT_DIR}/sdk/go; gofmt -s -w *.go
78+
79+
lint-go:
80+
cd ${ROOT_DIR}/sdk/go; go vet; golint *.go
81+
82+
# Docker
83+
3784
build-docker:
3885
docker build -t $(REGISTRY)/feast-core:$(VERSION) -f infra/docker/core/Dockerfile .
3986
docker build -t $(REGISTRY)/feast-serving:$(VERSION) -f infra/docker/serving/Dockerfile .
@@ -43,13 +90,37 @@ build-push-docker:
4390
docker push $(REGISTRY)/feast-core:$(VERSION)
4491
docker push $(REGISTRY)/feast-serving:$(VERSION)
4592

93+
# Documentation
94+
95+
install-dependencies-proto-docs:
96+
# Use the following command to compile dependencies if installing using the below method.
97+
# cd ${ROOT_DIR}/protos; PATH=$$HOME/bin:$$PATH protoc -I $$HOME/include/ \
98+
# -I . --docs_out=../dist/grpc feast/*/*.proto
99+
cd ${ROOT_DIR}/protos;
100+
mkdir -p $$HOME/bin
101+
mkdir -p $$HOME/include
102+
go get github.com/golang/protobuf/proto && \
103+
go get github.com/russross/blackfriday/v2 && \
104+
cd $$(mktemp -d) && \
105+
git clone https://github.com/istio/tools/ && \
106+
cd tools/cmd/protoc-gen-docs && \
107+
go build && \
108+
cp protoc-gen-docs $$HOME/bin && \
109+
cd $$HOME && curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.11.2/protoc-3.11.2-linux-x86_64.zip && \
110+
unzip protoc-3.11.2-linux-x86_64.zip -d protoc3 && \
111+
mv protoc3/bin/* $$HOME/bin/ && \
112+
chmod +x $$HOME/bin/protoc && \
113+
mv protoc3/include/* $$HOME/include
114+
115+
compile-protos-docs:
116+
cd ${ROOT_DIR}/protos; protoc --docs_out=../dist/grpc feast/*/*.proto
117+
46118
clean-html:
47-
rm -rf $(PROJECT_ROOT)/dist
48-
49-
build-html:
50-
rm -rf $(PROJECT_ROOT)/dist/
51-
mkdir -p $(PROJECT_ROOT)/dist/python
52-
mkdir -p $(PROJECT_ROOT)/dist/grpc
53-
cd $(PROJECT_ROOT)/protos && $(MAKE) gen-docs
54-
cd $(PROJECT_ROOT)/sdk/python/docs && $(MAKE) html
55-
cp -r $(PROJECT_ROOT)/sdk/python/docs/html/* $(PROJECT_ROOT)/dist/python
119+
rm -rf $(ROOT_DIR)/dist
120+
121+
build-html: clean-html
122+
mkdir -p $(ROOT_DIR)/dist/python
123+
mkdir -p $(ROOT_DIR)/dist/grpc
124+
cd $(ROOT_DIR)/protos && $(MAKE) gen-docs
125+
cd $(ROOT_DIR)/sdk/python/docs && $(MAKE) html
126+
cp -r $(ROOT_DIR)/sdk/python/docs/html/* $(ROOT_DIR)/dist/python

go.mod

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ require (
66
github.com/Masterminds/sprig v2.22.0+incompatible // indirect
77
github.com/ghodss/yaml v1.0.0
88
github.com/gogo/protobuf v1.3.1 // indirect
9+
github.com/gojek/feast/sdk/go v0.0.0-20200316014539-fb893ded90cd // indirect
910
github.com/golang/mock v1.2.0
10-
github.com/golang/protobuf v1.3.2
11-
github.com/google/go-cmp v0.3.0
11+
github.com/golang/protobuf v1.3.5
12+
github.com/google/go-cmp v0.3.1
1213
github.com/huandu/xstrings v1.2.0 // indirect
1314
github.com/lyft/protoc-gen-validate v0.1.0 // indirect
1415
github.com/mitchellh/copystructure v1.0.0 // indirect
@@ -20,7 +21,7 @@ require (
2021
github.com/spf13/viper v1.4.0
2122
github.com/woop/protoc-gen-doc v1.3.0 // indirect
2223
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553
23-
google.golang.org/grpc v1.23.0
24+
google.golang.org/grpc v1.24.0
2425
gopkg.in/russross/blackfriday.v2 v2.0.0 // indirect
2526
gopkg.in/yaml.v2 v2.2.4
2627
istio.io/gogo-genproto v0.0.0-20191212213402-78a529a42cd8 // indirect

go.sum

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,14 @@ github.com/gogo/protobuf v1.3.0 h1:G8O7TerXerS4F6sx9OV7/nRfJdnXgHZu/S/7F2SN+UE=
116116
github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
117117
github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=
118118
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
119+
github.com/gojek/feast/sdk/go v0.0.0-20200316014539-fb893ded90cd h1:CRugphGHc1UqUhN/kamltFrFCFvHIma43XH4t+HMpVI=
120+
github.com/gojek/feast/sdk/go v0.0.0-20200316014539-fb893ded90cd/go.mod h1:68sgjQ6qtzacAt+Yjj8JX0kNM47Nn/PHNiotZwLTtN8=
119121
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
120122
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
121123
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
122124
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
125+
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 h1:ZgQEtGgCBiWRM39fZuwSd1LwSqqSW0hOdXCYYDX0R3I=
126+
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
123127
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
124128
github.com/golang/mock v1.2.0 h1:28o5sBqPkBsMGnC6b4MvE2TzSr5/AT4c/1fLqVGIwlk=
125129
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
@@ -129,12 +133,17 @@ github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg
129133
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
130134
github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
131135
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
136+
github.com/golang/protobuf v1.3.5 h1:F768QJ1E9tib+q5Sc8MkdJi1RxLTbRcTf8LJV56aRls=
137+
github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
132138
github.com/google/btree v0.0.0-20160524151835-7d79101e329e/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
133139
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
134140
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
135141
github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ=
136142
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
143+
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
137144
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
145+
github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg=
146+
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
138147
github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=
139148
github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=
140149
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
@@ -161,6 +170,7 @@ github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t
161170
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
162171
github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
163172
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
173+
github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU=
164174
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
165175
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
166176
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
@@ -223,6 +233,8 @@ github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W
223233
github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
224234
github.com/onsi/gomega v0.0.0-20190113212917-5533ce8a0da3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
225235
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
236+
github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU=
237+
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
226238
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
227239
github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc=
228240
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
@@ -287,6 +299,7 @@ github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf
287299
github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
288300
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
289301
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
302+
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
290303
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
291304
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
292305
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
@@ -297,7 +310,10 @@ github.com/xiang90/probing v0.0.0-20160813154853-07dd2e8dfe18/go.mod h1:UETIi67q
297310
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
298311
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
299312
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
313+
go.opencensus.io v0.21.0 h1:mU6zScU4U1YAFPHEHYk+3JC4SY7JxgkqS10ZOSyksNg=
300314
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
315+
go.opencensus.io v0.22.1 h1:8dP3SGL7MPB94crU3bEPplMPe83FI4EouesJUeFHv50=
316+
go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA=
301317
go.uber.org/atomic v0.0.0-20181018215023-8dc6146f7569/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
302318
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
303319
go.uber.org/multierr v0.0.0-20180122172545-ddea229ff1df/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
@@ -336,6 +352,7 @@ golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn
336352
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
337353
golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
338354
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
355+
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
339356
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
340357
golang.org/x/net v0.0.0-20191004110552-13f9640d40b9 h1:rjwSpXsdiK0dV8/Naq3kAw9ymfAeJIyd0upUIElB+lI=
341358
golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -362,14 +379,17 @@ golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5h
362379
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
363380
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
364381
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
382+
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
365383
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
366384
golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
385+
golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe h1:6fAMxZRR6sl1Uq8U61gxU+kPTs2tR8uOySCbBP7BN/M=
367386
golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
368387
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
369388
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
370389
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
371390
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
372391
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
392+
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
373393
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
374394
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
375395
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -401,13 +421,20 @@ google.golang.org/genproto v0.0.0-20170731182057-09f6ed296fc6/go.mod h1:JiN7NxoA
401421
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8 h1:Nw54tB0rB7hY/N0NQvRW8DG4Yk3Q6T9cu9RcFQDu1tc=
402422
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
403423
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
424+
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7 h1:ZUjXAXmrAyrmmCPHgCA/vChHcpsX27MZ3yBonD/z1KE=
404425
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
426+
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb h1:i1Ppqkc3WQXikh8bXiwHqAN5Rv3/qDCcRk0/Otx73BY=
427+
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
405428
google.golang.org/grpc v1.13.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
406429
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
407430
google.golang.org/grpc v1.19.1 h1:TrBcJ1yqAl1G++wO39nD/qtgpsW9/1+QGrluyMGEYgM=
408431
google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
432+
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
409433
google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
434+
google.golang.org/grpc v1.23.0 h1:AzbTB6ux+okLTzP8Ru1Xs41C303zdcfEht7MQnYJt5A=
410435
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
436+
google.golang.org/grpc v1.24.0 h1:vb/1TCsVn3DcJlQ0Gs1yB1pKI6Do2/QNwxdKqmc/b0s=
437+
google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA=
411438
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
412439
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
413440
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

0 commit comments

Comments
 (0)