Skip to content

Commit dd4f4c6

Browse files
authored
Release script fixes (open-telemetry#102)
This adds a utility that can add and remove `replace` statements from a set of go.mod files. This builds on previous developments in this repo -- continues relying on a go.work file being checked in. The release tools will remove replace statements. The `genotelarrowcol` tool will add replace statements. This PR includes the results of ``` make prepare-release RELEASE_CANDIDATE=v0.8.0 PREVIOUS_VERSION=v0.7.0 MODSET=beta ``` which updates the go.mod files with an unreleased version, such that `go work sync` cannot succeed. It will succeed again after the release is pushed. It was difficult to untangle several changes from happening at once. 1. The release v0.7.0 was improperly made, so the go tools want to update all .sum files with the actual sum of those tags. 2. The ocb tool at v0.88.0 would insert a necessary replace statement, so we needed v0.89.x The change to v0.89.x was carried out using `make genotalarrowcol` which now runs `go work sync`, resulting in all modules receiving the update to v0.89.x. However, to avoid this sort of problem in the future, the ocb version is now hard-coded in the Dockerfile and Makefile.
1 parent 74e77c9 commit dd4f4c6

File tree

31 files changed

+6030
-1759
lines changed

31 files changed

+6030
-1759
lines changed

Dockerfile

+2-6
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,8 @@ WORKDIR /otel-arrow
1313
COPY . .
1414
ENV CGO_ENABLED=0
1515

16-
# Note we recommend using the latest released builder, which will
17-
# update the core OpenTelemetry collector libraries to the newest
18-
# possible versions. When the latest set of collector dependencies
19-
# leads to a broken build here, this `latest` can instead be set
20-
# to the last-successful version of the OpenTelemetry collector.
21-
RUN go install go.opentelemetry.io/collector/cmd/builder@latest
16+
# Note the version MUST MATCH otelarrowcol-build.yaml
17+
RUN go install go.opentelemetry.io/collector/cmd/builder@v0.89.0
2218

2319
# This command generates main.go, go.mod but does not update deps.
2420
RUN builder --skip-compilation --skip-get-modules --config=collector/otelarrowcol-build.yaml

Makefile

+10-5
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ build:
2929
for dir in $(GODIRS); do (cd $${dir} && $(GOCMD) build ./...); done
3030

3131
gotidy:
32-
$(GOCMD) work sync
32+
for dir in $(GODIRS); do (cd $${dir} && GOWORK="off" $(GOCMD) mod tidy); done
3333

3434
doc:
3535
$(GOCMD) run tools/data_model_gen/main.go
@@ -97,21 +97,26 @@ endif
9797
git add .
9898
# regenerate files
9999
$(MAKE) gotidy
100-
# ensure a clean branch
100+
# ensure a clean branch (that was a test--gotidy should be idempotent and should not change the working dir again)
101101
git diff -s --exit-code || (echo "local repository not clean"; exit 1)
102+
$(GOCMD) run ./tools/replacer unfix
103+
git add .
102104
git commit -m "add multimod changes $(RELEASE_CANDIDATE)" || (echo "no multimod changes to commit")
103105

104-
# Install OTC's builder at the latest version
106+
# Install OTC's builder at the version WHICH MUST MATCH collector/otelarrowcol-build.yaml
105107
BUILDER = builder
106108
.PHONY: $(BUILDER)
107109
builder:
108-
$(GOCMD) install go.opentelemetry.io/collector/cmd/builder@latest
110+
$(GOCMD) install go.opentelemetry.io/collector/cmd/builder@v0.89.0
109111

110112
.PHONY: genotelarrowcol
111113
genotelarrowcol: builder
112114
rm -f collector/cmd/otelarrowcol/*
113-
$(BUILDER) --skip-compilation --skip-get-modules --config collector/otelarrowcol-build.yaml
115+
GOWORK="off" $(GOCMD) run ./tools/replacer fix
116+
GOWORK="off" $(BUILDER) --skip-compilation --config collector/otelarrowcol-build.yaml
117+
GOWORK="off" $(GOCMD) run ./tools/replacer fix
114118
$(GOCMD) work sync
119+
$(MAKE) gotidy
115120

116121
.PHONY: otelarrowcol
117122
otelarrowcol:

collector/cmd/otelarrowcol/go.mod

+76-57
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,38 @@
22

33
module github.com/open-telemetry/otel-arrow/collector/cmd/otelarrowcol
44

5-
go 1.20
5+
go 1.21
6+
7+
toolchain go1.21.3
68

79
require (
810
github.com/lightstep/telemetry-generator/generatorreceiver v0.15.0
911
github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.88.0
1012
github.com/open-telemetry/opentelemetry-collector-contrib/extension/headerssetterextension v0.88.0
1113
github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.88.0
12-
github.com/open-telemetry/otel-arrow/collector v0.7.0
14+
github.com/open-telemetry/otel-arrow/collector/connector/validationconnector v0.8.0
15+
github.com/open-telemetry/otel-arrow/collector/exporter/fileexporter v0.8.0
16+
github.com/open-telemetry/otel-arrow/collector/exporter/otelarrowexporter v0.8.0
17+
github.com/open-telemetry/otel-arrow/collector/processor/concurrentbatchprocessor v0.8.0
18+
github.com/open-telemetry/otel-arrow/collector/processor/experimentprocessor v0.8.0
19+
github.com/open-telemetry/otel-arrow/collector/processor/obfuscationprocessor v0.8.0
20+
github.com/open-telemetry/otel-arrow/collector/receiver/filereceiver v0.8.0
21+
github.com/open-telemetry/otel-arrow/collector/receiver/otelarrowreceiver v0.8.0
1322
github.com/stretchr/testify v1.8.4
14-
go.opentelemetry.io/collector/component v0.88.0
15-
go.opentelemetry.io/collector/connector v0.88.0
16-
go.opentelemetry.io/collector/exporter v0.88.0
17-
go.opentelemetry.io/collector/exporter/debugexporter v0.88.0
18-
go.opentelemetry.io/collector/exporter/otlphttpexporter v0.88.0
19-
go.opentelemetry.io/collector/extension v0.88.0
20-
go.opentelemetry.io/collector/otelcol v0.88.0
21-
go.opentelemetry.io/collector/processor v0.88.0
22-
go.opentelemetry.io/collector/receiver v0.88.0
23-
golang.org/x/sys v0.13.0
23+
go.opentelemetry.io/collector/component v0.89.0
24+
go.opentelemetry.io/collector/connector v0.89.0
25+
go.opentelemetry.io/collector/exporter v0.89.0
26+
go.opentelemetry.io/collector/exporter/debugexporter v0.89.0
27+
go.opentelemetry.io/collector/exporter/otlphttpexporter v0.89.0
28+
go.opentelemetry.io/collector/extension v0.89.0
29+
go.opentelemetry.io/collector/otelcol v0.89.0
30+
go.opentelemetry.io/collector/processor v0.89.0
31+
go.opentelemetry.io/collector/receiver v0.89.0
32+
golang.org/x/sys v0.14.0
2433
)
2534

2635
require (
36+
cloud.google.com/go/compute/metadata v0.2.4-0.20230617002413-005d2dfb6b68 // indirect
2737
contrib.go.opencensus.io/exporter/prometheus v0.4.2 // indirect
2838
github.com/GehirnInc/crypt v0.0.0-20200316065508-bb7000b8a962 // indirect
2939
github.com/HdrHistogram/hdrhistogram-go v1.1.2 // indirect
@@ -43,11 +53,11 @@ require (
4353
github.com/ethereum/go-ethereum v1.13.1 // indirect
4454
github.com/fatih/color v1.15.0 // indirect
4555
github.com/felixge/httpsnoop v1.0.3 // indirect
46-
github.com/fsnotify/fsnotify v1.6.0 // indirect
56+
github.com/fsnotify/fsnotify v1.7.0 // indirect
4757
github.com/fxamacker/cbor/v2 v2.4.0 // indirect
4858
github.com/go-kit/log v0.2.1 // indirect
4959
github.com/go-logfmt/logfmt v0.5.1 // indirect
50-
github.com/go-logr/logr v1.2.4 // indirect
60+
github.com/go-logr/logr v1.3.0 // indirect
5161
github.com/go-logr/stdr v1.2.2 // indirect
5262
github.com/go-ole/go-ole v1.2.6 // indirect
5363
github.com/go-stack/stack v1.8.1 // indirect
@@ -58,21 +68,22 @@ require (
5868
github.com/golang/protobuf v1.5.3 // indirect
5969
github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect
6070
github.com/google/flatbuffers v2.0.8+incompatible // indirect
61-
github.com/google/uuid v1.3.1 // indirect
71+
github.com/google/uuid v1.4.0 // indirect
6272
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect
73+
github.com/hashicorp/go-version v1.6.0 // indirect
6374
github.com/holiman/uint256 v1.2.3 // indirect
6475
github.com/inconshreveable/mousetrap v1.1.0 // indirect
6576
github.com/json-iterator/go v1.1.12 // indirect
6677
github.com/klauspost/asmfmt v1.3.2 // indirect
67-
github.com/klauspost/compress v1.17.1 // indirect
78+
github.com/klauspost/compress v1.17.2 // indirect
6879
github.com/klauspost/cpuid/v2 v2.0.9 // indirect
6980
github.com/knadh/koanf/maps v0.1.1 // indirect
7081
github.com/knadh/koanf/providers/confmap v0.1.0 // indirect
7182
github.com/knadh/koanf/v2 v2.0.1 // indirect
7283
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
7384
github.com/mattn/go-colorable v0.1.13 // indirect
7485
github.com/mattn/go-isatty v0.0.17 // indirect
75-
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
86+
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
7687
github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 // indirect
7788
github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 // indirect
7889
github.com/mitchellh/copystructure v1.2.0 // indirect
@@ -81,20 +92,21 @@ require (
8192
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
8293
github.com/modern-go/reflect2 v1.0.2 // indirect
8394
github.com/mostynb/go-grpc-compression v1.2.2 // indirect
84-
github.com/open-telemetry/otel-arrow v0.7.0 // indirect
95+
github.com/open-telemetry/otel-arrow v0.8.0 // indirect
96+
github.com/open-telemetry/otel-arrow/collector v0.8.0 // indirect
8597
github.com/pierrec/lz4/v4 v4.1.18 // indirect
8698
github.com/pmezard/go-difflib v1.0.0 // indirect
8799
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
88100
github.com/prometheus/client_golang v1.17.0 // indirect
89101
github.com/prometheus/client_model v0.5.0 // indirect
90-
github.com/prometheus/common v0.44.0 // indirect
102+
github.com/prometheus/common v0.45.0 // indirect
91103
github.com/prometheus/procfs v0.11.1 // indirect
92104
github.com/prometheus/statsd_exporter v0.22.7 // indirect
93105
github.com/robfig/cron/v3 v3.0.1 // indirect
94106
github.com/rs/cors v1.10.1 // indirect
95-
github.com/shirou/gopsutil/v3 v3.23.9 // indirect
107+
github.com/shirou/gopsutil/v3 v3.23.10 // indirect
96108
github.com/shoenig/go-m1cpu v0.1.6 // indirect
97-
github.com/spf13/cobra v1.7.0 // indirect
109+
github.com/spf13/cobra v1.8.0 // indirect
98110
github.com/spf13/pflag v1.0.5 // indirect
99111
github.com/tg123/go-htpasswd v1.2.1 // indirect
100112
github.com/tklauser/go-sysconf v0.3.12 // indirect
@@ -106,41 +118,40 @@ require (
106118
github.com/zeebo/xxh3 v1.0.2 // indirect
107119
go.mongodb.org/mongo-driver v1.12.1 // indirect
108120
go.opencensus.io v0.24.0 // indirect
109-
go.opentelemetry.io/collector v0.88.0 // indirect
110-
go.opentelemetry.io/collector/config/configauth v0.88.0 // indirect
111-
go.opentelemetry.io/collector/config/configcompression v0.88.0 // indirect
112-
go.opentelemetry.io/collector/config/configgrpc v0.88.0 // indirect
113-
go.opentelemetry.io/collector/config/confighttp v0.88.0 // indirect
114-
go.opentelemetry.io/collector/config/confignet v0.88.0 // indirect
115-
go.opentelemetry.io/collector/config/configopaque v0.88.0 // indirect
116-
go.opentelemetry.io/collector/config/configtelemetry v0.88.0 // indirect
117-
go.opentelemetry.io/collector/config/configtls v0.88.0 // indirect
118-
go.opentelemetry.io/collector/config/internal v0.88.0 // indirect
119-
go.opentelemetry.io/collector/confmap v0.88.0 // indirect
120-
go.opentelemetry.io/collector/consumer v0.88.0 // indirect
121-
go.opentelemetry.io/collector/extension/auth v0.88.0 // indirect
122-
go.opentelemetry.io/collector/featuregate v1.0.0-rcv0017 // indirect
123-
go.opentelemetry.io/collector/pdata v1.0.0-rcv0017 // indirect
124-
go.opentelemetry.io/collector/semconv v0.88.0 // indirect
125-
go.opentelemetry.io/collector/service v0.88.0 // indirect
126-
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.45.0 // indirect
121+
go.opentelemetry.io/collector v0.89.0 // indirect
122+
go.opentelemetry.io/collector/config/configauth v0.89.0 // indirect
123+
go.opentelemetry.io/collector/config/configcompression v0.89.0 // indirect
124+
go.opentelemetry.io/collector/config/configgrpc v0.89.0 // indirect
125+
go.opentelemetry.io/collector/config/confighttp v0.89.0 // indirect
126+
go.opentelemetry.io/collector/config/confignet v0.89.0 // indirect
127+
go.opentelemetry.io/collector/config/configopaque v0.89.0 // indirect
128+
go.opentelemetry.io/collector/config/configtelemetry v0.89.0 // indirect
129+
go.opentelemetry.io/collector/config/configtls v0.89.0 // indirect
130+
go.opentelemetry.io/collector/config/internal v0.89.0 // indirect
131+
go.opentelemetry.io/collector/confmap v0.89.0 // indirect
132+
go.opentelemetry.io/collector/consumer v0.89.0 // indirect
133+
go.opentelemetry.io/collector/extension/auth v0.89.0 // indirect
134+
go.opentelemetry.io/collector/featuregate v1.0.0-rcv0018 // indirect
135+
go.opentelemetry.io/collector/pdata v1.0.0-rcv0018 // indirect
136+
go.opentelemetry.io/collector/semconv v0.89.0 // indirect
137+
go.opentelemetry.io/collector/service v0.89.0 // indirect
138+
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.0 // indirect
127139
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect
128140
go.opentelemetry.io/contrib/propagators/b3 v1.20.0 // indirect
129-
go.opentelemetry.io/otel v1.19.0 // indirect
130-
go.opentelemetry.io/otel/bridge/opencensus v0.42.0 // indirect
131-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.42.0 // indirect
132-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.42.0 // indirect
133-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.42.0 // indirect
134-
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
135-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 // indirect
136-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 // indirect
137-
go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect
138-
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.42.0 // indirect
139-
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.19.0 // indirect
140-
go.opentelemetry.io/otel/metric v1.19.0 // indirect
141-
go.opentelemetry.io/otel/sdk v1.19.0 // indirect
142-
go.opentelemetry.io/otel/sdk/metric v1.19.0 // indirect
143-
go.opentelemetry.io/otel/trace v1.19.0 // indirect
141+
go.opentelemetry.io/otel v1.20.0 // indirect
142+
go.opentelemetry.io/otel/bridge/opencensus v0.43.0 // indirect
143+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.43.0 // indirect
144+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.43.0 // indirect
145+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.20.0 // indirect
146+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0 // indirect
147+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.20.0 // indirect
148+
go.opentelemetry.io/otel/exporters/prometheus v0.43.0 // indirect
149+
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.43.0 // indirect
150+
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.20.0 // indirect
151+
go.opentelemetry.io/otel/metric v1.20.0 // indirect
152+
go.opentelemetry.io/otel/sdk v1.20.0 // indirect
153+
go.opentelemetry.io/otel/sdk/metric v1.20.0 // indirect
154+
go.opentelemetry.io/otel/trace v1.20.0 // indirect
144155
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
145156
go.uber.org/multierr v1.11.0 // indirect
146157
go.uber.org/zap v1.26.0 // indirect
@@ -151,7 +162,7 @@ require (
151162
golang.org/x/tools v0.10.0 // indirect
152163
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
153164
gonum.org/v1/gonum v0.14.0 // indirect
154-
google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 // indirect
165+
google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect
155166
google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a // indirect
156167
google.golang.org/grpc v1.59.0 // indirect
157168
google.golang.org/protobuf v1.31.0 // indirect
@@ -160,5 +171,13 @@ require (
160171
gopkg.in/yaml.v3 v3.0.1 // indirect
161172
)
162173

163-
// ambiguous import: found package cloud.google.com/go/compute/metadata in multiple modules
164-
replace cloud.google.com/go => cloud.google.com/go v0.110.9
174+
175+
176+
177+
178+
179+
180+
181+
182+
183+

0 commit comments

Comments
 (0)