From 9737995cdbf1cd30234352ec1298f5a68169a0e6 Mon Sep 17 00:00:00 2001 From: Tyler Yahn Date: Thu, 7 Sep 2023 10:18:29 -0700 Subject: [PATCH] Drop support for Go 1.19 (#4481) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Drop support for Go 1.19 * Add change to changelog * Bump all modules to 1.20 * Update exponential_histogram_test.go --------- Co-authored-by: Robert PajÄ…k --- .github/workflows/ci.yml | 2 +- .github/workflows/create-dependabot-pr.yml | 2 +- CHANGELOG.md | 1 + Makefile | 2 +- README.md | 5 --- bridge/opencensus/go.mod | 2 +- bridge/opencensus/test/go.mod | 2 +- bridge/opentracing/go.mod | 2 +- bridge/opentracing/test/go.mod | 2 +- example/fib/go.mod | 2 +- example/namedtracer/go.mod | 2 +- example/opencensus/go.mod | 2 +- example/otel-collector/go.mod | 2 +- example/passthrough/go.mod | 2 +- example/prometheus/go.mod | 2 +- example/view/go.mod | 2 +- example/zipkin/go.mod | 2 +- exporters/otlp/otlpmetric/go.mod | 2 +- .../otlp/otlpmetric/otlpmetricgrpc/go.mod | 2 +- .../otlp/otlpmetric/otlpmetrichttp/go.mod | 2 +- exporters/otlp/otlptrace/go.mod | 2 +- exporters/otlp/otlptrace/otlptracegrpc/go.mod | 2 +- exporters/otlp/otlptrace/otlptracehttp/go.mod | 2 +- exporters/prometheus/go.mod | 2 +- exporters/stdout/stdoutmetric/go.mod | 2 +- exporters/stdout/stdouttrace/go.mod | 2 +- exporters/zipkin/go.mod | 2 +- go.mod | 2 +- internal/tools/go.mod | 2 +- metric/go.mod | 2 +- schema/go.mod | 2 +- sdk/go.mod | 2 +- sdk/metric/go.mod | 2 +- .../aggregate/exponential_histogram_test.go | 32 ++++++++----------- trace/go.mod | 2 +- 35 files changed, 46 insertions(+), 56 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1758d02712e..f99926ccf03 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -99,7 +99,7 @@ jobs: compatibility-test: strategy: matrix: - go-version: ["~1.21.1", "~1.20.8", 1.19] + go-version: ["~1.21.1", "~1.20.8"] os: [ubuntu-latest, macos-latest, windows-latest] # GitHub Actions does not support arm* architectures on default # runners. It is possible to accomplish this with a self-hosted runner diff --git a/.github/workflows/create-dependabot-pr.yml b/.github/workflows/create-dependabot-pr.yml index 6506a59f225..b827d831079 100644 --- a/.github/workflows/create-dependabot-pr.yml +++ b/.github/workflows/create-dependabot-pr.yml @@ -10,7 +10,7 @@ jobs: - name: Install Go uses: actions/setup-go@v4 with: - go-version: 1.19 + go-version: "~1.21.1" - uses: actions/checkout@v3 diff --git a/CHANGELOG.md b/CHANGELOG.md index 96c0579e1a5..8e43e3d620b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm - Removed the deprecated `go.opentelemetry.io/otel/example/jaeger` package. (#4467) - Removed the deprecated `go.opentelemetry.io/otel/sdk/metric/aggregation` package. (#4468) - Removed the deprecated internal packages in `go.opentelemetry.io/otel/exporters/otlp` and its sub-packages. (#4469) +- Dropped guaranteed support for versions of Go less than 1.20. (#4481) ## [1.17.0/0.40.0/0.0.5] 2023-08-28 diff --git a/Makefile b/Makefile index c996d227bea..5c311706b0c 100644 --- a/Makefile +++ b/Makefile @@ -210,7 +210,7 @@ go-mod-tidy/%: DIR=$* go-mod-tidy/%: | crosslink @echo "$(GO) mod tidy in $(DIR)" \ && cd $(DIR) \ - && $(GO) mod tidy -compat=1.19 + && $(GO) mod tidy -compat=1.20 .PHONY: lint-modules lint-modules: go-mod-tidy diff --git a/README.md b/README.md index 4e5531f3052..634326ef833 100644 --- a/README.md +++ b/README.md @@ -55,19 +55,14 @@ Currently, this project supports the following environments. |---------|------------|--------------| | Ubuntu | 1.21 | amd64 | | Ubuntu | 1.20 | amd64 | -| Ubuntu | 1.19 | amd64 | | Ubuntu | 1.21 | 386 | | Ubuntu | 1.20 | 386 | -| Ubuntu | 1.19 | 386 | | MacOS | 1.21 | amd64 | | MacOS | 1.20 | amd64 | -| MacOS | 1.19 | amd64 | | Windows | 1.21 | amd64 | | Windows | 1.20 | amd64 | -| Windows | 1.19 | amd64 | | Windows | 1.21 | 386 | | Windows | 1.20 | 386 | -| Windows | 1.19 | 386 | While this project should work for other systems, no compatibility guarantees are made for those systems currently. diff --git a/bridge/opencensus/go.mod b/bridge/opencensus/go.mod index b6f936b6878..a9f1bb6b34f 100644 --- a/bridge/opencensus/go.mod +++ b/bridge/opencensus/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/bridge/opencensus -go 1.19 +go 1.20 require ( github.com/stretchr/testify v1.8.4 diff --git a/bridge/opencensus/test/go.mod b/bridge/opencensus/test/go.mod index a06b3e3c80d..976af1e1997 100644 --- a/bridge/opencensus/test/go.mod +++ b/bridge/opencensus/test/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/bridge/opencensus/test -go 1.19 +go 1.20 require ( go.opencensus.io v0.24.0 diff --git a/bridge/opentracing/go.mod b/bridge/opentracing/go.mod index 8a81f16ae86..9bc855ff228 100644 --- a/bridge/opentracing/go.mod +++ b/bridge/opentracing/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/bridge/opentracing -go 1.19 +go 1.20 replace go.opentelemetry.io/otel => ../.. diff --git a/bridge/opentracing/test/go.mod b/bridge/opentracing/test/go.mod index 2267dba0d6e..6c357a4095e 100644 --- a/bridge/opentracing/test/go.mod +++ b/bridge/opentracing/test/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/bridge/opentracing/test -go 1.19 +go 1.20 replace go.opentelemetry.io/otel => ../../.. diff --git a/example/fib/go.mod b/example/fib/go.mod index e48997737dc..7817316d4fa 100644 --- a/example/fib/go.mod +++ b/example/fib/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/example/fib -go 1.19 +go 1.20 require ( go.opentelemetry.io/otel v1.17.0 diff --git a/example/namedtracer/go.mod b/example/namedtracer/go.mod index 79e3280b69d..93e5927ee88 100644 --- a/example/namedtracer/go.mod +++ b/example/namedtracer/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/example/namedtracer -go 1.19 +go 1.20 replace ( go.opentelemetry.io/otel => ../.. diff --git a/example/opencensus/go.mod b/example/opencensus/go.mod index b35a09681c4..98d05bf934d 100644 --- a/example/opencensus/go.mod +++ b/example/opencensus/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/example/opencensus -go 1.19 +go 1.20 replace ( go.opentelemetry.io/otel => ../.. diff --git a/example/otel-collector/go.mod b/example/otel-collector/go.mod index 25b45eec11a..43754c76dd6 100644 --- a/example/otel-collector/go.mod +++ b/example/otel-collector/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/example/otel-collector -go 1.19 +go 1.20 replace ( go.opentelemetry.io/otel => ../.. diff --git a/example/passthrough/go.mod b/example/passthrough/go.mod index f63406443ed..967640ef624 100644 --- a/example/passthrough/go.mod +++ b/example/passthrough/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/example/passthrough -go 1.19 +go 1.20 require ( go.opentelemetry.io/otel v1.17.0 diff --git a/example/prometheus/go.mod b/example/prometheus/go.mod index 7142301336e..907c7e8ade6 100644 --- a/example/prometheus/go.mod +++ b/example/prometheus/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/example/prometheus -go 1.19 +go 1.20 require ( github.com/prometheus/client_golang v1.16.0 diff --git a/example/view/go.mod b/example/view/go.mod index 1499c8532fc..58b90f6cb44 100644 --- a/example/view/go.mod +++ b/example/view/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/example/view -go 1.19 +go 1.20 require ( github.com/prometheus/client_golang v1.16.0 diff --git a/example/zipkin/go.mod b/example/zipkin/go.mod index a2e094d2864..e7c16c56ff3 100644 --- a/example/zipkin/go.mod +++ b/example/zipkin/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/example/zipkin -go 1.19 +go 1.20 replace ( go.opentelemetry.io/otel => ../.. diff --git a/exporters/otlp/otlpmetric/go.mod b/exporters/otlp/otlpmetric/go.mod index ad1dc908590..33f5411a29d 100644 --- a/exporters/otlp/otlpmetric/go.mod +++ b/exporters/otlp/otlpmetric/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/exporters/otlp/otlpmetric -go 1.19 +go 1.20 require github.com/stretchr/testify v1.8.4 diff --git a/exporters/otlp/otlpmetric/otlpmetricgrpc/go.mod b/exporters/otlp/otlpmetric/otlpmetricgrpc/go.mod index 77e9a31e4e5..57130d82377 100644 --- a/exporters/otlp/otlpmetric/otlpmetricgrpc/go.mod +++ b/exporters/otlp/otlpmetric/otlpmetricgrpc/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc -go 1.19 +go 1.20 retract v0.32.2 // Contains unresolvable dependencies. diff --git a/exporters/otlp/otlpmetric/otlpmetrichttp/go.mod b/exporters/otlp/otlpmetric/otlpmetrichttp/go.mod index abc327925b8..176a3203326 100644 --- a/exporters/otlp/otlpmetric/otlpmetrichttp/go.mod +++ b/exporters/otlp/otlpmetric/otlpmetrichttp/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp -go 1.19 +go 1.20 retract v0.32.2 // Contains unresolvable dependencies. diff --git a/exporters/otlp/otlptrace/go.mod b/exporters/otlp/otlptrace/go.mod index e0b9cd0378b..35b59d3d070 100644 --- a/exporters/otlp/otlptrace/go.mod +++ b/exporters/otlp/otlptrace/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/exporters/otlp/otlptrace -go 1.19 +go 1.20 require ( github.com/google/go-cmp v0.5.9 diff --git a/exporters/otlp/otlptrace/otlptracegrpc/go.mod b/exporters/otlp/otlptrace/otlptracegrpc/go.mod index 7385f7da9a9..fcc19d799d3 100644 --- a/exporters/otlp/otlptrace/otlptracegrpc/go.mod +++ b/exporters/otlp/otlptrace/otlptracegrpc/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc -go 1.19 +go 1.20 require ( github.com/cenkalti/backoff/v4 v4.2.1 diff --git a/exporters/otlp/otlptrace/otlptracehttp/go.mod b/exporters/otlp/otlptrace/otlptracehttp/go.mod index 8e27ae50fd1..962c12054f1 100644 --- a/exporters/otlp/otlptrace/otlptracehttp/go.mod +++ b/exporters/otlp/otlptrace/otlptracehttp/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp -go 1.19 +go 1.20 require ( github.com/cenkalti/backoff/v4 v4.2.1 diff --git a/exporters/prometheus/go.mod b/exporters/prometheus/go.mod index 4ea48560299..e6a4d7a810b 100644 --- a/exporters/prometheus/go.mod +++ b/exporters/prometheus/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/exporters/prometheus -go 1.19 +go 1.20 require ( github.com/prometheus/client_golang v1.16.0 diff --git a/exporters/stdout/stdoutmetric/go.mod b/exporters/stdout/stdoutmetric/go.mod index a4d7f26c0ea..664040073ef 100644 --- a/exporters/stdout/stdoutmetric/go.mod +++ b/exporters/stdout/stdoutmetric/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/exporters/stdout/stdoutmetric -go 1.19 +go 1.20 require ( github.com/stretchr/testify v1.8.4 diff --git a/exporters/stdout/stdouttrace/go.mod b/exporters/stdout/stdouttrace/go.mod index 0db7eea656f..999cabde1b8 100644 --- a/exporters/stdout/stdouttrace/go.mod +++ b/exporters/stdout/stdouttrace/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/exporters/stdout/stdouttrace -go 1.19 +go 1.20 replace ( go.opentelemetry.io/otel => ../../.. diff --git a/exporters/zipkin/go.mod b/exporters/zipkin/go.mod index 47b9a95794e..18b584f07be 100644 --- a/exporters/zipkin/go.mod +++ b/exporters/zipkin/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/exporters/zipkin -go 1.19 +go 1.20 require ( github.com/go-logr/logr v1.2.4 diff --git a/go.mod b/go.mod index 73bade0c44a..841f6eb2a7b 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel -go 1.19 +go 1.20 require ( github.com/go-logr/logr v1.2.4 diff --git a/internal/tools/go.mod b/internal/tools/go.mod index 5cc4c0d9613..f0d316074e4 100644 --- a/internal/tools/go.mod +++ b/internal/tools/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/internal/tools -go 1.19 +go 1.20 require ( github.com/client9/misspell v0.3.4 diff --git a/metric/go.mod b/metric/go.mod index 35d7e92b104..ac877bfd675 100644 --- a/metric/go.mod +++ b/metric/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/metric -go 1.19 +go 1.20 require ( github.com/stretchr/testify v1.8.4 diff --git a/schema/go.mod b/schema/go.mod index 674b0067f47..0c2d3e6d00f 100644 --- a/schema/go.mod +++ b/schema/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/schema -go 1.19 +go 1.20 require ( github.com/Masterminds/semver/v3 v3.2.1 diff --git a/sdk/go.mod b/sdk/go.mod index 14acf886753..9b757208d60 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/sdk -go 1.19 +go 1.20 replace go.opentelemetry.io/otel => ../ diff --git a/sdk/metric/go.mod b/sdk/metric/go.mod index 72424175ea2..f35dc51a7b8 100644 --- a/sdk/metric/go.mod +++ b/sdk/metric/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/sdk/metric -go 1.19 +go 1.20 require ( github.com/go-logr/logr v1.2.4 diff --git a/sdk/metric/internal/aggregate/exponential_histogram_test.go b/sdk/metric/internal/aggregate/exponential_histogram_test.go index cac734c9312..7dbb71b15bd 100644 --- a/sdk/metric/internal/aggregate/exponential_histogram_test.go +++ b/sdk/metric/internal/aggregate/exponential_histogram_test.go @@ -51,16 +51,13 @@ func TestExpoHistogramDataPointRecord(t *testing.T) { t.Run("int64 MinMaxSum", testExpoHistogramMinMaxSumInt64) } -// TODO: This can be defined in the test after we drop support for go1.19. -type expoHistogramDataPointRecordTestCase[N int64 | float64] struct { - maxSize int - values []N - expectedBuckets expoBuckets - expectedScale int -} - func testExpoHistogramDataPointRecord[N int64 | float64](t *testing.T) { - testCases := []expoHistogramDataPointRecordTestCase[N]{ + testCases := []struct { + maxSize int + values []N + expectedBuckets expoBuckets + expectedScale int + }{ { maxSize: 4, values: []N{2, 4, 1}, @@ -746,15 +743,6 @@ func TestExponentialHistogramAggregation(t *testing.T) { t.Run("Float64", testExponentialHistogramAggregation[float64]) } -// TODO: This can be defined in the test after we drop support for go1.19. -type exponentialHistogramAggregationTestCase[N int64 | float64] struct { - name string - build func() (Measure[N], ComputeAggregation) - input [][]N - want metricdata.ExponentialHistogram[N] - wantCount int -} - func testExponentialHistogramAggregation[N int64 | float64](t *testing.T) { const ( maxSize = 4 @@ -763,7 +751,13 @@ func testExponentialHistogramAggregation[N int64 | float64](t *testing.T) { noSum = false ) - tests := []exponentialHistogramAggregationTestCase[N]{ + tests := []struct { + name string + build func() (Measure[N], ComputeAggregation) + input [][]N + want metricdata.ExponentialHistogram[N] + wantCount int + }{ { name: "Delta Single", build: func() (Measure[N], ComputeAggregation) { diff --git a/trace/go.mod b/trace/go.mod index 21570ab1e3c..a80423d9b4c 100644 --- a/trace/go.mod +++ b/trace/go.mod @@ -1,6 +1,6 @@ module go.opentelemetry.io/otel/trace -go 1.19 +go 1.20 replace go.opentelemetry.io/otel => ../