From 9f013f49353f7c8f33b7ae9c1550b8174ccb3b20 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Wed, 23 Aug 2023 00:11:08 +0200 Subject: [PATCH 1/3] vendor: github.com/moby/patternmatcher v0.6.0 - integrate frontend/dockerfile/dockerignore from buildkit full diff: https://github.com/moby/patternmatcher/compare/v0.5.0...v0.6.0 Signed-off-by: Sebastiaan van Stijn --- go.mod | 2 +- go.sum | 4 ++-- vendor/modules.txt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 3b3cf61d5c72..8ef02dd07335 100644 --- a/go.mod +++ b/go.mod @@ -45,7 +45,7 @@ require ( github.com/klauspost/compress v1.16.3 github.com/mitchellh/hashstructure/v2 v2.0.2 github.com/moby/locker v1.0.1 - github.com/moby/patternmatcher v0.5.0 + github.com/moby/patternmatcher v0.6.0 github.com/moby/sys/mountinfo v0.6.2 github.com/moby/sys/signal v0.7.0 github.com/morikuni/aec v1.0.0 diff --git a/go.sum b/go.sum index 8ebc734a67a2..b2c100ea7622 100644 --- a/go.sum +++ b/go.sum @@ -906,8 +906,8 @@ github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQ github.com/moby/buildkit v0.8.1/go.mod h1:/kyU1hKy/aYCuP39GZA9MaKioovHku57N6cqlKZIaiQ= github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= -github.com/moby/patternmatcher v0.5.0 h1:YCZgJOeULcxLw1Q+sVR636pmS7sPEn1Qo2iAN6M7DBo= -github.com/moby/patternmatcher v0.5.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= +github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= github.com/moby/sys/mount v0.1.0/go.mod h1:FVQFLDRWwyBjDTBNQXDlWnSFREqOo3OKX9aqhmeoo74= github.com/moby/sys/mount v0.1.1/go.mod h1:FVQFLDRWwyBjDTBNQXDlWnSFREqOo3OKX9aqhmeoo74= github.com/moby/sys/mount v0.3.3 h1:fX1SVkXFJ47XWDoeFW4Sq7PdQJnV2QIDZAqjNqgEjUs= diff --git a/vendor/modules.txt b/vendor/modules.txt index 3c221ebc8075..1da0a4e8e4c2 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -632,7 +632,7 @@ github.com/mitchellh/hashstructure/v2 # github.com/moby/locker v1.0.1 ## explicit; go 1.13 github.com/moby/locker -# github.com/moby/patternmatcher v0.5.0 +# github.com/moby/patternmatcher v0.6.0 ## explicit; go 1.19 github.com/moby/patternmatcher # github.com/moby/sys/mount v0.3.3 From cb63b9ccba1a90ecf3e4d474825296c3371f565f Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Wed, 23 Aug 2023 00:12:18 +0200 Subject: [PATCH 2/3] replace dockerfile/dockerignore with patternmatcher/ignorefile The BuildKit dockerignore package was integrated in the patternmatcher repository / module. This patch updates our uses of the BuildKit package with its new location. Signed-off-by: Sebastiaan van Stijn --- .../dockerignore/dockerignore_deprecated.go | 12 +++++ .../dockerignore/dockerignore_test.go | 54 ------------------- .../patternmatcher/ignorefile/ignorefile.go | 2 +- vendor/modules.txt | 1 + 4 files changed, 14 insertions(+), 55 deletions(-) create mode 100644 frontend/dockerfile/dockerignore/dockerignore_deprecated.go delete mode 100644 frontend/dockerfile/dockerignore/dockerignore_test.go rename frontend/dockerfile/dockerignore/dockerignore.go => vendor/github.com/moby/patternmatcher/ignorefile/ignorefile.go (98%) diff --git a/frontend/dockerfile/dockerignore/dockerignore_deprecated.go b/frontend/dockerfile/dockerignore/dockerignore_deprecated.go new file mode 100644 index 000000000000..002e46a9e81f --- /dev/null +++ b/frontend/dockerfile/dockerignore/dockerignore_deprecated.go @@ -0,0 +1,12 @@ +package dockerignore + +import ( + "io" + + "github.com/moby/patternmatcher/ignorefile" +) + +// ReadAll is an alias for [ignorefile.ReadAll]. +func ReadAll(reader io.Reader) ([]string, error) { + return ignorefile.ReadAll(reader) +} diff --git a/frontend/dockerfile/dockerignore/dockerignore_test.go b/frontend/dockerfile/dockerignore/dockerignore_test.go deleted file mode 100644 index 86176fdff388..000000000000 --- a/frontend/dockerfile/dockerignore/dockerignore_test.go +++ /dev/null @@ -1,54 +0,0 @@ -package dockerignore - -import ( - "strings" - "testing" -) - -func TestReadAll(t *testing.T) { - actual, err := ReadAll(nil) - if err != nil { - t.Errorf("Expected no error, got %v", err) - } - if entries := len(actual); entries != 0 { - t.Fatalf("Expected to have zero entries, got %d", entries) - } - - const content = `test1 -/test2 -/a/file/here - -lastfile -# this is a comment -! /inverted/abs/path -! -! ` - - expected := []string{ - "test1", - "test2", // according to https://docs.docker.com/engine/reference/builder/#dockerignore-file, /foo/bar should be treated as foo/bar - "a/file/here", // according to https://docs.docker.com/engine/reference/builder/#dockerignore-file, /foo/bar should be treated as foo/bar - "lastfile", - "!inverted/abs/path", - "!", - "!", - } - - actual, err = ReadAll(strings.NewReader(content)) - if err != nil { - t.Error(err) - } - - if len(actual) != len(expected) { - t.Errorf("Expected %d entries, got %v", len(expected), len(actual)) - } - for i, expectedLine := range expected { - if i >= len(actual) { - t.Errorf(`missing line %d: expected: "%s", got none`, i+1, expectedLine) - continue - } - if actual[i] != expectedLine { - t.Errorf(`line %d: expected: "%s", got: "%s"`, i+1, expectedLine, actual[i]) - } - } -} diff --git a/frontend/dockerfile/dockerignore/dockerignore.go b/vendor/github.com/moby/patternmatcher/ignorefile/ignorefile.go similarity index 98% rename from frontend/dockerfile/dockerignore/dockerignore.go rename to vendor/github.com/moby/patternmatcher/ignorefile/ignorefile.go index 2bd9f1c9e451..94ea5a0ef550 100644 --- a/frontend/dockerfile/dockerignore/dockerignore.go +++ b/vendor/github.com/moby/patternmatcher/ignorefile/ignorefile.go @@ -1,4 +1,4 @@ -package dockerignore +package ignorefile import ( "bufio" diff --git a/vendor/modules.txt b/vendor/modules.txt index 1da0a4e8e4c2..009c88573800 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -635,6 +635,7 @@ github.com/moby/locker # github.com/moby/patternmatcher v0.6.0 ## explicit; go 1.19 github.com/moby/patternmatcher +github.com/moby/patternmatcher/ignorefile # github.com/moby/sys/mount v0.3.3 ## explicit; go 1.16 github.com/moby/sys/mount From 376e9c858c8cd75d9d556bc6c0ab79635dd778d0 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Tue, 22 Aug 2023 23:07:41 +0200 Subject: [PATCH 3/3] deprecate frontend/dockerfile/dockerignore This package was moved to github.com/moby/patternmatcher/ignorefile. Mark the alias as deprecated. Signed-off-by: Sebastiaan van Stijn --- frontend/dockerfile/dockerignore/dockerignore_deprecated.go | 2 ++ frontend/dockerui/config.go | 4 ++-- frontend/dockerui/namedcontext.go | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/frontend/dockerfile/dockerignore/dockerignore_deprecated.go b/frontend/dockerfile/dockerignore/dockerignore_deprecated.go index 002e46a9e81f..c30712bf5007 100644 --- a/frontend/dockerfile/dockerignore/dockerignore_deprecated.go +++ b/frontend/dockerfile/dockerignore/dockerignore_deprecated.go @@ -7,6 +7,8 @@ import ( ) // ReadAll is an alias for [ignorefile.ReadAll]. +// +// Deprecated: use [ignorefile.ReadAll] instead. func ReadAll(reader io.Reader) ([]string, error) { return ignorefile.ReadAll(reader) } diff --git a/frontend/dockerui/config.go b/frontend/dockerui/config.go index a83c49940b43..0ae30245ed64 100644 --- a/frontend/dockerui/config.go +++ b/frontend/dockerui/config.go @@ -15,10 +15,10 @@ import ( "github.com/moby/buildkit/client/llb" "github.com/moby/buildkit/exporter/containerimage/image" "github.com/moby/buildkit/frontend/attestations" - "github.com/moby/buildkit/frontend/dockerfile/dockerignore" "github.com/moby/buildkit/frontend/gateway/client" "github.com/moby/buildkit/solver/pb" "github.com/moby/buildkit/util/flightcontrol" + "github.com/moby/patternmatcher/ignorefile" digest "github.com/opencontainers/go-digest" ocispecs "github.com/opencontainers/image-spec/specs-go/v1" "github.com/pkg/errors" @@ -442,7 +442,7 @@ func (bc *Client) MainContext(ctx context.Context, opts ...llb.LocalOption) (*ll var excludes []string if len(bc.dockerignore) != 0 { - excludes, err = dockerignore.ReadAll(bytes.NewBuffer(bc.dockerignore)) + excludes, err = ignorefile.ReadAll(bytes.NewBuffer(bc.dockerignore)) if err != nil { return nil, errors.Wrapf(err, "failed parsing %s", bc.dockerignoreName) } diff --git a/frontend/dockerui/namedcontext.go b/frontend/dockerui/namedcontext.go index 8f004baa92bd..dd44b7d8fe89 100644 --- a/frontend/dockerui/namedcontext.go +++ b/frontend/dockerui/namedcontext.go @@ -11,9 +11,9 @@ import ( "github.com/moby/buildkit/client/llb" "github.com/moby/buildkit/exporter/containerimage/exptypes" "github.com/moby/buildkit/exporter/containerimage/image" - "github.com/moby/buildkit/frontend/dockerfile/dockerignore" "github.com/moby/buildkit/frontend/gateway/client" "github.com/moby/buildkit/util/imageutil" + "github.com/moby/patternmatcher/ignorefile" "github.com/pkg/errors" ) @@ -206,7 +206,7 @@ func (bc *Client) namedContextRecursive(ctx context.Context, name string, nameWi }) // error ignored if len(dt) != 0 { - excludes, err = dockerignore.ReadAll(bytes.NewBuffer(dt)) + excludes, err = ignorefile.ReadAll(bytes.NewBuffer(dt)) if err != nil { return nil, nil, errors.Wrapf(err, "failed parsing %s", DefaultDockerignoreName) }