Skip to content

Commit 046e863

Browse files
committed
playground: support third-party imports (off by default for now)
Also, modernize the Dockerfile while I'm at it, using multi-stage builds more aggressively, and stop using gitlock (golang/go#26872) and switch to using Go modules to build the playground. (This also turns the playground into a module.) Updates golang/go#31944 Change-Id: Ic6f6152469f1930fd04180a3d1e63ed92ea2cfbd Reviewed-on: https://go-review.googlesource.com/c/playground/+/176317 Reviewed-by: Yury Smolsky <[email protected]>
1 parent 33ccd9b commit 046e863

File tree

5 files changed

+148
-191
lines changed

5 files changed

+148
-191
lines changed

Dockerfile

Lines changed: 27 additions & 186 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
11
# Copyright 2017 The Go Authors. All rights reserved.
22
# Use of this source code is governed by a BSD-style
33
# license that can be found in the LICENSE file.
4-
FROM debian:stretch as builder
4+
5+
FROM debian:stretch AS nacl
6+
7+
RUN apt-get update && apt-get install -y --no-install-recommends curl bzip2 ca-certificates
8+
9+
RUN curl -s https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/trunk.544461/naclsdk_linux.tar.bz2 | tar -xj -C /tmp --strip-components=2 pepper_67/tools/sel_ldr_x86_64
10+
11+
FROM debian:stretch AS build
512
LABEL maintainer "[email protected]"
613

714
ENV GOPATH /go
815
ENV PATH /usr/local/go/bin:$GOPATH/bin:$PATH
916
ENV GOROOT_BOOTSTRAP /usr/local/gobootstrap
10-
ENV CGO_ENABLED=0
11-
ENV GO_VERSION 1.12
12-
ENV BUILD_DEPS 'curl bzip2 git gcc patch libc6-dev ca-certificates'
17+
ENV GO_VERSION 1.12.5
18+
ENV BUILD_DEPS 'curl git gcc patch libc6-dev ca-certificates'
1319

1420
# Fake time
1521
COPY enable-fake-time.patch /usr/local/playground/
@@ -18,8 +24,6 @@ COPY fake_fs.lst /usr/local/playground/
1824

1925
RUN apt-get update && apt-get install -y ${BUILD_DEPS} --no-install-recommends
2026

21-
RUN curl -s https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/trunk.544461/naclsdk_linux.tar.bz2 | tar -xj -C /tmp --strip-components=2 pepper_67/tools/sel_ldr_x86_64
22-
2327
# Get the Go binary.
2428
RUN curl -sSL https://dl.google.com/go/go$GO_VERSION.linux-amd64.tar.gz -o /tmp/go.tar.gz
2529
RUN curl -sSL https://dl.google.com/go/go$GO_VERSION.linux-amd64.tar.gz.sha256 -o /tmp/go.tar.gz.sha256
@@ -33,194 +37,28 @@ RUN cd /usr/local/go && go run misc/nacl/mkzip.go -p syscall /usr/local/playgrou
3337
# Re-build the Go toolchain.
3438
RUN cd /usr/local/go/src && GOOS=nacl GOARCH=amd64p32 ./make.bash --no-clean
3539

