1
0
mirror of https://github.com/open-telemetry/opentelemetry-go.git synced 2024-12-04 09:43:23 +02:00

Bump CI default version of Go to 1.20 (#3733)

* Bump CI default version of Go to 1.20

* Use crypto/rand in Jaeger exporter testing

* Use crypto/rand Reader in otlp exporters

* Remove use of dep rand.Seed in prometheus exporter

* Update changelog with public changes

* Quote DEFAULT_GO_VERSION value

* Update .github/workflows/ci.yml

* Update CHANGELOG.md

Co-authored-by: Damien Mathieu <42@dmathieu.com>

---------

Co-authored-by: Damien Mathieu <42@dmathieu.com>
This commit is contained in:
Tyler Yahn 2023-02-16 08:33:12 -08:00 committed by GitHub
parent d68b05fbee
commit 80f187fd0d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 20 additions and 34 deletions

View File

@ -7,8 +7,14 @@ on:
env: env:
# Path to where test results will be saved. # Path to where test results will be saved.
TEST_RESULTS: /tmp/test-results TEST_RESULTS: /tmp/test-results
# Default minimum version of Go to support. # Default version of Go to use by CI workflows. This should be the latest
DEFAULT_GO_VERSION: 1.19 # release of Go; developers likely use the latest release in development and
# we want to catch any bugs (e.g. lint errors, race detection) with this
# release before they are merged. The Go compatibility guarantees ensure
# backwards compatibility with the previous two minor releases and we
# explicitly test our code for these versions so keeping this at prior
# versions does not add value.
DEFAULT_GO_VERSION: "1.20"
jobs: jobs:
lint: lint:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@ -38,6 +38,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
### Fixed ### Fixed
- Ensure `go.opentelemetry.io/otel` does not use generics. (#3723, #3725) - Ensure `go.opentelemetry.io/otel` does not use generics. (#3723, #3725)
- Remove use of deprecated `"math/rand".Seed` in `go.opentelemetry.io/otel/example/prometheus`. (#3733)
## [1.13.0/0.36.0] 2023-02-07 ## [1.13.0/0.36.0] 2023-02-07

View File

@ -33,11 +33,8 @@ import (
"go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/metric"
) )
func init() {
rand.Seed(time.Now().UnixNano())
}
func main() { func main() {
rng := rand.New(rand.NewSource(time.Now().UnixNano()))
ctx := context.Background() ctx := context.Background()
// The exporter embeds a default OpenTelemetry Reader and // The exporter embeds a default OpenTelemetry Reader and
@ -70,7 +67,7 @@ func main() {
log.Fatal(err) log.Fatal(err)
} }
_, err = meter.RegisterCallback(func(_ context.Context, o api.Observer) error { _, err = meter.RegisterCallback(func(_ context.Context, o api.Observer) error {
n := -10. + rand.Float64()*(90.) // [-10, 100) n := -10. + rng.Float64()*(90.) // [-10, 100)
o.ObserveFloat64(gauge, n, attrs...) o.ObserveFloat64(gauge, n, attrs...)
return nil return nil
}, gauge) }, gauge)

View File

@ -16,8 +16,8 @@ package jaeger
import ( import (
"context" "context"
"crypto/rand"
"fmt" "fmt"
"math/rand"
"net" "net"
"testing" "testing"
"time" "time"

View File

@ -20,7 +20,7 @@ import (
"context" "context"
"crypto/ecdsa" "crypto/ecdsa"
"crypto/elliptic" "crypto/elliptic"
cryptorand "crypto/rand" "crypto/rand"
"crypto/tls" "crypto/tls"
"crypto/x509" "crypto/x509"
"crypto/x509/pkix" // nolint:depguard // This is for testing. "crypto/x509/pkix" // nolint:depguard // This is for testing.
@ -29,7 +29,6 @@ import (
"fmt" "fmt"
"io" "io"
"math/big" "math/big"
mathrand "math/rand"
"net" "net"
"net/http" "net/http"
"net/url" "net/url"
@ -389,25 +388,17 @@ func (c *HTTPCollector) respond(w http.ResponseWriter, resp ExportResult) {
} }
} }
type mathRandReader struct{}
func (mathRandReader) Read(p []byte) (n int, err error) {
return mathrand.Read(p)
}
var randReader mathRandReader
// Based on https://golang.org/src/crypto/tls/generate_cert.go, // Based on https://golang.org/src/crypto/tls/generate_cert.go,
// simplified and weakened. // simplified and weakened.
func weakCertificate() (tls.Certificate, error) { func weakCertificate() (tls.Certificate, error) {
priv, err := ecdsa.GenerateKey(elliptic.P256(), randReader) priv, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
if err != nil { if err != nil {
return tls.Certificate{}, err return tls.Certificate{}, err
} }
notBefore := time.Now() notBefore := time.Now()
notAfter := notBefore.Add(time.Hour) notAfter := notBefore.Add(time.Hour)
max := new(big.Int).Lsh(big.NewInt(1), 128) max := new(big.Int).Lsh(big.NewInt(1), 128)
sn, err := cryptorand.Int(randReader, max) sn, err := rand.Int(rand.Reader, max)
if err != nil { if err != nil {
return tls.Certificate{}, err return tls.Certificate{}, err
} }
@ -422,7 +413,7 @@ func weakCertificate() (tls.Certificate, error) {
DNSNames: []string{"localhost"}, DNSNames: []string{"localhost"},
IPAddresses: []net.IP{net.IPv6loopback, net.IPv4(127, 0, 0, 1)}, IPAddresses: []net.IP{net.IPv6loopback, net.IPv4(127, 0, 0, 1)},
} }
derBytes, err := x509.CreateCertificate(randReader, &tmpl, &tmpl, &priv.PublicKey, priv) derBytes, err := x509.CreateCertificate(rand.Reader, &tmpl, &tmpl, &priv.PublicKey, priv)
if err != nil { if err != nil {
return tls.Certificate{}, err return tls.Certificate{}, err
} }

View File

@ -18,24 +18,15 @@ import (
"bytes" "bytes"
"crypto/ecdsa" "crypto/ecdsa"
"crypto/elliptic" "crypto/elliptic"
cryptorand "crypto/rand" "crypto/rand"
"crypto/x509" "crypto/x509"
"crypto/x509/pkix" "crypto/x509/pkix"
"encoding/pem" "encoding/pem"
"math/big" "math/big"
mathrand "math/rand"
"net" "net"
"time" "time"
) )
type mathRandReader struct{}
func (mathRandReader) Read(p []byte) (n int, err error) {
return mathrand.Read(p)
}
var randReader mathRandReader
type pemCertificate struct { type pemCertificate struct {
Certificate []byte Certificate []byte
PrivateKey []byte PrivateKey []byte
@ -44,7 +35,7 @@ type pemCertificate struct {
// Based on https://golang.org/src/crypto/tls/generate_cert.go, // Based on https://golang.org/src/crypto/tls/generate_cert.go,
// simplified and weakened. // simplified and weakened.
func generateWeakCertificate() (*pemCertificate, error) { func generateWeakCertificate() (*pemCertificate, error) {
priv, err := ecdsa.GenerateKey(elliptic.P256(), randReader) priv, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -52,7 +43,7 @@ func generateWeakCertificate() (*pemCertificate, error) {
notBefore := time.Now() notBefore := time.Now()
notAfter := notBefore.Add(time.Hour) notAfter := notBefore.Add(time.Hour)
serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128) serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128)
serialNumber, err := cryptorand.Int(randReader, serialNumberLimit) serialNumber, err := rand.Int(rand.Reader, serialNumberLimit)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -69,7 +60,7 @@ func generateWeakCertificate() (*pemCertificate, error) {
DNSNames: []string{"localhost"}, DNSNames: []string{"localhost"},
IPAddresses: []net.IP{net.IPv6loopback, net.IPv4(127, 0, 0, 1)}, IPAddresses: []net.IP{net.IPv6loopback, net.IPv4(127, 0, 0, 1)},
} }
derBytes, err := x509.CreateCertificate(randReader, &template, &template, &priv.PublicKey, priv) derBytes, err := x509.CreateCertificate(rand.Reader, &template, &template, &priv.PublicKey, priv)
if err != nil { if err != nil {
return nil, err return nil, err
} }