From 1c665e5fb869a4065b2e8dceac2db9069e122467 Mon Sep 17 00:00:00 2001 From: Stefan Majer Date: Thu, 15 Feb 2024 14:11:42 +0100 Subject: [PATCH] Update to go 1.22 and modules update (#27) --- .github/workflows/build.yml | 8 ++--- Makefile | 2 +- api/duros/v2/mocks/DurosAPIClient.go | 2 +- api/duros/v2/mocks/DurosAPIServer.go | 2 +- .../v2/mocks/DurosAPI_FetchLogsClient.go | 2 +- .../v2/mocks/DurosAPI_FetchLogsServer.go | 2 +- api/duros/v2/mocks/UnsafeDurosAPIServer.go | 2 +- .../v2/mocks/isCreatePolicyRequest_Policy.go | 2 +- .../isCreateVolumeRequest_QosPolicyID.go | 2 +- api/duros/v2/mocks/isEvent_ComponentInfo.go | 2 +- api/duros/v2/mocks/isPolicy_Info.go | 2 +- .../v2/mocks/isQoSRateLimitPolicy_QoSLimit.go | 2 +- .../isSchedulePolicy_SchedulePolicies.go | 2 +- ...SnapshotSchedulePolicy_SchedulePolicies.go | 2 +- .../v2/mocks/isUpdatePolicyRequest_Policy.go | 2 +- .../isUpdateVolumeRequest_QosPolicyID.go | 2 +- client.go | 2 ++ go.mod | 16 +++++----- go.sum | 32 +++++++++---------- proto/Makefile | 2 +- 20 files changed, 46 insertions(+), 44 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e058fb6..23f556f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,14 +9,14 @@ jobs: runs-on: ubuntu-latest steps: - - name: Set up Go 1.20 - uses: actions/setup-go@v4 + - name: Set up Go 1.22 + uses: actions/setup-go@v5 with: - go-version: "1.20" + go-version: "1.22" id: go - name: Check out code into the Go module directory - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Lint uses: golangci/golangci-lint-action@v3 diff --git a/Makefile b/Makefile index 40a7cb4..fa4993f 100644 --- a/Makefile +++ b/Makefile @@ -35,4 +35,4 @@ protoc-ci: third-party .PHONY: mocks mocks: rm -rf api/duros/v2/mocks/* - docker run --user $$(id -u):$$(id -g) --rm -w /work -v ${PWD}:/work vektra/mockery:v2.39.1 -r --all --keeptree --dir api/duros/v2 --output api/duros/v2/mocks + docker run --user $$(id -u):$$(id -g) --rm -w /work -v ${PWD}:/work vektra/mockery:v2.41.0 -r --all --keeptree --dir api/duros/v2 --output api/duros/v2/mocks diff --git a/api/duros/v2/mocks/DurosAPIClient.go b/api/duros/v2/mocks/DurosAPIClient.go index aa96ff2..921a38b 100644 --- a/api/duros/v2/mocks/DurosAPIClient.go +++ b/api/duros/v2/mocks/DurosAPIClient.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.39.1. DO NOT EDIT. +// Code generated by mockery v2.41.0. DO NOT EDIT. package mocks diff --git a/api/duros/v2/mocks/DurosAPIServer.go b/api/duros/v2/mocks/DurosAPIServer.go index bab2f84..c7eeeed 100644 --- a/api/duros/v2/mocks/DurosAPIServer.go +++ b/api/duros/v2/mocks/DurosAPIServer.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.39.1. DO NOT EDIT. +// Code generated by mockery v2.41.0. DO NOT EDIT. package mocks diff --git a/api/duros/v2/mocks/DurosAPI_FetchLogsClient.go b/api/duros/v2/mocks/DurosAPI_FetchLogsClient.go index c655dc3..8ee6f98 100644 --- a/api/duros/v2/mocks/DurosAPI_FetchLogsClient.go +++ b/api/duros/v2/mocks/DurosAPI_FetchLogsClient.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.39.1. DO NOT EDIT. +// Code generated by mockery v2.41.0. DO NOT EDIT. package mocks diff --git a/api/duros/v2/mocks/DurosAPI_FetchLogsServer.go b/api/duros/v2/mocks/DurosAPI_FetchLogsServer.go index 0e9d2e9..b9acf06 100644 --- a/api/duros/v2/mocks/DurosAPI_FetchLogsServer.go +++ b/api/duros/v2/mocks/DurosAPI_FetchLogsServer.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.39.1. DO NOT EDIT. +// Code generated by mockery v2.41.0. DO NOT EDIT. package mocks diff --git a/api/duros/v2/mocks/UnsafeDurosAPIServer.go b/api/duros/v2/mocks/UnsafeDurosAPIServer.go index e57ef44..7ebb70a 100644 --- a/api/duros/v2/mocks/UnsafeDurosAPIServer.go +++ b/api/duros/v2/mocks/UnsafeDurosAPIServer.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.39.1. DO NOT EDIT. +// Code generated by mockery v2.41.0. DO NOT EDIT. package mocks diff --git a/api/duros/v2/mocks/isCreatePolicyRequest_Policy.go b/api/duros/v2/mocks/isCreatePolicyRequest_Policy.go index b58f783..1a0075a 100644 --- a/api/duros/v2/mocks/isCreatePolicyRequest_Policy.go +++ b/api/duros/v2/mocks/isCreatePolicyRequest_Policy.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.39.1. DO NOT EDIT. +// Code generated by mockery v2.41.0. DO NOT EDIT. package mocks diff --git a/api/duros/v2/mocks/isCreateVolumeRequest_QosPolicyID.go b/api/duros/v2/mocks/isCreateVolumeRequest_QosPolicyID.go index 9fd9266..18bbba1 100644 --- a/api/duros/v2/mocks/isCreateVolumeRequest_QosPolicyID.go +++ b/api/duros/v2/mocks/isCreateVolumeRequest_QosPolicyID.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.39.1. DO NOT EDIT. +// Code generated by mockery v2.41.0. DO NOT EDIT. package mocks diff --git a/api/duros/v2/mocks/isEvent_ComponentInfo.go b/api/duros/v2/mocks/isEvent_ComponentInfo.go index 920dbd0..231699e 100644 --- a/api/duros/v2/mocks/isEvent_ComponentInfo.go +++ b/api/duros/v2/mocks/isEvent_ComponentInfo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.39.1. DO NOT EDIT. +// Code generated by mockery v2.41.0. DO NOT EDIT. package mocks diff --git a/api/duros/v2/mocks/isPolicy_Info.go b/api/duros/v2/mocks/isPolicy_Info.go index 1daffa3..616e426 100644 --- a/api/duros/v2/mocks/isPolicy_Info.go +++ b/api/duros/v2/mocks/isPolicy_Info.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.39.1. DO NOT EDIT. +// Code generated by mockery v2.41.0. DO NOT EDIT. package mocks diff --git a/api/duros/v2/mocks/isQoSRateLimitPolicy_QoSLimit.go b/api/duros/v2/mocks/isQoSRateLimitPolicy_QoSLimit.go index 11d0b12..e394a66 100644 --- a/api/duros/v2/mocks/isQoSRateLimitPolicy_QoSLimit.go +++ b/api/duros/v2/mocks/isQoSRateLimitPolicy_QoSLimit.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.39.1. DO NOT EDIT. +// Code generated by mockery v2.41.0. DO NOT EDIT. package mocks diff --git a/api/duros/v2/mocks/isSchedulePolicy_SchedulePolicies.go b/api/duros/v2/mocks/isSchedulePolicy_SchedulePolicies.go index 0b22268..d1b45da 100644 --- a/api/duros/v2/mocks/isSchedulePolicy_SchedulePolicies.go +++ b/api/duros/v2/mocks/isSchedulePolicy_SchedulePolicies.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.39.1. DO NOT EDIT. +// Code generated by mockery v2.41.0. DO NOT EDIT. package mocks diff --git a/api/duros/v2/mocks/isSnapshotSchedulePolicy_SchedulePolicies.go b/api/duros/v2/mocks/isSnapshotSchedulePolicy_SchedulePolicies.go index 29d8dab..0199242 100644 --- a/api/duros/v2/mocks/isSnapshotSchedulePolicy_SchedulePolicies.go +++ b/api/duros/v2/mocks/isSnapshotSchedulePolicy_SchedulePolicies.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.39.1. DO NOT EDIT. +// Code generated by mockery v2.41.0. DO NOT EDIT. package mocks diff --git a/api/duros/v2/mocks/isUpdatePolicyRequest_Policy.go b/api/duros/v2/mocks/isUpdatePolicyRequest_Policy.go index fbebd62..20501d0 100644 --- a/api/duros/v2/mocks/isUpdatePolicyRequest_Policy.go +++ b/api/duros/v2/mocks/isUpdatePolicyRequest_Policy.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.39.1. DO NOT EDIT. +// Code generated by mockery v2.41.0. DO NOT EDIT. package mocks diff --git a/api/duros/v2/mocks/isUpdateVolumeRequest_QosPolicyID.go b/api/duros/v2/mocks/isUpdateVolumeRequest_QosPolicyID.go index cb4ae20..7c971e7 100644 --- a/api/duros/v2/mocks/isUpdateVolumeRequest_QosPolicyID.go +++ b/api/duros/v2/mocks/isUpdateVolumeRequest_QosPolicyID.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.39.1. DO NOT EDIT. +// Code generated by mockery v2.41.0. DO NOT EDIT. package mocks diff --git a/client.go b/client.go index a1b2748..32bd808 100644 --- a/client.go +++ b/client.go @@ -212,6 +212,8 @@ func Dial(ctx context.Context, config DialConfig) (durosv2.DurosAPIClient, error return nil, err } + log.Infof("connected") + c := durosv2.NewDurosAPIClient(res.conn) return c, nil } diff --git a/go.mod b/go.mod index 93c62bc..72447fa 100644 --- a/go.mod +++ b/go.mod @@ -1,16 +1,16 @@ module github.com/metal-stack/duros-go -go 1.21 +go 1.22 require ( github.com/golang-jwt/jwt/v4 v4.5.0 - github.com/google/uuid v1.5.0 + github.com/google/uuid v1.6.0 github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/stretchr/testify v1.8.4 go.uber.org/zap v1.26.0 - google.golang.org/genproto/googleapis/api v0.0.0-20231212172506-995d672761c0 - google.golang.org/grpc v1.60.1 + google.golang.org/genproto/googleapis/api v0.0.0-20240213162025-012b6fc9bca9 + google.golang.org/grpc v1.61.1 google.golang.org/protobuf v1.32.0 ) @@ -20,10 +20,10 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/stretchr/objx v0.5.1 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/net v0.19.0 // indirect - golang.org/x/sys v0.15.0 // indirect + golang.org/x/net v0.21.0 // indirect + golang.org/x/sys v0.17.0 // indirect golang.org/x/text v0.14.0 // indirect - google.golang.org/genproto v0.0.0-20231212172506-995d672761c0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231212172506-995d672761c0 // indirect + google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 2581284..6e0037a 100644 --- a/go.sum +++ b/go.sum @@ -32,11 +32,11 @@ github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= -github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= @@ -104,8 +104,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -121,8 +121,8 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= @@ -146,20 +146,20 @@ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoA google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20231212172506-995d672761c0 h1:YJ5pD9rF8o9Qtta0Cmy9rdBwkSjrTCT6XTiUQVOtIos= -google.golang.org/genproto v0.0.0-20231212172506-995d672761c0/go.mod h1:l/k7rMz0vFTBPy+tFSGvXEd3z+BcoG1k7EHbqm+YBsY= -google.golang.org/genproto/googleapis/api v0.0.0-20231212172506-995d672761c0 h1:s1w3X6gQxwrLEpxnLd/qXTVLgQE2yXwaOaoa6IlY/+o= -google.golang.org/genproto/googleapis/api v0.0.0-20231212172506-995d672761c0/go.mod h1:CAny0tYF+0/9rmDB9fahA9YLzX3+AEVl1qXbv5hhj6c= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231212172506-995d672761c0 h1:/jFB8jK5R3Sq3i/lmeZO0cATSzFfZaJq1J2Euan3XKU= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231212172506-995d672761c0/go.mod h1:FUoWkonphQm3RhTS+kOEhF8h0iDpm4tdXolVCeZ9KKA= +google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y= +google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= +google.golang.org/genproto/googleapis/api v0.0.0-20240213162025-012b6fc9bca9 h1:4++qSzdWBUy9/2x8L5KZgwZw+mjJZ2yDSCGMVM0YzRs= +google.golang.org/genproto/googleapis/api v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:PVreiBMirk8ypES6aw9d4p6iiBNSIfZEBqr3UGoAi2E= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9 h1:hZB7eLIaYlW9qXRfCq/qDaPdbeY3757uARz5Vvfv+cY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:YUWgXUFRPfoYK1IHMuxH5K6nPEXSCzIMljnQ59lLRCk= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.60.1 h1:26+wFr+cNqSGFcOXcabYC0lUVJVRa2Sb2ortSK7VrEU= -google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= +google.golang.org/grpc v1.61.1 h1:kLAiWrZs7YeDM6MumDe7m3y4aM6wacLzM1Y/wiLP9XY= +google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= diff --git a/proto/Makefile b/proto/Makefile index 403a762..b6c5f67 100644 --- a/proto/Makefile +++ b/proto/Makefile @@ -1,5 +1,5 @@ MAKEFLAGS += --no-print-directory -BUF_VERSION := 1.26.1 +BUF_VERSION := 1.29.0 _buf: docker run --rm \