36-
# BEGIN deps (run `make update-deps` to update)
37-
38-
# Repo cloud.google.com/go at e2c125c (2019-02-22)
39-
ENV REV=e2c125ceac8b663cfcf4610477d4d67827377cb7
40-
RUN go get -d cloud.google.com/go/compute/metadata `#and 6 other pkgs` &&\
41-
(cd /go/src/cloud.google.com/go && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
42-
43-
# Repo github.com/bradfitz/gomemcache at bc664df (2018-07-10)
44-
ENV REV=bc664df9673713a0ccf26e3b55a673ec7301088b
45-
RUN go get -d github.com/bradfitz/gomemcache/memcache &&\
46-
(cd /go/src/github.com/bradfitz/gomemcache && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
47-
48-
# Repo github.com/golang/protobuf at c823c79 (2019-02-05)
49-
ENV REV=c823c79ea1570fb5ff454033735a8e68575d1d0f
50-
RUN go get -d github.com/golang/protobuf/proto `#and 8 other pkgs` &&\
51-
(cd /go/src/github.com/golang/protobuf && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
52-
53-
# Repo github.com/googleapis/gax-go at ddfab93 (2019-01-11)
54-
ENV REV=ddfab93c3faef4935403ac75a7c11f0e731dc181
55-
RUN go get -d github.com/googleapis/gax-go/v2 &&\
56-
(cd /go/src/github.com/googleapis/gax-go && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
40+
RUN mkdir /gocache
41+
ENV GOCACHE /gocache
42+
ENV GO111MODULE on
5743

58-
# Repo github.com/hashicorp/golang-lru at 20f1fb7 (2018-08-29)
59-
ENV REV=20f1fb78b0740ba8c3cb143a61e86ba5c8669768
60-
RUN go get -d github.com/hashicorp/golang-lru/simplelru &&\
61-
(cd /go/src/github.com/hashicorp/golang-lru && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
62-
63-
# Repo go.opencensus.io at beafb2a (2019-02-22)
64-
ENV REV=beafb2a85a579a4918ba259877a1625e9213a263
65-
RUN go get -d go.opencensus.io `#and 13 other pkgs` &&\
66-
(cd /go/src/go.opencensus.io && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
67-
68-
# Repo golang.org/x/net at fe579d4 (2019-02-25)
69-
ENV REV=fe579d43d83210096a79b46dcca0e3721058393a
70-
RUN go get -d golang.org/x/net/context `#and 8 other pkgs` &&\
71-
(cd /go/src/golang.org/x/net && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
72-
73-
# Repo golang.org/x/oauth2 at 9b3c759 (2019-02-20)
74-
ENV REV=9b3c75971fc92dd27c6436a37c05c831498658f1
75-
RUN go get -d golang.org/x/oauth2 `#and 5 other pkgs` &&\
76-
(cd /go/src/golang.org/x/oauth2 && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
77-
78-
# Repo golang.org/x/sys at cc5685c (2019-02-25)
79-
ENV REV=cc5685c2db1239775905f3911f0067c0fa74762f
80-
RUN go get -d golang.org/x/sys/unix &&\
81-
(cd /go/src/golang.org/x/sys && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
82-
83-
# Repo golang.org/x/text at d14c52b (2019-02-25)
84-
ENV REV=d14c52b222ee852cdba8b07206ca0c614b389876
85-
RUN go get -d golang.org/x/text/secure/bidirule `#and 4 other pkgs` &&\
86-
(cd /go/src/golang.org/x/text && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
87-
88-
# Repo golang.org/x/tools at 2dc4ef2 (2019-02-25)
89-
ENV REV=2dc4ef2775b8122dd5afe2c18fd6f775e87f89e5
90-
RUN go get -d golang.org/x/tools/go/ast/astutil `#and 12 other pkgs` &&\
91-
(cd /go/src/golang.org/x/tools && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
92-
93-
# Repo google.golang.org/api at 8a550ba (2019-02-24)
94-
ENV REV=8a550ba84cafabe9b2262c41303f31e5a4626318
95-
RUN go get -d google.golang.org/api/googleapi `#and 6 other pkgs` &&\
96-
(cd /go/src/google.golang.org/api && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
97-
98-
# Repo google.golang.org/genproto at 082222b (2019-02-19)
99-
ENV REV=082222b4a5c572e33e82ee9162d1352c7cf38682
100-
RUN go get -d google.golang.org/genproto/googleapis/api/annotations `#and 5 other pkgs` &&\
101-
(cd /go/src/google.golang.org/genproto && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
102-
103-
# Repo google.golang.org/grpc at 40cb561 (2019-02-25)
104-
ENV REV=40cb5618f475e7b9d61aa7920ae4b04ef9bbaf89
105-
RUN go get -d google.golang.org/grpc `#and 32 other pkgs` &&\
106-
(cd /go/src/google.golang.org/grpc && (git cat-file -t $REV 2>/dev/null || git fetch -q origin $REV) && git reset --hard $REV)
107-
108-
# Optimization to speed up iterative development, not necessary for correctness:
109-
RUN go install cloud.google.com/go/compute/metadata \
110-
cloud.google.com/go/datastore \
111-
cloud.google.com/go/internal \
112-
cloud.google.com/go/internal/fields \
113-
cloud.google.com/go/internal/trace \
114-
cloud.google.com/go/internal/version \
115-
github.com/bradfitz/gomemcache/memcache \
116-
github.com/golang/protobuf/proto \
117-
github.com/golang/protobuf/protoc-gen-go/descriptor \
118-
github.com/golang/protobuf/ptypes \
119-
github.com/golang/protobuf/ptypes/any \
120-
github.com/golang/protobuf/ptypes/duration \
121-
github.com/golang/protobuf/ptypes/struct \
122-
github.com/golang/protobuf/ptypes/timestamp \
123-
github.com/golang/protobuf/ptypes/wrappers \
124-
github.com/googleapis/gax-go/v2 \
125-
github.com/hashicorp/golang-lru/simplelru \
126-
go.opencensus.io \
127-
go.opencensus.io/exemplar \
128-
go.opencensus.io/internal \
129-
go.opencensus.io/internal/tagencoding \
130-
go.opencensus.io/plugin/ocgrpc \
131-
go.opencensus.io/stats \
132-
go.opencensus.io/stats/internal \
133-
go.opencensus.io/stats/view \
134-
go.opencensus.io/tag \
135-
go.opencensus.io/trace \
136-
go.opencensus.io/trace/internal \
137-
go.opencensus.io/trace/propagation \
138-
go.opencensus.io/trace/tracestate \
139-
golang.org/x/net/context \
140-
golang.org/x/net/context/ctxhttp \
141-
golang.org/x/net/http/httpguts \
142-
golang.org/x/net/http2 \
143-
golang.org/x/net/http2/hpack \
144-
golang.org/x/net/idna \
145-
golang.org/x/net/internal/timeseries \
146-
golang.org/x/net/trace \
147-
golang.org/x/oauth2 \
148-
golang.org/x/oauth2/google \
149-
golang.org/x/oauth2/internal \
150-
golang.org/x/oauth2/jws \
151-
golang.org/x/oauth2/jwt \
152-
golang.org/x/sys/unix \
153-
golang.org/x/text/secure/bidirule \
154-
golang.org/x/text/transform \
155-
golang.org/x/text/unicode/bidi \
156-
golang.org/x/text/unicode/norm \
157-
golang.org/x/tools/go/ast/astutil \
158-
golang.org/x/tools/go/gcexportdata \
159-
golang.org/x/tools/go/internal/cgo \
160-
golang.org/x/tools/go/internal/gcimporter \
161-
golang.org/x/tools/go/internal/packagesdriver \
162-
golang.org/x/tools/go/packages \
163-
golang.org/x/tools/godoc/static \
164-
golang.org/x/tools/imports \
165-
golang.org/x/tools/internal/fastwalk \
166-
golang.org/x/tools/internal/gopathwalk \
167-
golang.org/x/tools/internal/module \
168-
golang.org/x/tools/internal/semver \
169-
google.golang.org/api/googleapi \
170-
google.golang.org/api/googleapi/internal/uritemplates \
171-
google.golang.org/api/internal \
172-
google.golang.org/api/iterator \
173-
google.golang.org/api/option \
174-
google.golang.org/api/transport/grpc \
175-
google.golang.org/genproto/googleapis/api/annotations \
176-
google.golang.org/genproto/googleapis/datastore/v1 \
177-
google.golang.org/genproto/googleapis/rpc/code \
178-
google.golang.org/genproto/googleapis/rpc/status \
179-
google.golang.org/genproto/googleapis/type/latlng \
180-
google.golang.org/grpc \
181-
google.golang.org/grpc/balancer \
182-
google.golang.org/grpc/balancer/base \
183-
google.golang.org/grpc/balancer/roundrobin \
184-
google.golang.org/grpc/binarylog/grpc_binarylog_v1 \
185-
google.golang.org/grpc/codes \
186-
google.golang.org/grpc/connectivity \
187-
google.golang.org/grpc/credentials \
188-
google.golang.org/grpc/credentials/internal \
189-
google.golang.org/grpc/credentials/oauth \
190-
google.golang.org/grpc/encoding \
191-
google.golang.org/grpc/encoding/proto \
192-
google.golang.org/grpc/grpclog \
193-
google.golang.org/grpc/internal \
194-
google.golang.org/grpc/internal/backoff \
195-
google.golang.org/grpc/internal/binarylog \
196-
google.golang.org/grpc/internal/channelz \
197-
google.golang.org/grpc/internal/envconfig \
198-
google.golang.org/grpc/internal/grpcrand \
199-
google.golang.org/grpc/internal/grpcsync \
200-
google.golang.org/grpc/internal/syscall \
201-
google.golang.org/grpc/internal/transport \
202-
google.golang.org/grpc/keepalive \
203-
google.golang.org/grpc/metadata \
204-
google.golang.org/grpc/naming \
205-
google.golang.org/grpc/peer \
206-
google.golang.org/grpc/resolver \
207-
google.golang.org/grpc/resolver/dns \
208-
google.golang.org/grpc/resolver/passthrough \
209-
google.golang.org/grpc/stats \
210-
google.golang.org/grpc/status \
211-
google.golang.org/grpc/tap
212-
# END deps
44+
# Pre-build some packages to speed final install later.
45+
RUN go install cloud.google.com/go/compute/metadata
46+
RUN go install cloud.google.com/go/datastore
47+
RUN go install github.com/bradfitz/gomemcache/memcache
48+
RUN go install golang.org/x/tools/godoc/static
49+
RUN go install golang.org/x/tools/imports
21350

21451
# Add and compile playground daemon
21552
COPY . /go/src/playground/
216-
RUN go install playground
53+
WORKDIR /go/src/playground
54+
RUN go install
21755

21856
FROM debian:stretch
21957

22058
RUN apt-get update && apt-get install -y git ca-certificates --no-install-recommends
22159

222-
COPY --from=builder /usr/local/go /usr/local/go
223-
COPY --from=builder /tmp/sel_ldr_x86_64 /usr/local/bin
60+
COPY --from=build /usr/local/go /usr/local/go
61+
COPY --from=nacl /tmp/sel_ldr_x86_64 /usr/local/bin
22462

22563
ENV GOPATH /go
22664
ENV PATH /usr/local/go/bin:$GOPATH/bin:$PATH
@@ -247,13 +85,16 @@ RUN mkdir -p $GOPATH/src/code.google.com/p/go-tour && \
24785

24886
RUN mkdir /app
24987

250-
COPY --from=builder /go/bin/playground /app
88+
COPY --from=build /go/bin/playground /app
25189
COPY edit.html /app
25290
COPY static /app/static
25391
WORKDIR /app
25492

25593
# Run tests
25694
RUN /app/playground test
25795

96+
# Whether we allow third-party imports via proxy.golang.org:
97+
ENV ALLOW_PLAY_MODULE_DOWNLOADS false
98+
25899
EXPOSE 8080
259100
ENTRYPOINT ["/app/playground"]

Makefile

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
.PHONY: update-deps docker test
22

3-
update-deps:
4-
go install golang.org/x/build/cmd/gitlock
5-
gitlock --update=Dockerfile golang.org/x/playground
6-
73
docker: Dockerfile
84
docker build -t playground .
95

go.mod

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
module golang.org/x/playground
2+
3+
go 1.12
4+
5+
require (
6+
cloud.google.com/go v0.38.0
7+
github.com/bradfitz/gomemcache v0.0.0-20190329173943-551aad21a668
8+
golang.org/x/tools v0.0.0-20190509153222-73554e0f7805
9+
)

go.sum

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
2+
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
3+
cloud.google.com/go v0.38.0 h1:ROfEUZz+Gh5pa62DJWXSaonyu3StP6EA6lPEXPI6mCo=
4+
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
5+
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
6+
github.com/bradfitz/gomemcache v0.0.0-20190329173943-551aad21a668 h1:U/lr3Dgy4WK+hNk4tyD+nuGjpVLPEHuJSFXMw11/HPA=
7+
github.com/bradfitz/gomemcache v0.0.0-20190329173943-551aad21a668/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA=
8+
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
9+
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
10+
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
11+
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
12+
github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=
13+
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
14+
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
15+
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
16+
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
17+
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
18+
github.com/googleapis/gax-go/v2 v2.0.4 h1:hU4mGcQI4DaAYW+IbTun+2qEZVFxK0ySjQLTbS0VQKc=
19+
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
20+
github.com/hashicorp/golang-lru v0.5.0 h1:CL2msUPvZTLb5O648aiLNJw3hnBxN2+1Jq8rCOH9wdo=
21+
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
22+
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
23+
go.opencensus.io v0.21.0 h1:mU6zScU4U1YAFPHEHYk+3JC4SY7JxgkqS10ZOSyksNg=
24+
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
25+
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
26+
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
27+
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
28+
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
29+
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
30+
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
31+
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
32+
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
33+
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
34+
golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628=
35+
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
36+
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
37+
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421 h1:Wo7BWFiOk0QRFMLYMqJGFMd9CgUAcGx7V+qEg/h5IBI=
38+
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
39+
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
40+
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
41+
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
42+
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
43+
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
44+
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
45+
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
46+
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
47+
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
48+
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2 h1:z99zHgr7hKfrUcX/KsoJk5FJfjTceCKIp96+biqP4To=
49+
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
50+
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
51+
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
52+
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
53+
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
54+
golang.org/x/tools v0.0.0-20190509153222-73554e0f7805 h1:1ufBXAsTpUhSmmPXEEs5PrGQSfnBhsjAd2SmVhp9xrY=
55+
golang.org/x/tools v0.0.0-20190509153222-73554e0f7805/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
56+
google.golang.org/api v0.4.0 h1:KKgc1aqhV8wDPbDzlDtpvyjZFY3vjz85FP7p4wcQUyI=
57+
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
58+
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
59+
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
60+
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
61+
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
62+
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7 h1:ZUjXAXmrAyrmmCPHgCA/vChHcpsX27MZ3yBonD/z1KE=
63+
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
64+
google.golang.org/grpc v1.19.0 h1:cfg4PD8YEdSFnm7qLV4++93WcmhH2nIUhMjhdCvl3j8=
65+
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
66+
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
67+
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=

0 commit comments

Comments
 (0)