From 711596b813333728f538d9fdd8a28c4f431b457b Mon Sep 17 00:00:00 2001 From: "aravind.est" Date: Wed, 7 Jan 2026 16:58:31 +0000 Subject: [PATCH] refactor - 2: move internal gitutil and builtins packages to pkg/lib/ Signed-off-by: aravind.est --- commands/pkg/init/cmdinit_test.go | 2 +- commands/pkg/update/cmdupdate_test.go | 2 +- internal/errors/resolver/git.go | 2 +- internal/fnruntime/runner.go | 2 +- internal/testutil/setup_manager.go | 2 +- internal/testutil/testutil.go | 2 +- internal/util/diff/diff.go | 2 +- internal/util/fetch/fetch.go | 2 +- internal/util/parse/parse.go | 2 +- internal/util/update/update.go | 2 +- pkg/kptpkg/init.go | 2 +- {internal => pkg/lib}/builtins/pkg_context.go | 14 ++++++++++++-- {internal => pkg/lib}/builtins/pkg_context_test.go | 0 .../testdata/pkg-with-existing-ctx/in.yaml | 0 .../testdata/pkg-with-existing-ctx/out.yaml | 0 .../builtins/testdata/pkg-with-nesting/in.yaml | 0 .../builtins/testdata/pkg-with-nesting/out.yaml | 13 ------------- .../lib}/builtins/testdata/pkg-wo-nesting/in.yaml | 0 .../lib}/builtins/testdata/pkg-wo-nesting/out.yaml | 0 {internal => pkg/lib}/gitutil/errors.go | 0 {internal => pkg/lib}/gitutil/gitutil.go | 5 +---- {internal => pkg/lib}/gitutil/gitutil_test.go | 2 +- 22 files changed, 25 insertions(+), 31 deletions(-) rename {internal => pkg/lib}/builtins/pkg_context.go (93%) rename {internal => pkg/lib}/builtins/pkg_context_test.go (100%) rename {internal => pkg/lib}/builtins/testdata/pkg-with-existing-ctx/in.yaml (100%) rename {internal => pkg/lib}/builtins/testdata/pkg-with-existing-ctx/out.yaml (100%) rename {internal => pkg/lib}/builtins/testdata/pkg-with-nesting/in.yaml (100%) rename {internal => pkg/lib}/builtins/testdata/pkg-with-nesting/out.yaml (80%) rename {internal => pkg/lib}/builtins/testdata/pkg-wo-nesting/in.yaml (100%) rename {internal => pkg/lib}/builtins/testdata/pkg-wo-nesting/out.yaml (100%) rename {internal => pkg/lib}/gitutil/errors.go (100%) rename {internal => pkg/lib}/gitutil/gitutil.go (99%) rename {internal => pkg/lib}/gitutil/gitutil_test.go (99%) diff --git a/commands/pkg/init/cmdinit_test.go b/commands/pkg/init/cmdinit_test.go index 0c82ccdbb5..acb37115b1 100644 --- a/commands/pkg/init/cmdinit_test.go +++ b/commands/pkg/init/cmdinit_test.go @@ -21,9 +21,9 @@ import ( "testing" initialization "github.com/kptdev/kpt/commands/pkg/init" - "github.com/kptdev/kpt/internal/builtins" "github.com/kptdev/kpt/internal/testutil" "github.com/kptdev/kpt/internal/util/man" + "github.com/kptdev/kpt/pkg/lib/builtins" "github.com/kptdev/kpt/pkg/printer/fake" "github.com/stretchr/testify/assert" ) diff --git a/commands/pkg/update/cmdupdate_test.go b/commands/pkg/update/cmdupdate_test.go index 513cc32fdc..3395eafc53 100644 --- a/commands/pkg/update/cmdupdate_test.go +++ b/commands/pkg/update/cmdupdate_test.go @@ -26,10 +26,10 @@ import ( "github.com/kptdev/kpt/commands/pkg/get" "github.com/kptdev/kpt/commands/pkg/update" - "github.com/kptdev/kpt/internal/gitutil" "github.com/kptdev/kpt/internal/testutil" "github.com/kptdev/kpt/internal/testutil/pkgbuilder" kptfilev1 "github.com/kptdev/kpt/pkg/api/kptfile/v1" + "github.com/kptdev/kpt/pkg/lib/gitutil" "github.com/kptdev/kpt/pkg/printer/fake" "github.com/spf13/cobra" "github.com/stretchr/testify/assert" diff --git a/internal/errors/resolver/git.go b/internal/errors/resolver/git.go index e8a7e13d5f..c7745473b0 100644 --- a/internal/errors/resolver/git.go +++ b/internal/errors/resolver/git.go @@ -19,7 +19,7 @@ import ( "fmt" "strings" - "github.com/kptdev/kpt/internal/gitutil" + "github.com/kptdev/kpt/pkg/lib/gitutil" ) //nolint:gochecknoinits diff --git a/internal/fnruntime/runner.go b/internal/fnruntime/runner.go index 6bd280c147..952da98199 100644 --- a/internal/fnruntime/runner.go +++ b/internal/fnruntime/runner.go @@ -26,12 +26,12 @@ import ( "time" "github.com/google/shlex" - "github.com/kptdev/kpt/internal/builtins" "github.com/kptdev/kpt/internal/errors" "github.com/kptdev/kpt/internal/pkg" fnresult "github.com/kptdev/kpt/pkg/api/fnresult/v1" kptfilev1 "github.com/kptdev/kpt/pkg/api/kptfile/v1" "github.com/kptdev/kpt/pkg/fn" + "github.com/kptdev/kpt/pkg/lib/builtins" "github.com/kptdev/kpt/pkg/lib/types" "github.com/kptdev/kpt/pkg/printer" "sigs.k8s.io/kustomize/kyaml/filesys" diff --git a/internal/testutil/setup_manager.go b/internal/testutil/setup_manager.go index 1d8d0ba28f..bf49302847 100644 --- a/internal/testutil/setup_manager.go +++ b/internal/testutil/setup_manager.go @@ -20,10 +20,10 @@ import ( "path/filepath" "testing" - "github.com/kptdev/kpt/internal/gitutil" "github.com/kptdev/kpt/internal/testutil/pkgbuilder" "github.com/kptdev/kpt/internal/util/get" kptfilev1 "github.com/kptdev/kpt/pkg/api/kptfile/v1" + "github.com/kptdev/kpt/pkg/lib/gitutil" "github.com/kptdev/kpt/pkg/printer/fake" "github.com/stretchr/testify/assert" "sigs.k8s.io/kustomize/kyaml/yaml" diff --git a/internal/testutil/testutil.go b/internal/testutil/testutil.go index 1721bf109d..1ad12678d2 100644 --- a/internal/testutil/testutil.go +++ b/internal/testutil/testutil.go @@ -25,11 +25,11 @@ import ( "strings" "testing" - "github.com/kptdev/kpt/internal/gitutil" "github.com/kptdev/kpt/internal/util/addmergecomment" "github.com/kptdev/kpt/internal/util/git" kptfilev1 "github.com/kptdev/kpt/pkg/api/kptfile/v1" "github.com/kptdev/kpt/pkg/kptfile/kptfileutil" + "github.com/kptdev/kpt/pkg/lib/gitutil" "github.com/kptdev/kpt/pkg/printer/fake" toposort "github.com/philopon/go-toposort" "github.com/stretchr/testify/assert" diff --git a/internal/util/diff/diff.go b/internal/util/diff/diff.go index f5bd577408..a5174d011b 100644 --- a/internal/util/diff/diff.go +++ b/internal/util/diff/diff.go @@ -24,13 +24,13 @@ import ( "path/filepath" "strings" - "github.com/kptdev/kpt/internal/gitutil" "github.com/kptdev/kpt/internal/pkg" "github.com/kptdev/kpt/internal/util/addmergecomment" "github.com/kptdev/kpt/internal/util/fetch" "github.com/kptdev/kpt/internal/util/pkgutil" kptfilev1 "github.com/kptdev/kpt/pkg/api/kptfile/v1" "github.com/kptdev/kpt/pkg/kptfile/kptfileutil" + "github.com/kptdev/kpt/pkg/lib/gitutil" "sigs.k8s.io/kustomize/kyaml/errors" "sigs.k8s.io/kustomize/kyaml/filesys" ) diff --git a/internal/util/fetch/fetch.go b/internal/util/fetch/fetch.go index 351d7965a7..3bbcdd0fac 100644 --- a/internal/util/fetch/fetch.go +++ b/internal/util/fetch/fetch.go @@ -27,12 +27,12 @@ import ( "sigs.k8s.io/kustomize/kyaml/filesys" "github.com/kptdev/kpt/internal/errors" - "github.com/kptdev/kpt/internal/gitutil" "github.com/kptdev/kpt/internal/pkg" "github.com/kptdev/kpt/internal/util/git" "github.com/kptdev/kpt/internal/util/pkgutil" kptfilev1 "github.com/kptdev/kpt/pkg/api/kptfile/v1" "github.com/kptdev/kpt/pkg/kptfile/kptfileutil" + "github.com/kptdev/kpt/pkg/lib/gitutil" "github.com/kptdev/kpt/pkg/printer" ) diff --git a/internal/util/parse/parse.go b/internal/util/parse/parse.go index 2048fb2680..075223b983 100644 --- a/internal/util/parse/parse.go +++ b/internal/util/parse/parse.go @@ -23,8 +23,8 @@ import ( "regexp" "strings" - "github.com/kptdev/kpt/internal/gitutil" kptfilev1 "github.com/kptdev/kpt/pkg/api/kptfile/v1" + "github.com/kptdev/kpt/pkg/lib/gitutil" "sigs.k8s.io/kustomize/kyaml/errors" ) diff --git a/internal/util/update/update.go b/internal/util/update/update.go index 2d9b4eabe7..fc913930d8 100644 --- a/internal/util/update/update.go +++ b/internal/util/update/update.go @@ -24,7 +24,6 @@ import ( "strings" "github.com/kptdev/kpt/internal/errors" - "github.com/kptdev/kpt/internal/gitutil" "github.com/kptdev/kpt/internal/pkg" "github.com/kptdev/kpt/internal/util/addmergecomment" "github.com/kptdev/kpt/internal/util/fetch" @@ -33,6 +32,7 @@ import ( "github.com/kptdev/kpt/internal/util/stack" kptfilev1 "github.com/kptdev/kpt/pkg/api/kptfile/v1" "github.com/kptdev/kpt/pkg/kptfile/kptfileutil" + "github.com/kptdev/kpt/pkg/lib/gitutil" "github.com/kptdev/kpt/pkg/lib/types" "github.com/kptdev/kpt/pkg/printer" "sigs.k8s.io/kustomize/kyaml/copyutil" diff --git a/pkg/kptpkg/init.go b/pkg/kptpkg/init.go index d04f392408..48e5e31c14 100644 --- a/pkg/kptpkg/init.go +++ b/pkg/kptpkg/init.go @@ -21,10 +21,10 @@ import ( "path/filepath" "strings" - "github.com/kptdev/kpt/internal/builtins" "github.com/kptdev/kpt/internal/pkg" "github.com/kptdev/kpt/internal/util/man" kptfilev1 "github.com/kptdev/kpt/pkg/api/kptfile/v1" + "github.com/kptdev/kpt/pkg/lib/builtins" "github.com/kptdev/kpt/pkg/printer" "sigs.k8s.io/kustomize/kyaml/errors" "sigs.k8s.io/kustomize/kyaml/filesys" diff --git a/internal/builtins/pkg_context.go b/pkg/lib/builtins/pkg_context.go similarity index 93% rename from internal/builtins/pkg_context.go rename to pkg/lib/builtins/pkg_context.go index 5ccc509c62..f25f8c4daa 100644 --- a/internal/builtins/pkg_context.go +++ b/pkg/lib/builtins/pkg_context.go @@ -75,7 +75,7 @@ func (pc *PackageContextGenerator) Process(resourceList *framework.ResourceList) // This loop does the following: // - Filters out package context resources from the input resources - // - Generates a package context resource for each kpt package (i.e Kptfile) + // - Generates a package context resource for the root kpt package (i.e Kptfile) for _, resource := range resourceList.Items { gvk := resid.GvkFromNode(resource) if gvk.Equals(configMapGVK) && resource.GetName() == PkgContextName { @@ -95,7 +95,11 @@ func (pc *PackageContextGenerator) Process(resourceList *framework.ResourceList) } return resourceList.Results } - contextResources = append(contextResources, pkgContext) + + // Only add package context to the root kpt package + if pkgContext != nil { + contextResources = append(contextResources, pkgContext) + } } } @@ -121,6 +125,12 @@ func pkgContextResource(kptfile *yaml.RNode, packageConfig *PackageConfig) (*yam if err != nil { return nil, err } + + // We only want one "package-context.yaml" in each kpt package + if kptfilePath != kptfilev1.KptFileGVK().Kind { + return nil, nil + } + annotations := map[string]string{ kioutil.PathAnnotation: path.Join(path.Dir(kptfilePath), PkgContextFile), } diff --git a/internal/builtins/pkg_context_test.go b/pkg/lib/builtins/pkg_context_test.go similarity index 100% rename from internal/builtins/pkg_context_test.go rename to pkg/lib/builtins/pkg_context_test.go diff --git a/internal/builtins/testdata/pkg-with-existing-ctx/in.yaml b/pkg/lib/builtins/testdata/pkg-with-existing-ctx/in.yaml similarity index 100% rename from internal/builtins/testdata/pkg-with-existing-ctx/in.yaml rename to pkg/lib/builtins/testdata/pkg-with-existing-ctx/in.yaml diff --git a/internal/builtins/testdata/pkg-with-existing-ctx/out.yaml b/pkg/lib/builtins/testdata/pkg-with-existing-ctx/out.yaml similarity index 100% rename from internal/builtins/testdata/pkg-with-existing-ctx/out.yaml rename to pkg/lib/builtins/testdata/pkg-with-existing-ctx/out.yaml diff --git a/internal/builtins/testdata/pkg-with-nesting/in.yaml b/pkg/lib/builtins/testdata/pkg-with-nesting/in.yaml similarity index 100% rename from internal/builtins/testdata/pkg-with-nesting/in.yaml rename to pkg/lib/builtins/testdata/pkg-with-nesting/in.yaml diff --git a/internal/builtins/testdata/pkg-with-nesting/out.yaml b/pkg/lib/builtins/testdata/pkg-with-nesting/out.yaml similarity index 80% rename from internal/builtins/testdata/pkg-with-nesting/out.yaml rename to pkg/lib/builtins/testdata/pkg-with-nesting/out.yaml index 4b45430bb2..566b37b76a 100644 --- a/internal/builtins/testdata/pkg-with-nesting/out.yaml +++ b/pkg/lib/builtins/testdata/pkg-with-nesting/out.yaml @@ -42,21 +42,8 @@ items: internal.config.kubernetes.io/path: 'package-context.yaml' data: name: order-service -- apiVersion: v1 - kind: ConfigMap - metadata: - name: kptfile.kpt.dev - annotations: - config.kubernetes.io/local-config: "true" - internal.config.kubernetes.io/path: 'subpkg/package-context.yaml' - data: - name: subpkg results: - message: generated package context severity: info file: path: package-context.yaml -- message: generated package context - severity: info - file: - path: subpkg/package-context.yaml diff --git a/internal/builtins/testdata/pkg-wo-nesting/in.yaml b/pkg/lib/builtins/testdata/pkg-wo-nesting/in.yaml similarity index 100% rename from internal/builtins/testdata/pkg-wo-nesting/in.yaml rename to pkg/lib/builtins/testdata/pkg-wo-nesting/in.yaml diff --git a/internal/builtins/testdata/pkg-wo-nesting/out.yaml b/pkg/lib/builtins/testdata/pkg-wo-nesting/out.yaml similarity index 100% rename from internal/builtins/testdata/pkg-wo-nesting/out.yaml rename to pkg/lib/builtins/testdata/pkg-wo-nesting/out.yaml diff --git a/internal/gitutil/errors.go b/pkg/lib/gitutil/errors.go similarity index 100% rename from internal/gitutil/errors.go rename to pkg/lib/gitutil/errors.go diff --git a/internal/gitutil/gitutil.go b/pkg/lib/gitutil/gitutil.go similarity index 99% rename from internal/gitutil/gitutil.go rename to pkg/lib/gitutil/gitutil.go index 6bb7c0c560..25df87b5bf 100644 --- a/internal/gitutil/gitutil.go +++ b/pkg/lib/gitutil/gitutil.go @@ -97,10 +97,7 @@ func (g *GitLocalRunner) RunVerbose(ctx context.Context, command string, args .. func (g *GitLocalRunner) run(ctx context.Context, verbose bool, command string, args ...string) (RunResult, error) { const op errors.Op = "gitutil.run" - fullArgs := append( - []string{"-c", "user.name=Kpt", "-c", "user.email=kpt@kpt.dev", command}, - args..., - ) + fullArgs := append([]string{command}, args...) cmd := exec.CommandContext(ctx, g.gitPath, fullArgs...) cmd.Dir = g.Dir // Disable git prompting the user for credentials. diff --git a/internal/gitutil/gitutil_test.go b/pkg/lib/gitutil/gitutil_test.go similarity index 99% rename from internal/gitutil/gitutil_test.go rename to pkg/lib/gitutil/gitutil_test.go index 3e8b3e3c9e..cf18a290a1 100644 --- a/internal/gitutil/gitutil_test.go +++ b/pkg/lib/gitutil/gitutil_test.go @@ -22,9 +22,9 @@ import ( "testing" "github.com/kptdev/kpt/internal/errors" - "github.com/kptdev/kpt/internal/gitutil" "github.com/kptdev/kpt/internal/testutil" "github.com/kptdev/kpt/internal/testutil/pkgbuilder" + "github.com/kptdev/kpt/pkg/lib/gitutil" "github.com/kptdev/kpt/pkg/printer/fake" "github.com/stretchr/testify/assert" )