From 28a2b1da82312640a8068bbd5525524ef04725b1 Mon Sep 17 00:00:00 2001 From: zongz Date: Fri, 20 Sep 2024 14:11:58 +0800 Subject: [PATCH 1/4] fix: fixed an issue where the 'full_name' in kcl.mod.lock changed when there was already a local dependency Signed-off-by: zongz --- pkg/client/client.go | 3 +++ .../test_pkg/kcl.mod.lock.expect | 2 +- .../test_pkg_win/kcl.mod.lock.expect | 2 +- .../test_mod_file_package/test_pkg/kcl.mod.lock | 2 +- pkg/package/modfile.go | 17 ++++++++++------- 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/pkg/client/client.go b/pkg/client/client.go index 493c4e4f..824fcdd9 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -1811,6 +1811,9 @@ func (c *KpmClient) dependencyExistsLocal(searchPath string, dep *pkg.Dependency return nil, err } dep.FromKclPkg(depPkg) + // TODO: new local dependency structure will replace this + // issue: https://github.com/kcl-lang/kpm/issues/384 + dep.FullName = dep.GenDepFullName() return dep, nil } return nil, nil diff --git a/pkg/client/test_data/add_with_git_commit/test_pkg/kcl.mod.lock.expect b/pkg/client/test_data/add_with_git_commit/test_pkg/kcl.mod.lock.expect index 935309f6..d0208ebc 100644 --- a/pkg/client/test_data/add_with_git_commit/test_pkg/kcl.mod.lock.expect +++ b/pkg/client/test_data/add_with_git_commit/test_pkg/kcl.mod.lock.expect @@ -1,7 +1,7 @@ [dependencies] [dependencies.flask-demo-kcl-manifests] name = "flask-demo-kcl-manifests" - full_name = "flask_manifests_0.0.1" + full_name = "flask-demo-kcl-manifests_ade147b" version = "0.0.1" url = "https://github.com/kcl-lang/flask-demo-kcl-manifests.git" commit = "ade147b" diff --git a/pkg/client/test_data/add_with_git_commit/test_pkg_win/kcl.mod.lock.expect b/pkg/client/test_data/add_with_git_commit/test_pkg_win/kcl.mod.lock.expect index 935309f6..d0208ebc 100644 --- a/pkg/client/test_data/add_with_git_commit/test_pkg_win/kcl.mod.lock.expect +++ b/pkg/client/test_data/add_with_git_commit/test_pkg_win/kcl.mod.lock.expect @@ -1,7 +1,7 @@ [dependencies] [dependencies.flask-demo-kcl-manifests] name = "flask-demo-kcl-manifests" - full_name = "flask_manifests_0.0.1" + full_name = "flask-demo-kcl-manifests_ade147b" version = "0.0.1" url = "https://github.com/kcl-lang/flask-demo-kcl-manifests.git" commit = "ade147b" diff --git a/pkg/client/test_data/test_mod_file_package/test_pkg/kcl.mod.lock b/pkg/client/test_data/test_mod_file_package/test_pkg/kcl.mod.lock index c29fb868..32355765 100644 --- a/pkg/client/test_data/test_mod_file_package/test_pkg/kcl.mod.lock +++ b/pkg/client/test_data/test_mod_file_package/test_pkg/kcl.mod.lock @@ -1,7 +1,7 @@ [dependencies] [dependencies.cc] name = "cc" - full_name = "flask_manifests_0.0.1" + full_name = "flask-demo-kcl-manifests_8308200" version = "0.0.1" url = "https://github.com/kcl-lang/flask-demo-kcl-manifests.git" commit = "8308200" diff --git a/pkg/package/modfile.go b/pkg/package/modfile.go index ef687372..56f4a970 100644 --- a/pkg/package/modfile.go +++ b/pkg/package/modfile.go @@ -332,15 +332,18 @@ func (dep *Dependency) FillDepInfo(homepath string) error { // based on the '_' format. func (dep *Dependency) GenDepFullName() string { name := dep.Name - if dep.Source.Git != nil && dep.Source.Git.GetPackage() != "" { - url := dep.Source.Git.Url - if strings.HasSuffix(url, ".git") { - url = strings.TrimSuffix(url, ".git") - dep.FullName = fmt.Sprintf(PKG_NAME_PATTERN, filepath.Base(url), dep.Version) - return dep.FullName + if dep.Source.Git != nil { + name := utils.ParseRepoNameFromGitUrl(dep.Source.Git.Url) + if len(dep.Source.Git.Tag) != 0 { + dep.FullName = fmt.Sprintf(PKG_NAME_PATTERN, name, dep.Source.Git.Tag) + } else if len(dep.Source.Git.Commit) != 0 { + dep.FullName = fmt.Sprintf(PKG_NAME_PATTERN, name, dep.Source.Git.Commit) + } else { + dep.FullName = fmt.Sprintf(PKG_NAME_PATTERN, name, dep.Source.Git.Branch) } + } else { + dep.FullName = fmt.Sprintf(PKG_NAME_PATTERN, name, dep.Version) } - dep.FullName = fmt.Sprintf(PKG_NAME_PATTERN, name, dep.Version) return dep.FullName } From 1dee8985093ecfb337f1906b073ca7523c223185 Mon Sep 17 00:00:00 2001 From: zongz Date: Fri, 20 Sep 2024 15:04:51 +0800 Subject: [PATCH 2/4] fix: rm useless code Signed-off-by: zongz --- pkg/package/modfile.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/package/modfile.go b/pkg/package/modfile.go index 56f4a970..bcbb014f 100644 --- a/pkg/package/modfile.go +++ b/pkg/package/modfile.go @@ -315,7 +315,7 @@ func (dep *Dependency) FillDepInfo(homepath string) error { if dep.Source.Local != nil { dep.LocalFullPath = dep.Source.Local.Path } - if dep.Source.Git != nil && dep.Source.Git.GetPackage() != "" { + if dep.Source.Git != nil { name := utils.ParseRepoNameFromGitUrl(dep.Source.Git.Url) if len(dep.Source.Git.Tag) != 0 { dep.FullName = fmt.Sprintf(PKG_NAME_PATTERN, name, dep.Source.Git.Tag) From b9b02bc02266b3880d6a5c789085ef5d954fe462 Mon Sep 17 00:00:00 2001 From: zongz Date: Fri, 20 Sep 2024 15:08:48 +0800 Subject: [PATCH 3/4] fix: fix test cases Signed-off-by: zongz --- pkg/package/modfile_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/package/modfile_test.go b/pkg/package/modfile_test.go index 4a534dd4..68e9ab73 100644 --- a/pkg/package/modfile_test.go +++ b/pkg/package/modfile_test.go @@ -188,7 +188,7 @@ func TestLoadModFile(t *testing.T) { assert.Equal(t, modFile.Dependencies.Deps.GetOrDefault("name", TestPkgDependency).Name, "name") assert.Equal(t, modFile.Dependencies.Deps.GetOrDefault("name", TestPkgDependency).Source.Git.Url, "test_url") assert.Equal(t, modFile.Dependencies.Deps.GetOrDefault("name", TestPkgDependency).Source.Git.Tag, "test_tag") - assert.Equal(t, modFile.Dependencies.Deps.GetOrDefault("name", TestPkgDependency).FullName, "name_test_tag") + assert.Equal(t, modFile.Dependencies.Deps.GetOrDefault("name", TestPkgDependency).FullName, "test_url_test_tag") assert.Equal(t, modFile.Dependencies.Deps.GetOrDefault("oci_name", TestPkgDependency).Name, "oci_name") assert.Equal(t, modFile.Dependencies.Deps.GetOrDefault("oci_name", TestPkgDependency).Version, "oci_tag") From 94a7149aeb306b2f167a1c154d019a22fa2b0467 Mon Sep 17 00:00:00 2001 From: zongz Date: Fri, 20 Sep 2024 15:26:53 +0800 Subject: [PATCH 4/4] fix: rm duplicate code Signed-off-by: zongz --- pkg/package/modfile.go | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/pkg/package/modfile.go b/pkg/package/modfile.go index bcbb014f..8e43e1af 100644 --- a/pkg/package/modfile.go +++ b/pkg/package/modfile.go @@ -315,16 +315,9 @@ func (dep *Dependency) FillDepInfo(homepath string) error { if dep.Source.Local != nil { dep.LocalFullPath = dep.Source.Local.Path } - if dep.Source.Git != nil { - name := utils.ParseRepoNameFromGitUrl(dep.Source.Git.Url) - if len(dep.Source.Git.Tag) != 0 { - dep.FullName = fmt.Sprintf(PKG_NAME_PATTERN, name, dep.Source.Git.Tag) - } else if len(dep.Source.Git.Commit) != 0 { - dep.FullName = fmt.Sprintf(PKG_NAME_PATTERN, name, dep.Source.Git.Commit) - } else { - dep.FullName = fmt.Sprintf(PKG_NAME_PATTERN, name, dep.Source.Git.Branch) - } - } + + dep.FullName = dep.GenDepFullName() + return nil }