Skip to content

[master] update buildx to v0.6.0 - #561

Merged
thaJeztah merged 2 commits into
docker:masterfrom
thaJeztah:bump_buildx_0.6
Jul 28, 2021
Merged

[master] update buildx to v0.6.0#561
thaJeztah merged 2 commits into
docker:masterfrom
thaJeztah:bump_buildx_0.6

Conversation

@thaJeztah

Copy link
Copy Markdown
Member

release notes: https://github.com/docker/buildx/releases/tag/v0.6.0

Signed-off-by: Sebastiaan van Stijn github@gone.nl

@thaJeztah

Copy link
Copy Markdown
MemberAuthor

@tonistiigi@crazy-max ptal

@thaJeztah

Copy link
Copy Markdown
MemberAuthor

Should this go into 20.10 as well? If so, we should cherry-pick this one after it's merged

@thaJeztah

Copy link
Copy Markdown
MemberAuthor

Looks like the build is broken for v0.6.0;

+ GOFLAGS=-mod=vendor
+ go build -o bin/docker-buildx -ldflags '-X github.com/docker/buildx/version.Version=v0.6.0-docker -X github.com/docker/buildx/version.Revision=d9ee3b134cbc2d09513fa7fee4176a3919e05887 -X github.com/docker/buildx/version.Package=github.com/docker/buildx' ./cmd/buildx
vendor/github.com/moby/buildkit/client/client.go:20:2: code in directory /go/src/github.com/docker/buildx/vendor/github.com/moby/buildkit/util/tracing/otlptracegrpc expects import "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/connection/connection.go:33:2: found import comments "go.opentelemetry.io/otel/exporters/otlp/internal/otlpconfig" (options.go) and "go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlpconfig" (optiontypes.go) in /go/src/github.com/docker/buildx/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlpconfig

@thaJeztah

Copy link
Copy Markdown
MemberAuthor

Interesting; if GO111MODULE is not set (but GOFLAGS=-mod=vendor), then it builds successfully:

echo$GO111MODULEexport LDFLAGS="-X ${PKG}/version.Version=$(git describe --match 'v[0-9]*' --always --tags)-docker -X ${PKG}/version.Revision=$(git rev-parse HEAD) -X ${PKG}/version.Package=${PKG}"
GOFLAGS=-mod=vendor go build -o bin/docker-buildx -ldflags "${LDFLAGS}" ./cmd/buildx
bin/docker-buildx version
github.com/docker/buildx v0.6.0-docker d9ee3b134cbc2d09513fa7fee4176a3919e05887

Byt with GO111MODULE=off, it fails on the incorrect import path somewhere in a vendored file:

export GO111MODULE=off
root@5a55ec1c1eed:/go/src/github.com/docker/buildx# GOFLAGS=-mod=vendor go build -o bin/docker-buildx -ldflags "${LDFLAGS}" ./cmd/buildx
vendor/github.com/moby/buildkit/client/client.go:20:2: code in directory /go/src/github.com/docker/buildx/vendor/github.com/moby/buildkit/util/tracing/otlptracegrpc expects import "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/connection/connection.go:33:2: found import comments "go.opentelemetry.io/otel/exporters/otlp/internal/otlpconfig" (options.go) and "go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlpconfig" (optiontypes.go) in /go/src/github.com/docker/buildx/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlpconfig

https://github.com/docker/buildx/blob/v0.6.0/vendor/github.com/moby/buildkit/client/client.go#L20

And looking at the code it imports, that indeed looks to have an (incorrect) import path; https://github.com/docker/buildx/blob/v0.6.0/vendor/github.com/moby/buildkit/util/tracing/otlptracegrpc/client.go#L15

package otlptracegrpc // import "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"

The buildkit vendor in buildx contains an incorrect `//import` comment, which
causes compile to fail if go modules are disabled.
Without `GO111MODULE` set (but with `-mod=vendor`:
echo $GO111MODULE
export PKG=github.com/docker/buildx
export LDFLAGS="-X ${PKG}/version.Version=$(git describe --match 'v[0-9]*' --always --tags) -X ${PKG}/version.Revision=$(git rev-parse HEAD) -X ${PKG}/version.Package=${PKG}"
GOFLAGS=-mod=vendor go build -o bin/docker-buildx -ldflags "${LDFLAGS}" ./cmd/buildx
bin/docker-buildx version
github.com/docker/buildx v0.6.0 d9ee3b134cbc2d09513fa7fee4176a3919e05887
When setting `GO111MODULE=off`, it fails on the incorrect import path in the
vendored file (looks like GO111MODULE=on ignores import-path comments?):
export GO111MODULE=off
root@5a55ec1c1eed:/go/src/github.com/docker/buildx# GOFLAGS=-mod=vendor go build -o bin/docker-buildx -ldflags "${LDFLAGS}" ./cmd/buildx
vendor/github.com/moby/buildkit/client/client.go:20:2: code in directory /go/src/github.com/docker/buildx/vendor/github.com/moby/buildkit/util/tracing/otlptracegrpc expects import "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/connection/connection.go:33:2: found import comments "go.opentelemetry.io/otel/exporters/otlp/internal/otlpconfig" (options.go) and "go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlpconfig" (optiontypes.go) in /go/src/github.com/docker/buildx/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlpconfig
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
release notes: https://github.com/docker/buildx/releases/tag/v0.6.0
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>

@crazy-maxcrazy-max left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@silvin-lubeckisilvin-lubecki left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@thaJeztah
thaJeztah merged commit 093961d into docker:masterJul 28, 2021
@thaJeztah
thaJeztah deleted the bump_buildx_0.6 branch July 28, 2021 12:56
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@thaJeztah@crazy-max@silvin-lubecki