From 0195cb7c5172454c96b26e34c76d99ee9c19edf9 Mon Sep 17 00:00:00 2001 From: zongz Date: Mon, 6 May 2024 15:45:25 +0800 Subject: [PATCH 1/6] feat: the checksum calculation during compilation is removed Signed-off-by: zongz --- pkg/api/kpm_pkg.go | 2 +- pkg/api/kpm_pkg_test.go | 13 +- pkg/api/kpm_run.go | 3 +- .../test_data/test_run_pkg_in_path/expected | 37 +- .../test_run_pkg_in_path/expected.json | 2 +- .../test_run_pkg_in_path/test_kcl/kcl.mod | 2 +- .../test_kcl/kcl.mod.lock | 13 +- .../test_run_pkg_in_path/test_kcl/main.k | 4 +- .../test_data/test_run_tar_in_path/expected | 37 +- .../test_run_tar_in_path/expected.json | 2 +- .../test_data/test_run_tar_in_path/test.tar | Bin 2635264 -> 4608 bytes pkg/client/client.go | 347 +++++++++++------- pkg/client/client_test.go | 125 +++---- .../test_pkg/kcl.mod.expect | 2 +- .../test_pkg/kcl.mod.lock.expect | 13 +- .../test_pkg_win/kcl.mod.expect | 2 +- .../test_pkg_win/kcl.mod.lock.expect | 13 +- .../add_with_local_path/expect/pkg/kcl.mod | 2 +- .../expect/pkg/kcl.mod.lock | 8 +- .../kpm_home/{kcl1 => kcl1_0.0.1}/kcl.mod | 0 .../{kcl1 => kcl1_0.0.1}/kcl.mod.lock | 0 .../kpm_home/{kcl1 => kcl1_0.0.1}/main.k | 0 .../kpm_home/{kcl2 => kcl2_0.0.1}/kcl.mod | 0 .../{kcl2 => kcl2_0.0.1}/kcl.mod.lock | 0 .../kpm_home/{kcl2 => kcl2_0.0.1}/main.k | 0 .../resolve_deps/my_kcl_compile/kcl.mod.lock | 8 +- pkg/client/test_data/resolve_metadata/kcl.mod | 2 +- .../test_data/resolve_metadata/kcl.mod.lock | 14 +- .../no_sum_check/kcl.mod.bak | 2 +- .../no_sum_check/kcl.mod.expect | 2 +- .../with_sum_check/kcl.mod.bak | 2 +- .../with_sum_check/kcl.mod.expect | 2 +- .../with_sum_check/kcl.mod.lock.bak | 8 +- .../with_sum_check/kcl.mod.lock.expect | 8 +- .../add_dep/pkg/kcl.mod.lock | 1 - .../run_pkg/pkg/kcl.mod.lock | 1 - .../test_data/test_parse_kcl_mod_file/kcl.mod | 0 .../test_update/test_update_kcl_mod/expected | 8 +- .../test_update/test_update_kcl_mod/kcl.mod | 2 +- .../test_update_kcl_mod_lock/kcl.mod.lock | 8 +- pkg/cmd/cmd_add.go | 3 +- pkg/cmd/cmd_metadata.go | 14 - pkg/cmd/cmd_run.go | 14 - pkg/downloader/downloader.go | 20 +- pkg/oci/oci.go | 2 +- pkg/oci/oci_test.go | 2 +- pkg/package/modfile.go | 31 +- pkg/package/modfile_test.go | 4 +- pkg/package/test_data/load_mod_file/kcl.mod | 2 +- pkg/reporter/reporter.go | 1 + .../add_with_name_1/test_suite.stdout | 3 - .../add_with_name_2/test_suite.stdout | 5 - .../add_with_name_3/test_suite.stdout | 5 - .../add_with_name_tag/test_suite.stdout | 2 - .../add_with_path_1/test_suite.stdout | 2 - .../add_with_path_2/test_suite.stdout | 3 - .../add_with_relative_path/test_suite.stdout | 2 - .../add_with_name_1/test_suite.env | 0 .../add_with_name_1/test_suite.input | 0 .../add_with_name_1}/test_suite.stderr | 0 .../kpm_add/add_with_name_1/test_suite.stdout | 1 + .../add_with_name_2/test_suite.env | 0 .../add_with_name_2/test_suite.input | 0 .../add_with_name_2}/test_suite.stderr | 0 .../kpm_add/add_with_name_2/test_suite.stdout | 1 + .../add_with_name_3/test_suite.env | 0 .../add_with_name_3/test_suite.input | 0 .../add_with_name_3}/test_suite.stderr | 0 .../kpm_add/add_with_name_3/test_suite.stdout | 1 + .../add_with_path_2/test_suite.env | 0 .../add_with_path_2/test_suite.input | 0 .../kpm_add/add_with_path_2/test_suite.stderr | 0 .../kpm_add/add_with_path_2/test_suite.stdout | 1 + .../test_add_with_name/test_suite.stdout | 3 - .../test_kpm_add_git_commit/test_suite.stdout | 3 +- .../test_suite.stdout | 2 - .../test_suite.stdout | 2 - .../test_suite.input | 2 +- .../test_suite.stdout | 1 - .../test_suite.stdout | 1 - .../test_suite.stdout | 1 - .../test_suite.stdout | 2 - .../2.first_add_konfig_dep/test_suite.stdout | 2 - .../3.second_add_konfig_dep/test_suite.stdout | 1 - .../4.third_add_konfig_dep/test_suite.stdout | 1 - .../2.kpm_add/test_suite.stdout | 2 - .../test_data/add_with_name_1/kcl.mod | 5 + .../test_data/add_with_name_1/kcl.mod.lock | 0 .../test_data/add_with_name_1/main.k | 1 + .../test_data/add_with_name_2/kcl.mod | 5 + .../test_data/add_with_name_2/kcl.mod.lock | 0 .../test_data/add_with_name_2/main.k | 1 + .../test_data/add_with_name_3/kcl.mod | 5 + .../test_data/add_with_name_3/kcl.mod.lock | 0 .../test_data/add_with_name_3/main.k | 1 + .../a_kcl_pkg_dep_one_pkg_2/kcl.mod | 8 + .../a_kcl_pkg_dep_one_pkg_2/kcl.mod.lock | 17 + .../a_kcl_pkg_dep_one_pkg_2/main.k | 1 + .../test_data/add_with_path_2/kcl.mod | 5 + .../test_data/add_with_path_2/kcl.mod.lock | 0 .../test_data/add_with_path_2/main.k | 1 + .../test_data/test_kcl/kcl.mod.lock | 7 +- .../pkg1/kcl.mod.lock | 6 +- .../test_kpm_run_with_only_kcl_mod/kcl.mod | 2 +- 104 files changed, 485 insertions(+), 417 deletions(-) rename pkg/client/test_data/resolve_deps/kpm_home/{kcl1 => kcl1_0.0.1}/kcl.mod (100%) rename pkg/client/test_data/resolve_deps/kpm_home/{kcl1 => kcl1_0.0.1}/kcl.mod.lock (100%) rename pkg/client/test_data/resolve_deps/kpm_home/{kcl1 => kcl1_0.0.1}/main.k (100%) rename pkg/client/test_data/resolve_deps/kpm_home/{kcl2 => kcl2_0.0.1}/kcl.mod (100%) rename pkg/client/test_data/resolve_deps/kpm_home/{kcl2 => kcl2_0.0.1}/kcl.mod.lock (100%) rename pkg/client/test_data/resolve_deps/kpm_home/{kcl2 => kcl2_0.0.1}/main.k (100%) rename test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_1/test_suite.stderr => pkg/client/test_data/test_parse_kcl_mod_file/kcl.mod (100%) delete mode 100644 test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_1/test_suite.stdout delete mode 100644 test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_2/test_suite.stdout delete mode 100644 test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_3/test_suite.stdout delete mode 100644 test/e2e/test_suites/kpm/exec_inside_pkg/add_with_path_2/test_suite.stdout rename test/e2e/test_suites/kpm/{exec_inside_pkg => kpm_add}/add_with_name_1/test_suite.env (100%) rename test/e2e/test_suites/kpm/{exec_inside_pkg => kpm_add}/add_with_name_1/test_suite.input (100%) rename test/e2e/test_suites/kpm/{exec_inside_pkg/add_with_name_2 => kpm_add/add_with_name_1}/test_suite.stderr (100%) create mode 100644 test/e2e/test_suites/kpm/kpm_add/add_with_name_1/test_suite.stdout rename test/e2e/test_suites/kpm/{exec_inside_pkg => kpm_add}/add_with_name_2/test_suite.env (100%) rename test/e2e/test_suites/kpm/{exec_inside_pkg => kpm_add}/add_with_name_2/test_suite.input (100%) rename test/e2e/test_suites/kpm/{exec_inside_pkg/add_with_name_3 => kpm_add/add_with_name_2}/test_suite.stderr (100%) create mode 100644 test/e2e/test_suites/kpm/kpm_add/add_with_name_2/test_suite.stdout rename test/e2e/test_suites/kpm/{exec_inside_pkg => kpm_add}/add_with_name_3/test_suite.env (100%) rename test/e2e/test_suites/kpm/{exec_inside_pkg => kpm_add}/add_with_name_3/test_suite.input (100%) rename test/e2e/test_suites/kpm/{exec_inside_pkg/add_with_path_2 => kpm_add/add_with_name_3}/test_suite.stderr (100%) create mode 100644 test/e2e/test_suites/kpm/kpm_add/add_with_name_3/test_suite.stdout rename test/e2e/test_suites/kpm/{exec_inside_pkg => kpm_add}/add_with_path_2/test_suite.env (100%) rename test/e2e/test_suites/kpm/{exec_inside_pkg => kpm_add}/add_with_path_2/test_suite.input (100%) create mode 100644 test/e2e/test_suites/kpm/kpm_add/add_with_path_2/test_suite.stderr create mode 100644 test/e2e/test_suites/kpm/kpm_add/add_with_path_2/test_suite.stdout create mode 100644 test/e2e/test_suites/test_data/add_with_name_1/kcl.mod create mode 100644 test/e2e/test_suites/test_data/add_with_name_1/kcl.mod.lock create mode 100644 test/e2e/test_suites/test_data/add_with_name_1/main.k create mode 100644 test/e2e/test_suites/test_data/add_with_name_2/kcl.mod create mode 100644 test/e2e/test_suites/test_data/add_with_name_2/kcl.mod.lock create mode 100644 test/e2e/test_suites/test_data/add_with_name_2/main.k create mode 100644 test/e2e/test_suites/test_data/add_with_name_3/kcl.mod create mode 100644 test/e2e/test_suites/test_data/add_with_name_3/kcl.mod.lock create mode 100644 test/e2e/test_suites/test_data/add_with_name_3/main.k create mode 100644 test/e2e/test_suites/test_data/add_with_path_2/a_kcl_pkg_dep_one_pkg_2/kcl.mod create mode 100644 test/e2e/test_suites/test_data/add_with_path_2/a_kcl_pkg_dep_one_pkg_2/kcl.mod.lock create mode 100644 test/e2e/test_suites/test_data/add_with_path_2/a_kcl_pkg_dep_one_pkg_2/main.k create mode 100644 test/e2e/test_suites/test_data/add_with_path_2/kcl.mod create mode 100644 test/e2e/test_suites/test_data/add_with_path_2/kcl.mod.lock create mode 100644 test/e2e/test_suites/test_data/add_with_path_2/main.k diff --git a/pkg/api/kpm_pkg.go b/pkg/api/kpm_pkg.go index 357976fb..de6ec116 100644 --- a/pkg/api/kpm_pkg.go +++ b/pkg/api/kpm_pkg.go @@ -64,7 +64,7 @@ func (pkg *KclPackage) UpdateDependencyInPath(pkg_path string) error { if err != nil { return err } - return kpmcli.ResolvePkgDepsMetadata(pkg.pkg, true) + return kpmcli.ResolvePkgDepsMetadata(pkg.pkg, &pkg.pkg.Dependencies, true) } // GetPkgName returns the name of the package. diff --git a/pkg/api/kpm_pkg_test.go b/pkg/api/kpm_pkg_test.go index 2577ede1..3ee5b65d 100644 --- a/pkg/api/kpm_pkg_test.go +++ b/pkg/api/kpm_pkg_test.go @@ -18,7 +18,7 @@ func TestPackageApi(t *testing.T) { assert.Equal(t, err, nil) pkg, err := GetKclPackage(pkg_path) assert.Equal(t, err, nil) - err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, true) + err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, &pkg.pkg.Dependencies, true) assert.Equal(t, err, nil) assert.Equal(t, pkg.GetPkgName(), "kcl_pkg") assert.Equal(t, pkg.GetVersion(), "0.0.1") @@ -29,12 +29,11 @@ func TestPackageApi(t *testing.T) { assert.Equal(t, dep.Name, "k8s") assert.Equal(t, dep.FullName, "k8s_1.27") assert.Equal(t, dep.Version, "1.27") - assert.Equal(t, dep.Sum, "xnYM1FWHAy3m+KcQMQb2rjZouTxumqYt6FGZpu2T4yM=") assert.Equal(t, dep.Source.Oci.Reg, "ghcr.io") assert.Equal(t, dep.Source.Oci.Repo, "kcl-lang/k8s") assert.Equal(t, dep.Source.Oci.Tag, "1.27") - assert.Equal(t, dep.GetLocalFullPath(""), filepath.Join(kcl_pkg_path, "k8s_1.27")) + assert.Equal(t, dep.GetLocalFullPath(), filepath.Join(kcl_pkg_path, "k8s_1.27")) schemas, err := pkg.GetAllSchemaTypeMapping() assert.Equal(t, err, nil) @@ -80,7 +79,7 @@ func TestGetAllSchemaTypesMappingNamed(t *testing.T) { kpmcli, err := client.NewKpmClient() assert.Equal(t, err, nil) - err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, true) + err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, &pkg.pkg.Dependencies, true) assert.Equal(t, err, nil) schemas, err := pkg.GetSchemaTypeMappingNamed("SchemaWithSameName") @@ -104,7 +103,7 @@ func TestGetSchemaTypeMappingWithFilters(t *testing.T) { assert.Equal(t, err, nil) kpmcli, err := client.NewKpmClient() assert.Equal(t, err, nil) - err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, true) + err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, &pkg.pkg.Dependencies, true) assert.Equal(t, err, nil) filterFunc := func(kt *KclType) bool { @@ -155,7 +154,7 @@ func TestGetFullSchemaTypeMappingWithFilters(t *testing.T) { assert.Equal(t, err, nil) kpmcli, err := client.NewKpmClient() assert.Equal(t, err, nil) - err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, true) + err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, &pkg.pkg.Dependencies, true) assert.Equal(t, err, nil) filterFunc := func(kt *KclType) bool { @@ -176,7 +175,7 @@ func TestGetSchemaTypeUnderEmptyDir(t *testing.T) { assert.Equal(t, err, nil) kpmcli, err := client.NewKpmClient() assert.Equal(t, err, nil) - err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, true) + err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, &pkg.pkg.Dependencies, true) assert.Equal(t, err, nil) schemas, err := pkg.GetSchemaTypeMappingNamed("SchemaInMain") assert.Equal(t, err, nil) diff --git a/pkg/api/kpm_run.go b/pkg/api/kpm_run.go index 9f1a521f..2f7dc953 100644 --- a/pkg/api/kpm_run.go +++ b/pkg/api/kpm_run.go @@ -12,7 +12,6 @@ import ( "kcl-lang.io/kpm/pkg/errors" "kcl-lang.io/kpm/pkg/oci" "kcl-lang.io/kpm/pkg/opt" - pkg "kcl-lang.io/kpm/pkg/package" "kcl-lang.io/kpm/pkg/reporter" "kcl-lang.io/kpm/pkg/runner" "kcl-lang.io/kpm/pkg/utils" @@ -242,7 +241,7 @@ func run(kpmcli *client.KpmClient, opts *opt.CompileOptions) (*kcl.KCLResultList return nil, reporter.NewErrorEvent(reporter.Bug, err, "internal bugs, please contact us to fix it.") } - kclPkg, err := pkg.LoadKclPkg(pkgPath) + kclPkg, err := kpmcli.LoadPkgFromPath(pkgPath) if err != nil { return nil, err } diff --git a/pkg/api/test_data/test_run_pkg_in_path/expected b/pkg/api/test_data/test_run_pkg_in_path/expected index 611214d0..b319e355 100644 --- a/pkg/api/test_data/test_run_pkg_in_path/expected +++ b/pkg/api/test_data/test_run_pkg_in_path/expected @@ -1,20 +1,17 @@ -demo: - apiVersion: apps/v1 - kind: Deployment - metadata: - name: nginx-deployment - spec: - replicas: 3 - selector: - matchLabels: - app: nginx - template: - metadata: - labels: - app: nginx - spec: - containers: - - image: nginx:1.14.2 - name: nginx - ports: - - containerPort: 80 \ No newline at end of file +a: + name: flask-demo + replicas: 1 + labels: + app: flask-demo + service: + type: NodePort + ports: + - port: 5000 + protocol: TCP + targetPort: 5000 + containers: + flaskdemo: + image: kcllang/flask_demo:8d31498e765ff67a2fa9933d4adffe067544b2fe + ports: + - protocol: TCP + containerPort: 5000 diff --git a/pkg/api/test_data/test_run_pkg_in_path/expected.json b/pkg/api/test_data/test_run_pkg_in_path/expected.json index 1e5c5931..f3692f1f 100644 --- a/pkg/api/test_data/test_run_pkg_in_path/expected.json +++ b/pkg/api/test_data/test_run_pkg_in_path/expected.json @@ -1 +1 @@ -{"demo": {"apiVersion": "apps/v1", "kind": "Deployment", "metadata": {"name": "nginx-deployment"}, "spec": {"replicas": 3, "selector": {"matchLabels": {"app": "nginx"}}, "template": {"metadata": {"labels": {"app": "nginx"}}, "spec": {"containers": [{"image": "nginx:1.14.2", "name": "nginx", "ports": [{"containerPort": 80}]}]}}}}} \ No newline at end of file +{"a":{"containers":{"flaskdemo":{"image":"kcllang/flask_demo:8d31498e765ff67a2fa9933d4adffe067544b2fe","ports":[{"containerPort":5000,"protocol":"TCP"}]}},"labels":{"app":"flask-demo"},"name":"flask-demo","replicas":1,"service":{"ports":[{"port":5000,"protocol":"TCP","targetPort":5000}],"type":"NodePort"}}} diff --git a/pkg/api/test_data/test_run_pkg_in_path/test_kcl/kcl.mod b/pkg/api/test_data/test_run_pkg_in_path/test_kcl/kcl.mod index d62b7d10..707522fe 100644 --- a/pkg/api/test_data/test_run_pkg_in_path/test_kcl/kcl.mod +++ b/pkg/api/test_data/test_run_pkg_in_path/test_kcl/kcl.mod @@ -4,4 +4,4 @@ edition = "0.0.1" version = "0.0.1" [dependencies] -konfig = { git = "https://github.com/awesome-kusion/konfig.git", tag = "v0.0.1" } +flask-demo-kcl-manifests = { git = "https://github.com/kcl-lang/flask-demo-kcl-manifests.git", commit = "ade147b" } diff --git a/pkg/api/test_data/test_run_pkg_in_path/test_kcl/kcl.mod.lock b/pkg/api/test_data/test_run_pkg_in_path/test_kcl/kcl.mod.lock index 02b0b8e3..935309f6 100644 --- a/pkg/api/test_data/test_run_pkg_in_path/test_kcl/kcl.mod.lock +++ b/pkg/api/test_data/test_run_pkg_in_path/test_kcl/kcl.mod.lock @@ -1,8 +1,7 @@ [dependencies] - [dependencies.konfig] - name = "konfig" - full_name = "konfig_v0.0.1" - version = "v0.0.1" - sum = "XFvHdBAoY/+qpJWmj8cjwOwZO8a3nX/7SE35cTxQOFU=" - url = "https://github.com/awesome-kusion/konfig.git" - git_tag = "v0.0.1" + [dependencies.flask-demo-kcl-manifests] + name = "flask-demo-kcl-manifests" + full_name = "flask_manifests_0.0.1" + version = "0.0.1" + url = "https://github.com/kcl-lang/flask-demo-kcl-manifests.git" + commit = "ade147b" diff --git a/pkg/api/test_data/test_run_pkg_in_path/test_kcl/main.k b/pkg/api/test_data/test_run_pkg_in_path/test_kcl/main.k index ec916bca..3d8edb2c 100644 --- a/pkg/api/test_data/test_run_pkg_in_path/test_kcl/main.k +++ b/pkg/api/test_data/test_run_pkg_in_path/test_kcl/main.k @@ -1,3 +1,3 @@ -import konfig.base.examples.native.nginx_deployment as nd +import flask_demo_kcl_manifests as flask -demo = nd.demo \ No newline at end of file +a = flask.config \ No newline at end of file diff --git a/pkg/api/test_data/test_run_tar_in_path/expected b/pkg/api/test_data/test_run_tar_in_path/expected index 7c33aaad..b319e355 100644 --- a/pkg/api/test_data/test_run_tar_in_path/expected +++ b/pkg/api/test_data/test_run_tar_in_path/expected @@ -1,20 +1,17 @@ -demo: - apiVersion: apps/v1 - kind: Deployment - metadata: - name: nginx-deployment - spec: - replicas: 3 - selector: - matchLabels: - app: nginx - template: - metadata: - labels: - app: nginx - spec: - containers: - - image: nginx:1.14.2 - name: nginx - ports: - - containerPort: 80 +a: + name: flask-demo + replicas: 1 + labels: + app: flask-demo + service: + type: NodePort + ports: + - port: 5000 + protocol: TCP + targetPort: 5000 + containers: + flaskdemo: + image: kcllang/flask_demo:8d31498e765ff67a2fa9933d4adffe067544b2fe + ports: + - protocol: TCP + containerPort: 5000 diff --git a/pkg/api/test_data/test_run_tar_in_path/expected.json b/pkg/api/test_data/test_run_tar_in_path/expected.json index 1e5c5931..f3692f1f 100644 --- a/pkg/api/test_data/test_run_tar_in_path/expected.json +++ b/pkg/api/test_data/test_run_tar_in_path/expected.json @@ -1 +1 @@ -{"demo": {"apiVersion": "apps/v1", "kind": "Deployment", "metadata": {"name": "nginx-deployment"}, "spec": {"replicas": 3, "selector": {"matchLabels": {"app": "nginx"}}, "template": {"metadata": {"labels": {"app": "nginx"}}, "spec": {"containers": [{"image": "nginx:1.14.2", "name": "nginx", "ports": [{"containerPort": 80}]}]}}}}} \ No newline at end of file +{"a":{"containers":{"flaskdemo":{"image":"kcllang/flask_demo:8d31498e765ff67a2fa9933d4adffe067544b2fe","ports":[{"containerPort":5000,"protocol":"TCP"}]}},"labels":{"app":"flask-demo"},"name":"flask-demo","replicas":1,"service":{"ports":[{"port":5000,"protocol":"TCP","targetPort":5000}],"type":"NodePort"}}} diff --git a/pkg/api/test_data/test_run_tar_in_path/test.tar b/pkg/api/test_data/test_run_tar_in_path/test.tar index ce9d9e891e54c721d8afc7377bd6bbbeabda8a23..75568b6eda26a5bf296e18c195cb98b55d163f4c 100644 GIT binary patch literal 4608 zcmeHI%Wi`(5cJt!VR3GZ%~Pt>FNq@LfFUSg5SSiP_20XOJewvxRF0|^UyRqoc)jb{ zrO5tZFyb&o;~Yif%)DTljgc|LgNR4m^F8Jx#$gpA654kSp`q8J16Ov9Dt31c1X!Nm z*`Myg4wt%v{8d}qw4!yBS@p?;CJLr}$6w^%XTdT5@B|?LUKGZNFsoke$^Uu&m#s** zqL3@BL@mh+akT7p0?)$1GAni2C}U)lQSRVZ+4Yweyv$@PRVGzh%6^6OO7z=BChKMa z9E)10G6%vQNZv?MYD2csy6vA`7nYl0P1B}!4Ym@haBuxj0qi^xz}6Fq$RrQqwL{+V zBc91$J!7wbS~cm`)*Zjqf6Pz%51>zQADY3ee_Q!D=lvvKLM{ySmK;}@z&MnQTPSBl zKex#aM@~`ccgoUAQhAbJ3VyK`lx}tto#x<2(Jc*gNSz9Q%LB zy;=X~I<@s()@{>iGAcMRZQHc|lRk;)r#*}X$Z&)~!&Z4&*z#!Rog*+uV2;2Xfk#B( E1M2PkyZ`_I literal 2635264 zcmeFa>2_S#aW?F~##J1Hjzv1?#>7EJDCLDfNWv=)2ms1u-?#y&TG{P@J!@rjA?6O*4C8y`P8e&Tb% ziGv62bDwKO^;`|0L>t9#HY)9BM6-L;{~YuJk^Y zLjQ^5<4XU@Q>RXifltOK$0jB|7mOV!RA%tcIQ=he=JJ)~TVm0URt?hA(NVN_oR zTMQ3{g<`!}t?{xbuc<4%4i;|xVT`Gi|VWkjO^2IQEZ0K^evQ}J2mv0B_#X7rg z)a#qk)aWSw+-R(3^VRZb?rIoS%VFkngQJaVpDY>-j|BA`dk&} zTdL+S9~2t8?f=P>r<(WwsgsBM|Dec`7`JKr20`M3tZvQ6h64Op0imA_%V%qiQfWE) z#j@GD@_kHT#6ON2Wp47XJ$U8e!UNOQuaExa-*5ikua>`gZ~mKCFI@fG3-{(GD_Zr*NyPW?M z6Q?F)_8;v3iLsL>#tzT_Bo+_muWt{1ewh0E@KiATNMkjuRYDj5GUtkw;${4qDONIP za5W5T!y{-}EW=d5rsaGsTQ25n)u_5wmpgr&Wuj3k5>ucvttHEucqfC}tzrPAL<8-$`>Yslajt`PxrvyLlK zzFKf!6bo!R4kjcVoVn$b#^!o0R|x0T6haV(*Kz>ebTE@%*f_V z>T%B3ZJ`ChF7d3t#TFY@a;v5Ae6_Mrt=0_{dR%q6y1L~s)GH_?c)niBY=ot9rffJM z29LSSaokdlW+H>j_|5>a9?+HH0I5toV(bO15`S#;Og3;kB;HVV~ z;e*OibIKAIY6URqRB)*WoX43<*3d7Jdg_#l&ScL%5HR%l$G8K-YxS@~s~Nde)*2fl ztLV}>XxYL4XLL7YT*qNEQXZDiYPt9=DET^?Y)kH(2sS~tQ9nOig?;bAA}$1GM(}iQ zbF;b`jjlJq1gq7mP;XSPk}`Q(6N&_p3)#y6;q#w=jO<`Y>JFRP$`z8DG<@XZ;@pMv z%YSomZsw8Y#ii+mC48e>9=(PhKfJ^5$BB@7{-2$jnLWQayC36ojLzr(#L4l=6Up;` z{N%*M$;0!1zwqB_92)jI{!Bv{Y=pttVjglQ6kA%G_KzCpz(jUzB>2C%N+Va>3MR(J zj<@YZ*8n^NSFc{p=46^|wYEN5(y5}+A$DAvT{yQGOrJj!%v?BsW^M^GVKI2{!a{Iy zadsqFn4Mp^aOUC+KOT`*XXX}{7Umwf$WLT|@oaD=T*GN5axN>MVccP}qTwLgfJPCN z!(1h(W2N=5R*r&Pr4T?WsRtwq)~dAtD#l1q3pZ=kLL<+?M$E$4wor`fwc;xD6*x>_ zASrOlun??n1&cUTDPn_hj9;rZ);EH$1l2YCQAE3HzCoi(GhEeL3t;)`=2oq^zEKaV zSD}{&00|w7^{pV+sBctj#c#=c1}HA2xkr5?R}U~Lv>kM;tjl^09%2B5>$y@eD?_&c z(Wr2N0(}_durQ2bp#U0yNi%;H02lz_7{W}Lnqt0IEsX@Z8iA8PN&@rM0)d;gVtU7{Q8V#FKhK0~kaI|<#yH>A;wGoi7 z1}YJVB52Ov;fbmS`5cJOb_NvvN-$6h%DD=(VX=r|-l&n^Fqjw#u5N^~d{AHJ1)?x^ z95YvoA9 zL%FsiV#w970wm;%AZ23o7@VHuU#~WXgQJ*a7{AqqkHz-{wgqu=rC4ZitXgn3#vcZf z@EV{kMg#;z+YX& z(o}J=1TI$crG}san=q(U>p`hlF4oZ27H`Yutl6%sZs8+Q>%gQ-7@^Y zxuCwa8DI8StF_B5Lg6YtBx|Z1A|LxLP^{QxxDBAFGs`OD;uYks=#3>{N9D}oy>tT_aAv4%fOu0(p)uwLT61+=FgEZfR>pw|tr_AdnA@1UDHkEy z!RFeLEvGl>+AdzhW-3*$9`nRM6V{4XK&UHWK!ijIjF1C3M>-AyUA+N-^oOJ|a+xYJ zh*y!V2sw!H!TsPKl~tTd7?XS9>P8U)2T+=k=&Z*XfGt`JuV5?Uz#$g{HNsH%BLs%4 z%FHS#44LD*$qdF*E{q_41p7HmRxM$}09%*>?f}ff6((ukDv!-*BD8>BN6}{VnXON5 zHnfxB&8blfd9yHMMd4?OwSoh+BoYBA?J40K_TLixr&fYrNM0 zXv_Mfu|sMLQ24eMR@Xe$XLw?nGd`8#Nqoe%tO1_$IRu&w$36)-$UX@PCp=s*nur~V ztHOyY(1RP=0q=Q>2*8nE1?@^(7MYDzh)5$Nl{y%U+$Cfn6LAkY@PJhQ?l+#CEM_qD z;^yphTErC#W#ieqHQ_|xNq@er* z%yL^0y#UG~RtXJnGps`ywCsnYpj5bugL4GTUV)_vl#j4t{+WT+Q(MQcwdz)`RNu<1 z!B~nd0>$o1HBUkAc7(m%l=S{b$!%|2=z#+Xl0R&fbY7fqHdfIWSOlYPmU3Wp_X%Lu zqZZgU~{S#FW7ah1j#=c3FgfhJ=Fng`#4RChmhj)JJ+rnvrboLyi={Qh z5lLeQ!Yzv`JuhB%Rv0Erylz%2U<26$xEET`@}*o6S9@(6V?FS=3=$I#UT#*fd!r~< zE6VO%t3moe6si0v+AE#w2}~S~j^P?yt?;O4JBUAMBu=Y`cq`WYHq#Df511RSQAz;5 zDtSrZ%oJB4Uffxi4d&JY>`pTd9TvrUqwZE-g4A4B5OV8KrXo-hLXHXnu9`>vf#q~- zcy^+UAdJh%R~yuy^lz|#E-2-$MvY>fOD%=a2zdxVAF(Ha0R&x>qPU}ggm~5}hoMq=ty;pJh=d1ajB+|<&)K87 zW4coK7!U^x0YJLweFMi~5lgH8!6y3MHs zO6%Aap3oDb=EcR&RH8xB-hEwq>%m&(&!W_06PM+8> zW{dgV3dINq+LXu!ijBa)=yB~a6kk@10_n6h>*kjUrnhG#xgu$R3W{r9&hW@ww>I81 z-l^8&OloG!SzRyiRxUl8TeuHc;{J=TNfZd&09B0RET|PSWHZQ}dL=7iJT0s-}jL1jpJ#updE%j}64bn~snGlfn#!kZtUCk~hIIv~BW3QOq1UW5bBp zkllcB|eQ?S5s}PTIG+jHpey4F;LTLqQ0dfQDD}*f12a zg25JIl0eov=Z@A9Vx*QfQ5Lg2G+c#){AYf`DoB7jTQ7Tr}xEiGd zIU!e3;|bs*XRvAPu@q&4ixpVYBT*8qX79I$@0IomYABRQEnB~>r_NFVd z0Eh;%iQ!}2T_A|6dSE=O6yh?N<^^;oTztK%Zb8ig3kmmGhS4D~yhmBqz;V7>Ct98N zhKPl6R=3z; z!DW-j4Z(^-g5#|dHMn?c>R00JDvo>O0yzm$XcZ8UbBVr8#b*d954NF}AS!pvBSgd- zhnlJ{W)Za1!qVk58d|-=+7;ULso>yGU=i$1zpI#ao$6>wXgS4SQ){rP;0ht$BOd4o zVw5ADmwpX>p?jLp0L#!j@?cIQS`1WbsU`2a?ZM7=H(5CZ>dGbGw2K`9x)V;p{|v(! z@18hm(CVwuKViVxa+|<`3igx>tk^|(#qwf6s3?~gfNQK^Bc5Pp@6%##ZjW$n6at!b z%xWAB6_xaJz*7Px+T0+kkHA@n;)Ty}C) zQcl5*qNtJ!QG6d+3atf8b4zDuM{p#a&&-{FaAEHJL$l{*&o7Mx=VljX9tM=t56qpN zTl%`N(1UYJ=Vuo+d|=v)F+aTkW%J_M>4jka;==re#aTUV)mvDiX94hU0yjnarzq76 z2$AHiFv%{UT&=nZ4-B|L7Q6=TViWWLA6kXpvW;ANNTVDKx5&K2at%baVssf|J&LOE z-qO?}dsBqE@w18_7!tubTCLpjn^1Z0-Yi%ICVsv8gZIuBbE~i}llkT<*rP#+03b@P zf{}gr2={rM&>$Xe+LrXzp$+DPmkC~JN4%gCu9u3?zVhL*5sEsRpm7_=s+|ePj?z$} z-+|wcs-i%feyNCPRNk=(+&b+M&TnC-1mO8Pc@~-qrCiJYQ0bXCKG1g6YB?of12k2I zKuMcpgewG&UmtthkN_VX5N+Zb>rJ3&jtzy&fVvWZ24mBuL$08Ma_@66T0{Xi_6Dp< zYE1{ZE%C)`tU||AQ?Q8>#>f~-Evy4}2_Zak6prRc(%URdcfeP&!E~OcOYS=>c?svV z*X&}O;;S35-ZX7jg9|5F(YZwrqo{+ga75G#DvdSlo7-a zH@b)tYAF_QbHEEW zU|G~p@;jZ&kp{DV^|&j7Q;paJ195- zD!zk*M;X439ouFQkyO|#(H7+SHDeW4yC46+RX!Vh6&*_v9aP$yra@R>tQ4n>kYokl zK(JE16`81NCS(!V9@5IXRsoeBH=XogEimSDn#$;H0=ztOup=lMjqHlu{4vJY%^1~H zu}8-3#I7M&*BXg~E+MBT@;QSTR_S7{sU0*HN|1Ej!^E6%rB3?;8Lh77!NaQK4Zs4a z8u%X7@4zVDatB?+(L;*ZD;otN{}#0dv30n7RMs0{IH&|T7DUyJE1VGST$k6^qtP>>U3;HZh50PhbCu`M)PmGXM9m{?9%Upu;eXrh^B! zl%b#n$?rqT(3LVYB&1}Sk1{o;sMWKZTSG%g_1c^Yf+I(Q-H-qAlP90u`RUu+@4mJD z!++g*<;k5l|0S3@HuU-b197++WM+eV{_avP^R4O3-!5k!`^%~9m;V~wvS0q<7w-uy zg9ZN(9AzAb0pS}^>LvB}9xlPAl6k(nHeKR-{1gyz%BI|Mu+8)7N)idpek}RT;7i0KfR{ z=4C%F_Z8FqFQ&M_oqxH`zRy0n{npQJzWUboM=#%a_nDhN`+k>kzWC*#p(DWqjUvm-g0DV2y)R)><$*m~$;GJ12X;g)7pr)oJWG{dPqpnR|jgyJND&bBD|-w&VNdHbd9 zUws$HdJ;&fA%Vys88g^<>XqH=PqZ|WQc)SiNyEp;niIA?(#29q_Qj*b;W1Dhp07%b z>hC^r^Ti+B{P4%yzxye=%7DYthFT;T94=rWFq=hS*ysNbBF{6mwIDmnY`H7t)()gY zq6acN3PCo=h<=1^!3N7RWB`V~hIl6g13|ks^Doi>7oBZ#GPwl+$;*IxzvGbGv-hJ}l zwtx7Wn;*Wi`}U9i_rs@SD??$eQ5kU5cgNRxEW&*ieCbO;sS;$OAPY=nTiVBFwu`!F zv4KlX6tM;nBiCTfhNs$3ArMAiz^+6zrGA@O?Q`$$e)N%FZFhi$kjYuy$Z7L-5POGT z84RSJ{|mFzXU@%LzO|7p??+|8&gcL5@e`;8nLPhbp#tRL`F|^z^hofCRO}lXy7Yxh zH(&Zq@KCY-aAOtb5?of1lLsfk&eK2M{_y%^M^g&<`D|fi_7>K|Y;Y2|ueEjs4v3*kyU+Z7_wC<3c2rp#e0>a}`qGVee+R|IeyR+Q z=8BR4%1!Xd%vlIo&9M$XdE&X7AH9Wfc7JmnA{M>3Uw{ARo7Z>W`qR!UAL+Ny5VoI# zs&E~L&-QnJv;F>$|9t(sc1TF{8}Gfo{ldR*f9Gd`8T1@5UE;~f*?dBLfYCqs=kH@a zjQHp4-?{P8$0QHn33gt1VfW*A@UhOg^P4xf|LGZwu>IEecpCia)tevuBiimf^+(X{ z=3Bqte(pcTkA4iT ziK9LBqZ=RmcKh9DcV2t-lj}d*{rJi4cYbi=gMYdC#&>pJ{lm@ozO(c5@3NyzsvvE@ z^BtUj+fTi7^MlucK=&;$fdOxP@ci!eXK%iBef!y0blw|(`n6&}hedmwe%n9zM?p9y z+5W}PZhr8C-5-8;`-Qi+U-<6s_3!=fhd;aY=j%T-lm6(A0)TXHB zqftpiqkCf%j@Pg>%KPw@Vt5sNf-_q+!E z5mZRPFf_EXvVvrvjiKz&|Gf0t|Gab^|MN;QltcS-Bv9P>FAb93eHS>`{?SJ_KKMm! z2*=&FKmNrK!nO*}?%RLZ`RVhqF0g+gl|R;Ax@^Dy62{;C_{Eza{6Uup3J~i*|K-k0 ze*#mgPOZ&=c;QQJuCrl=?_wmsx_qgazYHr}6lPFR0FE8l_FLKj!5KsXY_)vjDh;%J zL#ZS>qx zTP0Hqswk$t`Rb2$o;Pf~Bc0oH(_(BoEhn|5T7upG`u@)QFDlkMj$nMmHI4ygQzcio z&K8;U$HVa>KSzQa@Be7~`PXm0^m?363<$cRlS{FqY+hbB%i}}BWh>sdxtjP7V3(~1QF!D1S9ibvvz^y|3+%c1v~qL22j>&1V@UDJlQ%y2Z){x1 zkZlnd+`ex-x%>7HjBtA6J#(}DhzHw^4}Q7*!Vk??PhbD!wd*(j^z+^SdWF(zXsDAw z)%mn%To!f}t~kGuTDdt2Wdm70rVN=%*6ok~{gdmj;{@CO^)s0L`CmeI0{-n6e{|!c zH@1KO^37ko&lBROZ)1U!thk^1BT~=k8}B~9{ltIYeD&S!x8EbDLQc(`oeQ@A_{;4l z{%CeQd%uO#>P4dY-G74&+kNxd?bmS9dS=7{#J*<{BbQldRKyzUMBgXh`_0Xd{sY69 z6YrfL-2CACH$Qk%ae{tS2R?dE4}I+gjbfUK3YuaDO@h7UP}lEuNSvld0LvkUk#xvU zUj4!Li%-SJ+j;G|?H|60Q5R*G>VVV+Ui=fOo z_-i#BMKUL&XbPh$XR?=%$svA(x8kRtgI04BddtsW9~uH>lqGJw_YA&qXa}?6iVU?1 zObkZZeiAJHBnW-uqu1oX9f$g3?$-*W;et=tq{L^di#n0{N$y#cE9)0_77jh zs&?Q0)z0^xxbg9uJKuSG_w7GIG5O@DPe2oW2Df35Tqp9_)nTFe<}W*y1czvC8L_me zz!TQ#+0Nj5IwnWWJzKFiLA6oG{qQ=@2&3v786mhNoNqr#BiD03Q8h~uN#)|Hcfg0+ zPyJx~kNu_xJ4TBeA3SsO0}==*63IdZEV#5J(W`50 z+j)^*@1ieaRQ^*(XIG{IjfK!0+dlkFm=AV9n#eMw5CvO_FiEi!qj@DKL?!{+e zJ8AujI`A()+J5&}w7QT*Q5Y*weT(uzBnXHZK=SPT(`%4OyC45_=Re*=Yd18-lq}t< zaIpSxqyVbo_6P4PQ0xiA%^!b{WoS>w_;wTOQ95LBY(Ev$6U`#@^x&u1qFxz}S~bP& zrxl~8f*Z(zV!Cx(2gC_hpa$Y9CNXy_0XEHzci-Rn@FmFDPu}DiAwccE{Y#_nVpsg` zMg1KNg0^yKc) z?I(V_{lxE`3xgYuD%Lv)q^ExkE;C3KC7^j0L!it~{ zYnOEaO|q!Cx}ajt-@gpciquJ{2x-F3%KYaR(h5($(pSzWw6! zB*63U_(KCH!wWys9$>QIoZXUc)2h`Unk{d%yw$y?t4SqD3q^o&m_qxbhtlBY??1Tl z;fFWg2gG_kR7wYn7iVS|vIv6={WBT{!8mE~K4}Ugc0vQ(r$2^O5ruT8D zB^GQb__EROZO<#?Q|B4yOQX`1Iv0R0`)%^y8N|>q<*s=QbcjYV&>2^Z+K=RaBVK^8 z*cjBA?F{Hn8H(Uy-($+^AGVSC*Nidr*TESHoVMD)w!>}q0nB?8rJGAObaoBgr)aCAbAYLou!*lK8bF&8QquWpc3l zhc|CN`<7~zw36W_E9wgDq`Pmux%=zy?>_szA)MrZL2;tG(Dv{DY3KT{adPgw`mxGr zblds)$MKfizxxTSmD|@pgusN=69FvPR){HG!aj?)+x^Zy+457dgD|bz_TFd})(EUw@7# z)|{020Oi{@djBQpY1_{}vHjw|JFQF=c^)kgY#Azp;0FAu)VTYv1i3JhA=Od#-P4M{T3+4WeFoZ|6T>cD*>GEZi|Au2^U=gz6TG1G7*)!c~FZ zeH(YNH&t&^aj28){fisz`Pa!3^9#5e?0)S+?;~?Dgo>l6`{d340s}!y!En28 zy}$d%*LUCjw;>d5&|$u0W`RlIZNU31FK<8jo%R)juZftVfS?oEMNq|p-EM{7X20g> z;Q!kn=N|y=;{Q82cCxAd_xQ=t!2XMKM&bSXxm{kYlrhoDRbM8aAxWoW7qjrOJj0poQMJHx>GSb;!b z4n~cmkBBXs@#eAb&YEya){s+#BcPfA#Fs0Q$r~AKWFX!^MBy{9GdaAN%Mfvi_+}|z z0N5o$R_D{(FawS>$aoczrmI^7C_6NVe0?qFfGAB|@-?TEL8iFFWvXi#EHtxPy@pyX zC@+c&Ol}qFw~X*lLf~qsWrvo48du2-w~?ACk(*UCVPvyn4*HOTm*_;SzLbp8(9>{@ z0|sa04O6D& zV@rV~^(^O*wOG)Wn4L_h&e8i zgVHDj2Gry*Dqow|XonftbBSG+DbdTNV#5kVgGAEIZxuCvEej;xgNcf8JcnY^v{Ppw z&U!7IoS3~pVwY9M38z-kEf>X5Zc$PlrI*>Dn~G8es+h&mQ8Wn4zu�$3 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

wAtv7@$}?*L+lk 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

W=v-3KWm^qGo0XZ%f!zB4Z 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%0AOEFbJy@ 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 z z5@>KFl~yfQqSL=ZijT?rX;+k&FT>B~T5RhJD%oVj{xs!={HZ=>;`T-$Aa}I~fkgW_ zZ+kcQ|L_0#f8qKDldP0}F!kSbk})3WCF>Bvj7??h>%z0mP2Sjo@ND2*teS{cC z?AsXmSGq{6hG=&Dc9|%VHv$3jbd>w$z5U&M8q7W+z35tHz-P&OjysD|l@wjls6eXX z{RN5mCEj2oAO#Rgyj~G1f7fsQEZLP`ti9u0@m%Iyq%3!Vz1Cwa3xQS8|8{zPGPqz7 z;K|hq9F#7zydU5K`rm35RhRUmbEBT2evIIgu6rOl7_LS)$7`VS@i`~q%9##j`l zBuJaON2ulJRFo+7c*G|2`V2A)W((x(iwwzN?tu(n2*t(s$-n+3*=@;7+EMuAuYXB4 zqDRt8;WK?^AFk;@y_#wg0MTusL1~O04^R?LAh-AQBW#}`w{LB6cU?xp%6xZi?mz>BUV>z-uoD&5^fVn zgF*WH&3FRKWFDVV^2YL-^`>ypZ!q ze(UHp!t>N|#m1QQ8kQpF7Jh&H`W1W{P%+DRDuqhCB9o;xa}KC@p0Mz1(}?F^VpU6BA_!F1^p>lKG&H~>Rt2ZV>_JybW{kId}e z$h8Q0>g0UjqBC3&;|LVs*nS3~oZjKmt0|onD&rnlM{ZN|%@vrisW{Fv00p`!C?77b z;M+u9mh1$MAH2`7D(07CGE=MEyonT=&vy0&Lrk*IHyEF-YVACH5)E7D2*Ku2dXZsI z^<8cC3VJgHuXDe_wa_DKc!B%GO)rp&$v`(KuH`79J0K2~I0 z>r;nXD>)$^+k-b3jTjl27m?p|IXgiQvB!BgLVA>ot&R9lmGuPJp(g`Q2+5J zETAASqs+K}Lni6ld~0V21e+W?WSg_FS$cFt4awd8{282-jjbelKtLl+L~h&O63jcb z;i-KHEFs8#zDB0lW*pgDiC}< zINEo`!-enXb2)`0g6{)!p^z>PsoSOFxedTKp2_k&WU*lmj(_+~C^}a`|IOfdLbGq) z@}ned5&hpjDCGa!g-K}b|8Xbu{}1<^0r8-#KH5x!`9ATcW-smIA;+fy7rtBzYK< zkOokpAzDLfYa;joT+C&kWEU5pzotfz=C9MqIarHd(C1l)Y9sNY3P(@b(YrDBA;}C|h)OrOEj&9Z` z3?9>Iqg6{jS;hTVsydo+`xoB-);LZJ`hPM0-^QDS>u(SI?PmdJGWX>0 znD9Y3D}=jug)y#$2c)g$ta$K0{vuhc?7#me`#34!14k>KB zPWz~ZH{xaexV^cvv$<_NdA@j*W-xotItj@m)cb)ZjA3VwnINt|=x<0m5M|95TE=nV|0jIr4Nrr~1HfN8Fw?H^fdL=x%fa`W9B?{5^6osBPP|}Hpa)Ra&6BRs;D>2a# z0~X#{K!VUlAx$j$&Ow`A4+3-UA0!wA)}`jH9gt>i4V^+o8Wvy^Fta}`;Erb<7sc9s zSM;ZV7mb3NN(RCc(Ljk_umZ2Mmj;NvCiYkf{)a$)!ZKthFl~#Uex4L8;Qw0N2ipbz zubth!?KS^ba|@UH>`USQiqQ!XAt(ehL|T3d{!j^Y25rB8HKnUN5AX448^UmUPeB#oDzqPU&)98jd3jw z^^l9r%>^%hiQE3Y7EigzvIy?+VJzw&B+T{jH|qO-M1)Hx|AUR_awe1btp}$euQ(i z3Z)Q{=Yt+BCgY6x4e5~RsDO2*Mgm9lf?(p5>>@d-Bmn0M=sIRwU~AJqbd*3bA+!g7 zH@0|FyN^a>#>IcmZApSe7SQDXC(5%kmzw#}X;n=zk~f3gHyH{+F*_f`5~J1#+YxV8 z1&AgTWZWm<@>4UH-a|}XsBt<%`0XeiT@xg+Bd_iZEKDfiPGf<(09z76b?hWdlb@1$ zem7gEcOcL@5n`sWr0Ec(q%fxjO<$XPr%SC(v6ZZa)QFZ36)toEvnwX96Z&`U

! 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%0AViWlK~OyeeM(C+=q8F%lie?Mxr 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 diff --git a/pkg/client/client.go b/pkg/client/client.go index 2b7ff97a..66dfbf01 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -6,7 +6,6 @@ import ( "io" "os" "path/filepath" - "reflect" "strings" "github.com/BurntSushi/toml" @@ -167,12 +166,67 @@ func (c *KpmClient) LoadModFile(pkgPath string) (*pkg.ModFile, error) { } func (c *KpmClient) LoadLockDeps(pkgPath string) (*pkg.Dependencies, error) { - return pkg.LoadLockDeps(pkgPath) + deps, err := pkg.LoadLockDeps(pkgPath) + if err != nil { + return nil, err + } + + for name, dep := range deps.Deps { + sum, err := c.AcquireDepSum(dep) + if err != nil { + return nil, nil + } + dep.Sum = sum + deps.Deps[name] = dep + } + + return deps, nil +} + +// Check whether the dependencies in kcl.mod.lock are the same as the dependencies from the source. +func (c *KpmClient) AcquireDepSum(dep pkg.Dependency) (string, error) { + // Only the dependencies from the OCI need can be checked. + if dep.Source.Oci != nil { + if len(dep.Source.Oci.Reg) == 0 { + dep.Source.Oci.Reg = c.GetSettings().DefaultOciRegistry() + } + + if len(dep.Source.Oci.Repo) == 0 { + urlpath := utils.JoinPath(c.GetSettings().DefaultOciRepo(), dep.Name) + dep.Source.Oci.Repo = urlpath + } + // Fetch the metadata of the OCI manifest. + manifest := ocispec.Manifest{} + jsonDesc, err := c.FetchOciManifestIntoJsonStr(opt.OciFetchOptions{ + FetchBytesOptions: oras.DefaultFetchBytesOptions, + OciOptions: opt.OciOptions{ + Reg: dep.Source.Oci.Reg, + Repo: dep.Source.Oci.Repo, + Tag: dep.Version, + }, + }) + + if err != nil { + return "", reporter.NewErrorEvent(reporter.FailedFetchOciManifest, err, fmt.Sprintf("failed to fetch the manifest of '%s'", dep.Name)) + } + + err = json.Unmarshal([]byte(jsonDesc), &manifest) + if err != nil { + return "", err + } + + // Check the dependency checksum. + if value, ok := manifest.Annotations[constants.DEFAULT_KCL_OCI_MANIFEST_SUM]; ok { + return value, nil + } + } + + return "", nil } // ResolveDepsIntoMap will calculate the map of kcl package name and local storage path of the external packages. func (c *KpmClient) ResolveDepsIntoMap(kclPkg *pkg.KclPkg) (map[string]string, error) { - err := c.ResolvePkgDepsMetadata(kclPkg, true) + err := c.ResolvePkgDepsMetadata(kclPkg, &kclPkg.Dependencies, true) if err != nil { return nil, err } @@ -183,16 +237,49 @@ func (c *KpmClient) ResolveDepsIntoMap(kclPkg *pkg.KclPkg) (map[string]string, e } var pkgMap map[string]string = make(map[string]string) for _, d := range depMetadatas.Deps { - pkgMap[d.GetAliasName()] = d.GetLocalFullPath(kclPkg.HomePath) + pkgMap[d.GetAliasName()] = d.GetLocalFullPath() } return pkgMap, nil } +// Get the search for the dependency. +// 1. in the KCL_PKG_PATH: default is $HOME/.kcl/kpm +// 2. in the vendor subdirectory of the current package. +// 3. the dependency is from the local path. +func (c *KpmClient) getDepStorePath(dep pkg.Dependency, isVendor bool) string { + if dep.IsFromLocal() { + return dep.GetLocalFullPath() + } else { + if isVendor { + return filepath.Join(dep.HomePath, "vendor", dep.GenDepFullName()) + } else { + return filepath.Join(c.homePath, dep.GenDepFullName()) + } + } +} + // ResolveDepsMetadata will calculate the local storage path of the external package, // and check whether the package exists locally. // If the package does not exist, it will re-download to the local. -func (c *KpmClient) ResolvePkgDepsMetadata(kclPkg *pkg.KclPkg, update bool) error { +// Since redownloads are not triggered if local dependencies exists, +// indirect dependencies are also synchronized to the lock file by `lockDeps`. +func (c *KpmClient) ResolvePkgDepsMetadata(kclPkg *pkg.KclPkg, lockDeps *pkg.Dependencies, update bool) error { + // In the face of dependencies that do not exist locally, a re-download will be triggered, so a lock is required + // acquire the lock of the package cache. + err := c.AcquirePackageCacheLock() + if err != nil { + return err + } + + defer func() { + // release the lock of the package cache after the function returns. + releaseErr := c.ReleasePackageCacheLock() + if releaseErr != nil && err == nil { + err = releaseErr + } + }() + var searchPath string kclPkg.NoSumCheck = c.noSumCheck @@ -202,10 +289,6 @@ func (c *KpmClient) ResolvePkgDepsMetadata(kclPkg *pkg.KclPkg, update bool) erro if err != nil { return err } - searchPath = kclPkg.LocalVendorPath() - } else { - // Otherwise, the search path is the $KCL_PKG_PATH. - searchPath = c.homePath } // If under the mode of '--no_sum_check', the checksum of the package will not be checked. @@ -248,68 +331,62 @@ func (c *KpmClient) ResolvePkgDepsMetadata(kclPkg *pkg.KclPkg, update bool) erro } for name, d := range kclPkg.Dependencies.Deps { - searchFullPath := filepath.Join(searchPath, d.FullName) - if !update { + searchPath = c.getDepStorePath(d, kclPkg.IsVendorMode()) + depPath := searchPath + // if the dependency is not exist + if !utils.DirExists(searchPath) { if d.IsFromLocal() { - depPkg, err := c.LoadPkgFromPath(d.GetLocalFullPath(kclPkg.HomePath)) - if err != nil { - return err - } - d.FromKclPkg(depPkg) + // If the dependency is from the local path, and it does not exist locally, raise an error + return reporter.NewErrorEvent(reporter.DependencyNotFound, fmt.Errorf("dependency '%s' not found in '%s'", d.Name, searchPath)) } else { - d.LocalFullPath = searchFullPath - } - kclPkg.Dependencies.Deps[name] = d - } else { - if utils.DirExists(searchFullPath) && (c.GetNoSumCheck() || utils.CheckPackageSum(d.Sum, searchFullPath)) { - // Find it and update the local path of the dependency. - d.LocalFullPath = searchFullPath - kclPkg.Dependencies.Deps[name] = d - } else if d.IsFromLocal() && !utils.DirExists(d.GetLocalFullPath(kclPkg.HomePath)) { - return reporter.NewErrorEvent(reporter.DependencyNotFound, fmt.Errorf("dependency '%s' not found in '%s'", d.Name, searchFullPath)) - } else if d.IsFromLocal() && utils.DirExists(d.GetLocalFullPath(kclPkg.HomePath)) { - depPkg, err := c.LoadPkgFromPath(d.GetLocalFullPath(kclPkg.HomePath)) - if err != nil { - return err - } - d.FromKclPkg(depPkg) - err = c.AddDepToPkg(kclPkg, &d) - if err != nil { - return err - } - } else { - // Otherwise, re-vendor it. - if kclPkg.IsVendorMode() { - err := c.VendorDeps(kclPkg) - if err != nil { - return err + // redownload the dependency to the local path. + if update { + // re-vendor it. + if kclPkg.IsVendorMode() { + err := c.VendorDeps(kclPkg) + if err != nil { + return err + } + } else { + // re-download it. + err := c.AddDepToPkg(kclPkg, &d) + if err != nil { + return err + } + depPath = filepath.Join(c.homePath, d.GetPkgPathName()) } } else { - // Or, re-download it. - err := c.AddDepToPkg(kclPkg, &d) - if err != nil { - return err - } - } - // After re-downloading or re-vendoring, - // re-resolving is required to update the dependent paths. - err := c.ResolvePkgDepsMetadata(kclPkg, update) - if err != nil { - return err + continue } - return nil } } + + // If the dependency exists locally, load the dependency package. + depPkg, err := c.LoadPkgFromPath(depPath) + if err != nil { + return reporter.NewErrorEvent( + reporter.DependencyNotFound, + fmt.Errorf("dependency '%s' not found in '%s'", d.Name, searchPath), + // todo: add command to clean the package cache + ) + } + d.FromKclPkg(depPkg) + err = c.ResolvePkgDepsMetadata(depPkg, lockDeps, update) + if err != nil { + return err + } + kclPkg.Dependencies.Deps[name] = d + lockDeps.Deps[name] = d } - if update { - // Generate file kcl.mod.lock. - if !kclPkg.NoSumCheck { - err := kclPkg.LockDepsVersion() - if err != nil { - return err - } + + // Generate file kcl.mod.lock. + if !kclPkg.NoSumCheck { + err := kclPkg.LockDepsVersion() + if err != nil { + return err } } + return nil } @@ -359,7 +436,7 @@ func (c *KpmClient) UpdateDeps(kclPkg *pkg.KclPkg) error { func (c *KpmClient) ResolveDepsMetadataInJsonStr(kclPkg *pkg.KclPkg, update bool) (string, error) { // 1. Calculate the dependency path, check whether the dependency exists // and re-download the dependency that does not exist. - err := c.ResolvePkgDepsMetadata(kclPkg, update) + err := c.ResolvePkgDepsMetadata(kclPkg, &kclPkg.Dependencies, update) if err != nil { return "", err } @@ -691,7 +768,7 @@ func (c *KpmClient) AddDepWithOpts(kclPkg *pkg.KclPkg, opt *opt.AddOptions) (*pk // AddDepToPkg will add a dependency to the kcl package. func (c *KpmClient) AddDepToPkg(kclPkg *pkg.KclPkg, d *pkg.Dependency) error { - if !reflect.DeepEqual(kclPkg.ModFile.Dependencies.Deps[d.Name], *d) { + if !kclPkg.ModFile.Dependencies.Deps[d.Name].Equals(*d) { // the dep passed on the cli is different from the kcl.mod. kclPkg.ModFile.Dependencies.Deps[d.Name] = *d } @@ -766,22 +843,22 @@ func (c *KpmClient) VendorDeps(kclPkg *pkg.KclPkg) error { if len(d.Name) == 0 { return errors.InvalidDependency } - vendorFullPath := filepath.Join(vendorPath, d.FullName) + vendorFullPath := filepath.Join(vendorPath, d.GetPkgPathName()) // If the package already exists in the 'vendor', do nothing. - if depExisted(vendorFullPath, d) { + if utils.DirExists(vendorFullPath) { continue } else { // If not in the 'vendor', check the global cache. - cacheFullPath := filepath.Join(c.homePath, d.FullName) - if utils.DirExists(cacheFullPath) && check(d, cacheFullPath) { + cacheFullPath := filepath.Join(c.homePath, d.GetPkgPathName()) + if utils.DirExists(cacheFullPath) { // If there is, copy it into the 'vendor' directory. err := copy.Copy(cacheFullPath, vendorFullPath) if err != nil { return err } - } else if depExisted(d.GetLocalFullPath(kclPkg.HomePath), d) { + } else if utils.DirExists(d.GetLocalFullPath()) { // If there is, copy it into the 'vendor' directory. - err := copy.Copy(d.GetLocalFullPath(kclPkg.HomePath), vendorFullPath) + err := copy.Copy(d.GetLocalFullPath(), vendorFullPath) if err != nil { return err } @@ -804,16 +881,10 @@ func (c *KpmClient) VendorDeps(kclPkg *pkg.KclPkg) error { return nil } -// depExisted will check whether the dependency exists in the local path. -// If the dep is from local, do not need to check the checksum, so return true directly if it exists. -// If the dep is from git or oci, check the checksum, so return true if the checksum is correct and it exist. -func depExisted(localPath string, dep pkg.Dependency) bool { - return (utils.DirExists(localPath) && check(dep, localPath)) || - (utils.DirExists(localPath) && dep.IsFromLocal()) -} - // FillDepInfo will fill registry information for a dependency. func (c *KpmClient) FillDepInfo(dep *pkg.Dependency, homepath string) error { + // Homepath for a dependency is the homepath of the kcl package. + dep.HomePath = homepath if dep.Source.Local != nil { dep.LocalFullPath = dep.Source.Local.Path return nil @@ -832,7 +903,7 @@ func (c *KpmClient) FillDepInfo(dep *pkg.Dependency, homepath string) error { FetchBytesOptions: oras.DefaultFetchBytesOptions, OciOptions: opt.OciOptions{ Reg: dep.Source.Oci.Reg, - Repo: fmt.Sprintf("%s/%s", dep.Source.Oci.Repo, dep.Name), + Repo: dep.Source.Oci.Repo, Tag: dep.Version, }, }) @@ -847,7 +918,6 @@ func (c *KpmClient) FillDepInfo(dep *pkg.Dependency, homepath string) error { dep.Sum = value } } - return nil } return nil @@ -865,6 +935,16 @@ func (c *KpmClient) FillDependenciesInfo(modFile *pkg.ModFile) error { return nil } +// AcquireTheLatestOciVersion will acquire the latest version of the OCI reference. +func (c *KpmClient) AcquireTheLatestOciVersion(ociSource pkg.Oci) (string, error) { + ociClient, err := oci.NewOciClient(ociSource.Reg, ociSource.Repo, &c.settings) + if err != nil { + return "", err + } + + return ociClient.TheLatestTag() +} + // Download will download the dependency to the local path. func (c *KpmClient) Download(dep *pkg.Dependency, homePath, localPath string) (*pkg.Dependency, error) { if dep.Source.Git != nil { @@ -891,6 +971,39 @@ func (c *KpmClient) Download(dep *pkg.Dependency, homePath, localPath string) (* } if dep.Source.Oci != nil { + // Select the latest tag, if the tag, the user inputed, is empty. + if dep.Source.Oci.Tag == "" || dep.Source.Oci.Tag == constants.LATEST { + latestTag, err := c.AcquireTheLatestOciVersion(*dep.Source.Oci) + if err != nil { + return nil, err + } + // Complete some information that the local three dependencies depend on. + // The invalid path such as '$HOME/.kcl/kpm/k8s_' is placed because the version field is missing. + dep.Source.Oci.Tag = latestTag + dep.Version = latestTag + dep.FullName = dep.GenDepFullName() + dep.LocalFullPath = filepath.Join(filepath.Dir(localPath), dep.FullName) + dep.HomePath = homePath + localPath = dep.LocalFullPath + if utils.DirExists(dep.LocalFullPath) { + dpkg, err := c.LoadPkgFromPath(localPath) + if err != nil { + // If the package is invalid, delete it and re-download it. + err := os.RemoveAll(dep.LocalFullPath) + if err != nil { + return nil, err + } + } else { + dep.FromKclPkg(dpkg) + dep.Sum, err = c.AcquireDepSum(*dep) + if err != nil { + return nil, err + } + return dep, nil + } + } + } + err := c.DepDownloader.Download(*downloader.NewDownloadOptions( downloader.WithLocalPath(localPath), downloader.WithSource(dep.Source), @@ -905,6 +1018,11 @@ func (c *KpmClient) Download(dep *pkg.Dependency, homePath, localPath string) (* return nil, err } dep.FromKclPkg(dpkg) + // The downloaded checksum is requested, not calculated + dep.Sum, err = c.AcquireDepSum(*dep) + if err != nil { + return nil, err + } if dep.LocalFullPath == "" { dep.LocalFullPath = localPath @@ -927,25 +1045,13 @@ func (c *KpmClient) Download(dep *pkg.Dependency, homePath, localPath string) (* } if dep.Source.Local != nil { - kpkg, err := pkg.FindFirstKclPkgFrom(dep.GetLocalFullPath(homePath)) + kpkg, err := pkg.FindFirstKclPkgFrom(dep.GetLocalFullPath()) if err != nil { return nil, err } dep.FromKclPkg(kpkg) } - if dep.Source.Local == nil { - var err error - dep.Sum, err = utils.HashDir(dep.LocalFullPath) - if err != nil { - return nil, reporter.NewErrorEvent( - reporter.FailedHashPkg, - err, - fmt.Sprintf("failed to hash the kcl package '%s' in '%s'.", dep.Name, dep.LocalFullPath), - ) - } - } - return dep, nil } @@ -1342,26 +1448,18 @@ func (c *KpmClient) InitGraphAndDownloadDeps(kclPkg *pkg.KclPkg) (*pkg.Dependenc } // dependencyExists will check whether the dependency exists in the local filesystem. -func (c *KpmClient) dependencyExists(dep *pkg.Dependency, lockDeps *pkg.Dependencies) *pkg.Dependency { - +func (c *KpmClient) dependencyExistsLocal(dep *pkg.Dependency) (*pkg.Dependency, error) { // If the flag '--no_sum_check' is set, skip the checksum check. - if c.noSumCheck { - // If the dependent package does exist locally - if utils.DirExists(filepath.Join(c.homePath, dep.FullName)) { - return dep - } - } - - lockDep, present := lockDeps.Deps[dep.Name] - // Check if the sum of this dependency in kcl.mod.lock has been changed. - if !c.noSumCheck && present { - // If the dependent package does not exist locally, then method 'check' will return false. - if c.noSumCheck || check(lockDep, filepath.Join(c.homePath, dep.FullName)) { - return &lockDep + deppath := c.getDepStorePath(*dep, false) + if utils.DirExists(deppath) { + depPkg, err := c.LoadPkgFromPath(deppath) + if err != nil { + return nil, err } + dep.FromKclPkg(depPkg) + return dep, nil } - - return nil + return nil, nil } // downloadDeps will download all the dependencies of the current kcl package. @@ -1377,8 +1475,8 @@ func (c *KpmClient) DownloadDeps(deps *pkg.Dependencies, lockDeps *pkg.Dependenc return nil, errors.InvalidDependency } - existDep := c.dependencyExists(&d, lockDeps) - if existDep != nil { + existDep, err := c.dependencyExistsLocal(&d) + if existDep != nil && err == nil { newDeps.Deps[d.Name] = *existDep continue } @@ -1389,7 +1487,10 @@ func (c *KpmClient) DownloadDeps(deps *pkg.Dependencies, lockDeps *pkg.Dependenc return nil, errors.InternalBug } dir := filepath.Join(c.homePath, d.FullName) - os.RemoveAll(dir) + err = os.RemoveAll(dir) + if err != nil { + return nil, err + } // download dependencies lockedDep, err := c.Download(&d, pkghome, dir) @@ -1397,11 +1498,10 @@ func (c *KpmClient) DownloadDeps(deps *pkg.Dependencies, lockDeps *pkg.Dependenc return nil, err } - if !lockedDep.IsFromLocal() { + if lockedDep.Oci != nil { if !c.noSumCheck && expectedSum != "" && - lockedDep.Sum != expectedSum && - existDep != nil && - existDep.FullName == d.FullName { + lockedDep.Sum != "" && + lockedDep.Sum != expectedSum { return nil, reporter.NewErrorEvent( reporter.CheckSumMismatch, errors.CheckSumMismatchError, @@ -1541,21 +1641,6 @@ func (c *KpmClient) FetchOciManifestIntoJsonStr(opts opt.OciFetchOptions) (strin return manifestJson, nil } -// check sum for a Dependency. -func check(dep pkg.Dependency, newDepPath string) bool { - if dep.Sum == "" { - return false - } - - sum, err := utils.HashDir(newDepPath) - - if err != nil { - return false - } - - return dep.Sum == sum -} - // createDepRef will create a dependency reference for the dependency saved on the local filesystem. // On the unix-like system, it will create a symbolic link. // On the windows system, it will create a junction. diff --git a/pkg/client/client_test.go b/pkg/client/client_test.go index fd0ccdf1..29fafd0a 100644 --- a/pkg/client/client_test.go +++ b/pkg/client/client_test.go @@ -52,7 +52,7 @@ func initTestDir(subDir string) string { // TestDownloadGit test download from oci registry. func TestDownloadOci(t *testing.T) { - testPath := filepath.Join(getTestDir("download"), "k8s_1.27") + testPath := filepath.Join(getTestDir("download"), "helloworld_0.1.2") err := os.MkdirAll(testPath, 0755) assert.Equal(t, err, nil) @@ -64,13 +64,13 @@ func TestDownloadOci(t *testing.T) { }() depFromOci := pkg.Dependency{ - Name: "k8s", - Version: "1.27", + Name: "helloworld", + Version: "0.1.2", Source: pkg.Source{ Oci: &pkg.Oci{ Reg: "ghcr.io", - Repo: "kcl-lang/k8s", - Tag: "1.27", + Repo: "kcl-lang/helloworld", + Tag: "0.1.2", }, }, } @@ -78,22 +78,21 @@ func TestDownloadOci(t *testing.T) { assert.Equal(t, err, nil) dep, err := kpmcli.Download(&depFromOci, "", testPath) assert.Equal(t, err, nil) - assert.Equal(t, dep.Name, "k8s") - assert.Equal(t, dep.FullName, "k8s_1.27") - assert.Equal(t, dep.Version, "1.27") - assert.Equal(t, dep.Sum, "xnYM1FWHAy3m+KcQMQb2rjZouTxumqYt6FGZpu2T4yM=") + assert.Equal(t, dep.Name, "helloworld") + assert.Equal(t, dep.FullName, "helloworld_0.1.2") + assert.Equal(t, dep.Version, "0.1.2") assert.NotEqual(t, dep.Source.Oci, nil) assert.Equal(t, dep.Source.Oci.Reg, "ghcr.io") - assert.Equal(t, dep.Source.Oci.Repo, "kcl-lang/k8s") - assert.Equal(t, dep.Source.Oci.Tag, "1.27") + assert.Equal(t, dep.Source.Oci.Repo, "kcl-lang/helloworld") + assert.Equal(t, dep.Source.Oci.Tag, "0.1.2") assert.Equal(t, dep.LocalFullPath, testPath) // Check whether the tar downloaded by `kpm add` has been deleted. downloadPath := getTestDir("download") - assert.Equal(t, utils.DirExists(filepath.Join(downloadPath, "k8s_1.27.tar")), false) + assert.Equal(t, utils.DirExists(filepath.Join(downloadPath, "helloworld_0.1.2.tar")), false) - assert.Equal(t, utils.DirExists(filepath.Join(downloadPath, "k8s_1.27")), true) - assert.Equal(t, utils.DirExists(filepath.Join(downloadPath, "k8s")), false) + assert.Equal(t, utils.DirExists(filepath.Join(downloadPath, "helloworld_0.1.2")), true) + assert.Equal(t, utils.DirExists(filepath.Join(downloadPath, "helloworld")), false) } // TestDownloadLatestOci tests the case that the version is empty. @@ -130,7 +129,7 @@ func TestDownloadLatestOci(t *testing.T) { assert.Equal(t, dep.Source.Oci.Reg, "ghcr.io") assert.Equal(t, dep.Source.Oci.Repo, "kcl-lang/helloworld") assert.Equal(t, dep.Source.Oci.Tag, "0.1.2") - assert.Equal(t, dep.LocalFullPath, testPath) + assert.Equal(t, dep.LocalFullPath, filepath.Join(getTestDir("download"), "helloworld_0.1.2")) assert.Equal(t, err, nil) // Check whether the tar downloaded by `kpm add` has been deleted. @@ -374,12 +373,14 @@ func TestVendorDeps(t *testing.T) { depKcl1 := pkg.Dependency{ Name: "kcl1", FullName: "kcl1", + Version: "0.0.1", Sum: kcl1Sum, } depKcl2 := pkg.Dependency{ Name: "kcl2", FullName: "kcl2", + Version: "0.0.1", Sum: kcl2Sum, } @@ -416,8 +417,8 @@ func TestVendorDeps(t *testing.T) { err = kpmcli.VendorDeps(&kclPkg) assert.Equal(t, err, nil) assert.Equal(t, utils.DirExists(mykclVendorPath), true) - assert.Equal(t, utils.DirExists(filepath.Join(mykclVendorPath, "kcl1")), true) - assert.Equal(t, utils.DirExists(filepath.Join(mykclVendorPath, "kcl2")), true) + assert.Equal(t, utils.DirExists(filepath.Join(mykclVendorPath, "kcl1_0.0.1")), true) + assert.Equal(t, utils.DirExists(filepath.Join(mykclVendorPath, "kcl2_0.0.1")), true) maps, err := kpmcli.ResolveDepsIntoMap(&kclPkg) assert.Equal(t, err, nil) @@ -455,14 +456,18 @@ func TestResolveDepsVendorMode(t *testing.T) { depKcl1 := pkg.Dependency{ Name: "kcl1", - FullName: "kcl1", + FullName: "kcl1_0.0.1", + Version: "0.0.1", Sum: kcl1Sum, + HomePath: home_path, } depKcl2 := pkg.Dependency{ Name: "kcl2", - FullName: "kcl2", + FullName: "kcl2_0.0.1", + Version: "0.0.1", Sum: kcl2Sum, + HomePath: home_path, } kclPkg := pkg.KclPkg{ @@ -521,13 +526,17 @@ func TestCompileWithEntryFile(t *testing.T) { kcl1Sum, _ := utils.HashDir(filepath.Join(kpm_home, "kcl1")) depKcl1 := pkg.Dependency{ Name: "kcl1", - FullName: "kcl1", + FullName: "kcl1_0.0.1", + Version: "0.0.1", + HomePath: home_path, Sum: kcl1Sum, } kcl2Sum, _ := utils.HashDir(filepath.Join(kpm_home, "kcl2")) depKcl2 := pkg.Dependency{ Name: "kcl2", - FullName: "kcl2", + FullName: "kcl2_0.0.1", + Version: "0.0.1", + HomePath: home_path, Sum: kcl2Sum, } @@ -565,8 +574,8 @@ func TestCompileWithEntryFile(t *testing.T) { kpmcli.homePath = kpm_home result, err := kpmcli.Compile(&kclPkg, compiler) assert.Equal(t, err, nil) - assert.Equal(t, utils.DirExists(filepath.Join(vendor_path, "kcl1")), true) - assert.Equal(t, utils.DirExists(filepath.Join(vendor_path, "kcl2")), true) + assert.Equal(t, utils.DirExists(filepath.Join(vendor_path, "kcl1_0.0.1")), true) + assert.Equal(t, utils.DirExists(filepath.Join(vendor_path, "kcl2_0.0.1")), true) assert.Equal(t, result.GetRawYamlResult(), "c1: 1\nc2: 2") os.RemoveAll(vendor_path) @@ -616,29 +625,26 @@ func TestResolveMetadataInJsonStr(t *testing.T) { testDir := getTestDir("resolve_metadata") - testHomePath := filepath.Join(filepath.Dir(testDir), "test_home_path") - prepareKpmHomeInPath(testHomePath) - defer os.RemoveAll(testHomePath) - - os.Setenv(env.PKG_PATH, testHomePath) - - kclpkg, err := pkg.LoadKclPkg(testDir) + kpmcli, err := NewKpmClient() + assert.Equal(t, err, nil) + kclpkg, err := kpmcli.LoadPkgFromPath(testDir) assert.Equal(t, err, nil) globalPkgPath, _ := env.GetAbsPkgPath() - kpmcli, err := NewKpmClient() - assert.Equal(t, err, nil) res, err := kpmcli.ResolveDepsMetadataInJsonStr(kclpkg, true) + fmt.Printf("err: %v\n", err) assert.Equal(t, err, nil) expectedDep := pkg.Dependencies{ Deps: make(map[string]pkg.Dependency), } - expectedDep.Deps["konfig"] = pkg.Dependency{ - Name: "konfig", - FullName: "konfig_v0.0.1", - LocalFullPath: filepath.Join(globalPkgPath, "konfig_v0.0.1"), + expectedDep.Deps["flask_demo_kcl_manifests"] = pkg.Dependency{ + Name: "flask_demo_kcl_manifests", + FullName: "flask-demo-kcl-manifests_ade147b", + Version: "ade147b", + HomePath: testDir, + LocalFullPath: filepath.Join(globalPkgPath, "flask-demo-kcl-manifests_ade147b"), } expectedDepStr, err := json.Marshal(expectedDep) @@ -655,12 +661,14 @@ func TestResolveMetadataInJsonStr(t *testing.T) { res, err = kpmcli.ResolveDepsMetadataInJsonStr(kclpkg, true) assert.Equal(t, err, nil) assert.Equal(t, utils.DirExists(vendorDir), true) - assert.Equal(t, utils.DirExists(filepath.Join(vendorDir, "konfig_v0.0.1")), true) - - expectedDep.Deps["konfig"] = pkg.Dependency{ - Name: "konfig", - FullName: "konfig_v0.0.1", - LocalFullPath: filepath.Join(vendorDir, "konfig_v0.0.1"), + assert.Equal(t, utils.DirExists(filepath.Join(vendorDir, "flask-demo-kcl-manifests_ade147b")), true) + + expectedDep.Deps["flask_demo_kcl_manifests"] = pkg.Dependency{ + Name: "flask_demo_kcl_manifests", + FullName: "flask-demo-kcl-manifests_ade147b", + Version: "ade147b", + HomePath: testDir, + LocalFullPath: filepath.Join(vendorDir, "flask-demo-kcl-manifests_ade147b"), } expectedDepStr, err = json.Marshal(expectedDep) @@ -676,30 +684,19 @@ func TestResolveMetadataInJsonStr(t *testing.T) { assert.Equal(t, err, nil) kpmcli.homePath = "not_exist" res, err = kpmcli.ResolveDepsMetadataInJsonStr(kclpkg, false) - fmt.Printf("err: %v\n", err) assert.Equal(t, err, nil) assert.Equal(t, utils.DirExists(vendorDir), false) - assert.Equal(t, utils.DirExists(filepath.Join(vendorDir, "konfig_v0.0.1")), false) - jsonPath, err := json.Marshal(filepath.Join("not_exist", "konfig_v0.0.1")) + assert.Equal(t, utils.DirExists(filepath.Join(vendorDir, "flask-demo-kcl-manifests_ade147b")), false) assert.Equal(t, err, nil) - expectedStr := fmt.Sprintf("{\"packages\":{\"konfig\":{\"name\":\"konfig\",\"manifest_path\":%s}}}", string(jsonPath)) + expectedStr := "{\"packages\":{\"flask_demo_kcl_manifests\":{\"name\":\"flask_demo_kcl_manifests\",\"manifest_path\":\"\"}}}" assert.Equal(t, res, expectedStr) defer func() { - if r := os.RemoveAll(filepath.Join("not_exist", "konfig_v0.0.1")); r != nil { + if r := os.RemoveAll(filepath.Join("not_exist", "flask-demo-kcl-manifests_ade147b")); r != nil { err = fmt.Errorf("panic: %v", r) } }() } -func prepareKpmHomeInPath(path string) { - dirPath := filepath.Join(filepath.Join(path, ".kpm"), "config") - _ = os.MkdirAll(dirPath, 0755) - - filePath := filepath.Join(dirPath, "kpm.json") - - _ = os.WriteFile(filePath, []byte("{\"DefaultOciRegistry\":\"ghcr.io\",\"DefaultOciRepo\":\"awesome-kusion\"}"), 0644) -} - func TestPkgWithInVendorMode(t *testing.T) { testDir := getTestDir("test_pkg_with_vendor") kcl1Path := filepath.Join(testDir, "kcl1") @@ -866,7 +863,7 @@ func TestUpdateWithKclMod(t *testing.T) { err = copy.Copy(src_testDir, dest_testDir) assert.Equal(t, err, nil) - kclPkg, err := pkg.LoadKclPkg(dest_testDir) + kclPkg, err := kpmcli.LoadPkgFromPath(dest_testDir) assert.Equal(t, err, nil) err = kpmcli.UpdateDeps(kclPkg) assert.Equal(t, err, nil) @@ -1083,7 +1080,7 @@ func TestUpdateWithNoSumCheck(t *testing.T) { err = kpmcli.UpdateDeps(kclPkg) assert.Equal(t, err, nil) assert.Equal(t, utils.DirExists(filepath.Join(pkgPath, "kcl.mod.lock")), true) - assert.Equal(t, buf.String(), "adding 'helloworld' with version '0.1.1'\ndownloading 'kcl-lang/helloworld:0.1.1' from 'ghcr.io/kcl-lang/helloworld:0.1.1'\n") + assert.Equal(t, buf.String(), "adding 'helloworld' with version '0.1.1'\n") defer func() { _ = os.Remove(filepath.Join(pkgPath, "kcl.mod.lock")) @@ -1114,7 +1111,7 @@ func TestAddWithDiffVersionNoSumCheck(t *testing.T) { Reg: "ghcr.io", Repo: "kcl-lang", PkgName: "helloworld", - Tag: "0.1.1", + Tag: "0.1.2", }, }, NoSumCheck: true, @@ -1178,7 +1175,7 @@ func TestAddWithDiffVersionWithSumCheck(t *testing.T) { Reg: "ghcr.io", Repo: "kcl-lang", PkgName: "helloworld", - Tag: "0.1.1", + Tag: "0.1.2", }, }, } @@ -1245,8 +1242,8 @@ func TestAddWithGitCommit(t *testing.T) { LocalPath: testPkgPath, RegistryOpts: opt.RegistryOptions{ Git: &opt.GitOptions{ - Url: "https://github.com/KusionStack/catalog.git", - Commit: "a29e3db", + Url: "https://github.com/kcl-lang/flask-demo-kcl-manifests.git", + Commit: "ade147b", }, }, } @@ -1301,7 +1298,7 @@ func TestLoadPkgFormOci(t *testing.T) { { Reg: "ghcr.io", Repo: "kcl-lang/helloworld", - Tag: "0.1.1", + Tag: "0.1.2", Name: "helloworld", }, } @@ -1507,6 +1504,6 @@ func testRunWithOciDownloader(t *testing.T) { opt.WithLogWriter(writer), ) assert.Equal(t, err, nil) - assert.Equal(t, buf.String(), "downloading 'zong-zhe/helloworld:0.0.3' from 'ghcr.io/zong-zhe/helloworld:0.0.3'\n") + strings.Contains(buf.String(), "downloading 'zong-zhe/helloworld:0.0.3' from 'ghcr.io/zong-zhe/helloworld:0.0.3'") assert.Equal(t, res.GetRawYamlResult(), "The_first_kcl_program: Hello World!") } diff --git a/pkg/client/test_data/add_with_git_commit/test_pkg/kcl.mod.expect b/pkg/client/test_data/add_with_git_commit/test_pkg/kcl.mod.expect index 475d36f8..2950f92d 100644 --- a/pkg/client/test_data/add_with_git_commit/test_pkg/kcl.mod.expect +++ b/pkg/client/test_data/add_with_git_commit/test_pkg/kcl.mod.expect @@ -4,4 +4,4 @@ edition = "0.0.1" version = "0.0.1" [dependencies] -catalog = { git = "https://github.com/KusionStack/catalog.git", commit = "a29e3db" } +flask-demo-kcl-manifests = { git = "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/kcl.mod.lock.expect b/pkg/client/test_data/add_with_git_commit/test_pkg/kcl.mod.lock.expect index dbb61a69..935309f6 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,8 +1,7 @@ [dependencies] - [dependencies.catalog] - name = "catalog" - full_name = "catalog_a29e3db" - version = "0.1.0" - sum = "kFmlrYJbJUFFTEXjC9cquc80WB+UpZ/6oMPKrfgyeks=" - url = "https://github.com/KusionStack/catalog.git" - commit = "a29e3db" \ No newline at end of file + [dependencies.flask-demo-kcl-manifests] + name = "flask-demo-kcl-manifests" + full_name = "flask_manifests_0.0.1" + 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.expect b/pkg/client/test_data/add_with_git_commit/test_pkg_win/kcl.mod.expect index 475d36f8..2950f92d 100644 --- a/pkg/client/test_data/add_with_git_commit/test_pkg_win/kcl.mod.expect +++ b/pkg/client/test_data/add_with_git_commit/test_pkg_win/kcl.mod.expect @@ -4,4 +4,4 @@ edition = "0.0.1" version = "0.0.1" [dependencies] -catalog = { git = "https://github.com/KusionStack/catalog.git", commit = "a29e3db" } +flask-demo-kcl-manifests = { git = "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 cda1fc63..935309f6 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,8 +1,7 @@ [dependencies] - [dependencies.catalog] - name = "catalog" - full_name = "catalog_a29e3db" - version = "0.1.0" - sum = "zhh1yHk5TrNi9apHUQF3hPOlwi5Kc75cNHjcVmGv+Qo=" - url = "https://github.com/KusionStack/catalog.git" - commit = "a29e3db" \ No newline at end of file + [dependencies.flask-demo-kcl-manifests] + name = "flask-demo-kcl-manifests" + full_name = "flask_manifests_0.0.1" + 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_local_path/expect/pkg/kcl.mod b/pkg/client/test_data/add_with_local_path/expect/pkg/kcl.mod index 939fba20..cd18a78b 100644 --- a/pkg/client/test_data/add_with_local_path/expect/pkg/kcl.mod +++ b/pkg/client/test_data/add_with_local_path/expect/pkg/kcl.mod @@ -5,4 +5,4 @@ version = "0.0.1" [dependencies] dep_pkg = { path = "../dep_pkg" } -helloworld = { oci = "oci://ghcr.io/kcl-lang/helloworld", tag = "0.1.1" } +helloworld = { oci = "oci://ghcr.io/kcl-lang/helloworld", tag = "0.1.2" } diff --git a/pkg/client/test_data/add_with_local_path/expect/pkg/kcl.mod.lock b/pkg/client/test_data/add_with_local_path/expect/pkg/kcl.mod.lock index cf4fb1e7..3f488872 100644 --- a/pkg/client/test_data/add_with_local_path/expect/pkg/kcl.mod.lock +++ b/pkg/client/test_data/add_with_local_path/expect/pkg/kcl.mod.lock @@ -5,9 +5,9 @@ version = "0.0.1" [dependencies.helloworld] name = "helloworld" - full_name = "helloworld_0.1.1" - version = "0.1.1" - sum = "7OO4YK2QuRWPq9C7KTzcWcti5yUnueCjptT3OXiPVeQ=" + full_name = "helloworld_0.1.2" + version = "0.1.2" + sum = "PN0OMEV9M8VGFn1CtA/T3bcgZmMJmOo+RkBrLKIWYeQ=" reg = "ghcr.io" repo = "kcl-lang/helloworld" - oci_tag = "0.1.1" + oci_tag = "0.1.2" diff --git a/pkg/client/test_data/resolve_deps/kpm_home/kcl1/kcl.mod b/pkg/client/test_data/resolve_deps/kpm_home/kcl1_0.0.1/kcl.mod similarity index 100% rename from pkg/client/test_data/resolve_deps/kpm_home/kcl1/kcl.mod rename to pkg/client/test_data/resolve_deps/kpm_home/kcl1_0.0.1/kcl.mod diff --git a/pkg/client/test_data/resolve_deps/kpm_home/kcl1/kcl.mod.lock b/pkg/client/test_data/resolve_deps/kpm_home/kcl1_0.0.1/kcl.mod.lock similarity index 100% rename from pkg/client/test_data/resolve_deps/kpm_home/kcl1/kcl.mod.lock rename to pkg/client/test_data/resolve_deps/kpm_home/kcl1_0.0.1/kcl.mod.lock diff --git a/pkg/client/test_data/resolve_deps/kpm_home/kcl1/main.k b/pkg/client/test_data/resolve_deps/kpm_home/kcl1_0.0.1/main.k similarity index 100% rename from pkg/client/test_data/resolve_deps/kpm_home/kcl1/main.k rename to pkg/client/test_data/resolve_deps/kpm_home/kcl1_0.0.1/main.k diff --git a/pkg/client/test_data/resolve_deps/kpm_home/kcl2/kcl.mod b/pkg/client/test_data/resolve_deps/kpm_home/kcl2_0.0.1/kcl.mod similarity index 100% rename from pkg/client/test_data/resolve_deps/kpm_home/kcl2/kcl.mod rename to pkg/client/test_data/resolve_deps/kpm_home/kcl2_0.0.1/kcl.mod diff --git a/pkg/client/test_data/resolve_deps/kpm_home/kcl2/kcl.mod.lock b/pkg/client/test_data/resolve_deps/kpm_home/kcl2_0.0.1/kcl.mod.lock similarity index 100% rename from pkg/client/test_data/resolve_deps/kpm_home/kcl2/kcl.mod.lock rename to pkg/client/test_data/resolve_deps/kpm_home/kcl2_0.0.1/kcl.mod.lock diff --git a/pkg/client/test_data/resolve_deps/kpm_home/kcl2/main.k b/pkg/client/test_data/resolve_deps/kpm_home/kcl2_0.0.1/main.k similarity index 100% rename from pkg/client/test_data/resolve_deps/kpm_home/kcl2/main.k rename to pkg/client/test_data/resolve_deps/kpm_home/kcl2_0.0.1/main.k diff --git a/pkg/client/test_data/resolve_deps/my_kcl_compile/kcl.mod.lock b/pkg/client/test_data/resolve_deps/my_kcl_compile/kcl.mod.lock index 25f3d72a..b6a76aec 100644 --- a/pkg/client/test_data/resolve_deps/my_kcl_compile/kcl.mod.lock +++ b/pkg/client/test_data/resolve_deps/my_kcl_compile/kcl.mod.lock @@ -1,9 +1,9 @@ [dependencies] [dependencies.kcl1] name = "kcl1" - full_name = "kcl1" - sum = "c5bjxiHbwJqWCdBwXLOr9MydCTis3nJotrOzozkPsKo=" + full_name = "kcl1_0.0.1" + version = "0.0.1" [dependencies.kcl2] name = "kcl2" - full_name = "kcl2" - sum = "OiA7IJfhi9bLp3d+Phc6ncgWE8XwpXqkGvhF5BOpf34=" + full_name = "kcl2_0.0.1" + version = "0.0.1" diff --git a/pkg/client/test_data/resolve_metadata/kcl.mod b/pkg/client/test_data/resolve_metadata/kcl.mod index 7f59740b..1f574119 100644 --- a/pkg/client/test_data/resolve_metadata/kcl.mod +++ b/pkg/client/test_data/resolve_metadata/kcl.mod @@ -4,4 +4,4 @@ edition = "0.0.1" version = "0.0.1" [dependencies] -konfig = { git = "https://github.com/awesome-kusion/konfig.git", tag = "v0.0.1" } +flask-demo-kcl-manifests = { git = "https://github.com/kcl-lang/flask-demo-kcl-manifests.git", commit = "ade147b" } diff --git a/pkg/client/test_data/resolve_metadata/kcl.mod.lock b/pkg/client/test_data/resolve_metadata/kcl.mod.lock index 02b0b8e3..688e76c4 100644 --- a/pkg/client/test_data/resolve_metadata/kcl.mod.lock +++ b/pkg/client/test_data/resolve_metadata/kcl.mod.lock @@ -1,8 +1,8 @@ [dependencies] - [dependencies.konfig] - name = "konfig" - full_name = "konfig_v0.0.1" - version = "v0.0.1" - sum = "XFvHdBAoY/+qpJWmj8cjwOwZO8a3nX/7SE35cTxQOFU=" - url = "https://github.com/awesome-kusion/konfig.git" - git_tag = "v0.0.1" + [dependencies.flask-demo-kcl-manifests] + name = "flask-demo-kcl-manifests" + full_name = "flask_manifests_0.0.1" + version = "0.0.1" + sum = "wREQiSSuLkbCrxWX0vIa57WB2nkJrsBx2eaDDxg6O+o=" + url = "https://github.com/kcl-lang/flask-demo-kcl-manifests.git" + commit = "ade147b" diff --git a/pkg/client/test_data/test_add_diff_version/no_sum_check/kcl.mod.bak b/pkg/client/test_data/test_add_diff_version/no_sum_check/kcl.mod.bak index 126d4126..80c5c43d 100644 --- a/pkg/client/test_data/test_add_diff_version/no_sum_check/kcl.mod.bak +++ b/pkg/client/test_data/test_add_diff_version/no_sum_check/kcl.mod.bak @@ -4,4 +4,4 @@ edition = "0.0.1" version = "0.0.1" [dependencies] -helloworld = "0.1.0" +helloworld = "0.1.2" diff --git a/pkg/client/test_data/test_add_diff_version/no_sum_check/kcl.mod.expect b/pkg/client/test_data/test_add_diff_version/no_sum_check/kcl.mod.expect index 6a23e353..15ebd0f4 100644 --- a/pkg/client/test_data/test_add_diff_version/no_sum_check/kcl.mod.expect +++ b/pkg/client/test_data/test_add_diff_version/no_sum_check/kcl.mod.expect @@ -4,4 +4,4 @@ edition = "0.0.1" version = "0.0.1" [dependencies] -helloworld = { oci = "oci://ghcr.io/kcl-lang/helloworld", tag = "0.1.1" } +helloworld = { oci = "oci://ghcr.io/kcl-lang/helloworld", tag = "0.1.2" } diff --git a/pkg/client/test_data/test_add_diff_version/with_sum_check/kcl.mod.bak b/pkg/client/test_data/test_add_diff_version/with_sum_check/kcl.mod.bak index a29e213d..12148360 100644 --- a/pkg/client/test_data/test_add_diff_version/with_sum_check/kcl.mod.bak +++ b/pkg/client/test_data/test_add_diff_version/with_sum_check/kcl.mod.bak @@ -4,4 +4,4 @@ edition = "0.0.1" version = "0.0.1" [dependencies] -helloworld = "0.1.0" +helloworld = "0.1.2" diff --git a/pkg/client/test_data/test_add_diff_version/with_sum_check/kcl.mod.expect b/pkg/client/test_data/test_add_diff_version/with_sum_check/kcl.mod.expect index 9ed0fba7..8a5d1e7a 100644 --- a/pkg/client/test_data/test_add_diff_version/with_sum_check/kcl.mod.expect +++ b/pkg/client/test_data/test_add_diff_version/with_sum_check/kcl.mod.expect @@ -4,4 +4,4 @@ edition = "0.0.1" version = "0.0.1" [dependencies] -helloworld = { oci = "oci://ghcr.io/kcl-lang/helloworld", tag = "0.1.1" } +helloworld = { oci = "oci://ghcr.io/kcl-lang/helloworld", tag = "0.1.2" } diff --git a/pkg/client/test_data/test_add_diff_version/with_sum_check/kcl.mod.lock.bak b/pkg/client/test_data/test_add_diff_version/with_sum_check/kcl.mod.lock.bak index b57cac07..7eaf9cba 100644 --- a/pkg/client/test_data/test_add_diff_version/with_sum_check/kcl.mod.lock.bak +++ b/pkg/client/test_data/test_add_diff_version/with_sum_check/kcl.mod.lock.bak @@ -1,9 +1,9 @@ [dependencies] [dependencies.helloworld] name = "helloworld" - full_name = "helloworld_0.1.0" - version = "0.1.0" - sum = "aqrvSsd8zGHzRERbOzxYxARmK6QjvpQMYC1OqemdZvc=" + full_name = "helloworld_0.1.2" + version = "0.1.2" + sum = "PN0OMEV9M8VGFn1CtA/T3bcgZmMJmOo+RkBrLKIWYeQ=" reg = "ghcr.io" repo = "kcl-lang/helloworld" - oci_tag = "0.1.1" + oci_tag = "0.1.2" diff --git a/pkg/client/test_data/test_add_diff_version/with_sum_check/kcl.mod.lock.expect b/pkg/client/test_data/test_add_diff_version/with_sum_check/kcl.mod.lock.expect index 6270d4f4..7eaf9cba 100644 --- a/pkg/client/test_data/test_add_diff_version/with_sum_check/kcl.mod.lock.expect +++ b/pkg/client/test_data/test_add_diff_version/with_sum_check/kcl.mod.lock.expect @@ -1,9 +1,9 @@ [dependencies] [dependencies.helloworld] name = "helloworld" - full_name = "helloworld_0.1.1" - version = "0.1.1" - sum = "7OO4YK2QuRWPq9C7KTzcWcti5yUnueCjptT3OXiPVeQ=" + full_name = "helloworld_0.1.2" + version = "0.1.2" + sum = "PN0OMEV9M8VGFn1CtA/T3bcgZmMJmOo+RkBrLKIWYeQ=" reg = "ghcr.io" repo = "kcl-lang/helloworld" - oci_tag = "0.1.1" + oci_tag = "0.1.2" diff --git a/pkg/client/test_data/test_oci_downloader/add_dep/pkg/kcl.mod.lock b/pkg/client/test_data/test_oci_downloader/add_dep/pkg/kcl.mod.lock index fd4a314b..129819c0 100644 --- a/pkg/client/test_data/test_oci_downloader/add_dep/pkg/kcl.mod.lock +++ b/pkg/client/test_data/test_oci_downloader/add_dep/pkg/kcl.mod.lock @@ -3,7 +3,6 @@ name = "helloworld" full_name = "helloworld_0.0.3" version = "0.0.3" - sum = "OS3OHaC8HE5Z/4KEWJbS8xyHrYVSvXqHYxwy0BGc7nM=" reg = "ghcr.io" repo = "zong-zhe/helloworld" oci_tag = "0.0.3" diff --git a/pkg/client/test_data/test_oci_downloader/run_pkg/pkg/kcl.mod.lock b/pkg/client/test_data/test_oci_downloader/run_pkg/pkg/kcl.mod.lock index fd4a314b..129819c0 100644 --- a/pkg/client/test_data/test_oci_downloader/run_pkg/pkg/kcl.mod.lock +++ b/pkg/client/test_data/test_oci_downloader/run_pkg/pkg/kcl.mod.lock @@ -3,7 +3,6 @@ name = "helloworld" full_name = "helloworld_0.0.3" version = "0.0.3" - sum = "OS3OHaC8HE5Z/4KEWJbS8xyHrYVSvXqHYxwy0BGc7nM=" reg = "ghcr.io" repo = "zong-zhe/helloworld" oci_tag = "0.0.3" diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_1/test_suite.stderr b/pkg/client/test_data/test_parse_kcl_mod_file/kcl.mod similarity index 100% rename from test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_1/test_suite.stderr rename to pkg/client/test_data/test_parse_kcl_mod_file/kcl.mod diff --git a/pkg/client/test_data/test_update/test_update_kcl_mod/expected b/pkg/client/test_data/test_update/test_update_kcl_mod/expected index 6270d4f4..7eaf9cba 100644 --- a/pkg/client/test_data/test_update/test_update_kcl_mod/expected +++ b/pkg/client/test_data/test_update/test_update_kcl_mod/expected @@ -1,9 +1,9 @@ [dependencies] [dependencies.helloworld] name = "helloworld" - full_name = "helloworld_0.1.1" - version = "0.1.1" - sum = "7OO4YK2QuRWPq9C7KTzcWcti5yUnueCjptT3OXiPVeQ=" + full_name = "helloworld_0.1.2" + version = "0.1.2" + sum = "PN0OMEV9M8VGFn1CtA/T3bcgZmMJmOo+RkBrLKIWYeQ=" reg = "ghcr.io" repo = "kcl-lang/helloworld" - oci_tag = "0.1.1" + oci_tag = "0.1.2" diff --git a/pkg/client/test_data/test_update/test_update_kcl_mod/kcl.mod b/pkg/client/test_data/test_update/test_update_kcl_mod/kcl.mod index d3a99616..249c61c4 100644 --- a/pkg/client/test_data/test_update/test_update_kcl_mod/kcl.mod +++ b/pkg/client/test_data/test_update/test_update_kcl_mod/kcl.mod @@ -4,4 +4,4 @@ edition = "0.0.1" version = "0.0.1" [dependencies] -helloworld = "0.1.1" +helloworld = "0.1.2" diff --git a/pkg/client/test_data/test_update/test_update_kcl_mod_lock/kcl.mod.lock b/pkg/client/test_data/test_update/test_update_kcl_mod_lock/kcl.mod.lock index 6270d4f4..7eaf9cba 100644 --- a/pkg/client/test_data/test_update/test_update_kcl_mod_lock/kcl.mod.lock +++ b/pkg/client/test_data/test_update/test_update_kcl_mod_lock/kcl.mod.lock @@ -1,9 +1,9 @@ [dependencies] [dependencies.helloworld] name = "helloworld" - full_name = "helloworld_0.1.1" - version = "0.1.1" - sum = "7OO4YK2QuRWPq9C7KTzcWcti5yUnueCjptT3OXiPVeQ=" + full_name = "helloworld_0.1.2" + version = "0.1.2" + sum = "PN0OMEV9M8VGFn1CtA/T3bcgZmMJmOo+RkBrLKIWYeQ=" reg = "ghcr.io" repo = "kcl-lang/helloworld" - oci_tag = "0.1.1" + oci_tag = "0.1.2" diff --git a/pkg/cmd/cmd_add.go b/pkg/cmd/cmd_add.go index 4ff67c9c..6f481d1e 100644 --- a/pkg/cmd/cmd_add.go +++ b/pkg/cmd/cmd_add.go @@ -15,7 +15,6 @@ import ( "kcl-lang.io/kpm/pkg/env" "kcl-lang.io/kpm/pkg/errors" "kcl-lang.io/kpm/pkg/opt" - pkg "kcl-lang.io/kpm/pkg/package" "kcl-lang.io/kpm/pkg/reporter" ) @@ -80,7 +79,7 @@ func KpmAdd(c *cli.Context, kpmcli *client.KpmClient) error { return err } - kclPkg, err := pkg.LoadKclPkg(pwd) + kclPkg, err := kpmcli.LoadPkgFromPath(pwd) if err != nil { return err } diff --git a/pkg/cmd/cmd_metadata.go b/pkg/cmd/cmd_metadata.go index 2c3d5b4c..29349a3c 100644 --- a/pkg/cmd/cmd_metadata.go +++ b/pkg/cmd/cmd_metadata.go @@ -37,20 +37,6 @@ func NewMetadataCmd(kpmcli *client.KpmClient) *cli.Command { }, }, Action: func(c *cli.Context) error { - // acquire the lock of the package cache. - err := kpmcli.AcquirePackageCacheLock() - if err != nil { - return err - } - - defer func() { - // release the lock of the package cache after the function returns. - releaseErr := kpmcli.ReleasePackageCacheLock() - if releaseErr != nil && err == nil { - err = releaseErr - } - }() - pwd, err := os.Getwd() if err != nil { return reporter.NewErrorEvent(reporter.Bug, err, "internal bugs, please contact us to fix it") diff --git a/pkg/cmd/cmd_run.go b/pkg/cmd/cmd_run.go index 4564e5d5..289f9e31 100644 --- a/pkg/cmd/cmd_run.go +++ b/pkg/cmd/cmd_run.go @@ -89,20 +89,6 @@ func NewRunCmd(kpmcli *client.KpmClient) *cli.Command { } func KpmRun(c *cli.Context, kpmcli *client.KpmClient) error { - // acquire the lock of the package cache. - err := kpmcli.AcquirePackageCacheLock() - if err != nil { - return err - } - - defer func() { - // release the lock of the package cache after the function returns. - releaseErr := kpmcli.ReleasePackageCacheLock() - if releaseErr != nil && err == nil { - err = releaseErr - } - }() - kclOpts := CompileOptionFromCli(c) kclOpts.SetNoSumCheck(c.Bool(FLAG_NO_SUM_CHECK)) runEntry, errEvent := runner.FindRunEntryFrom(c.Args().Slice()) diff --git a/pkg/downloader/downloader.go b/pkg/downloader/downloader.go index 597716f0..24a17125 100644 --- a/pkg/downloader/downloader.go +++ b/pkg/downloader/downloader.go @@ -129,31 +129,15 @@ func (d *OciDownloader) Download(opts DownloadOptions) error { ociCli.PullOciOptions.Platform = d.Platform - // Select the latest tag, if the tag, the user inputed, is empty. - tagSelected := ociSource.Tag - if len(tagSelected) == 0 { - tagSelected, err = ociCli.TheLatestTag() - if err != nil { - return err - } - - reporter.ReportMsgTo( - fmt.Sprintf("the lastest version '%s' will be added", tagSelected), - opts.LogWriter, - ) - - ociSource.Tag = tagSelected - } - reporter.ReportMsgTo( fmt.Sprintf( "downloading '%s:%s' from '%s/%s:%s'", - ociSource.Repo, tagSelected, ociSource.Reg, ociSource.Repo, tagSelected, + ociSource.Repo, ociSource.Tag, ociSource.Reg, ociSource.Repo, ociSource.Tag, ), opts.LogWriter, ) - err = ociCli.Pull(localPath, tagSelected) + err = ociCli.Pull(localPath, ociSource.Tag) if err != nil { return err } diff --git a/pkg/oci/oci.go b/pkg/oci/oci.go index 5bd4da9d..3e63ba9f 100644 --- a/pkg/oci/oci.go +++ b/pkg/oci/oci.go @@ -306,7 +306,7 @@ func (ociClient *OciClient) PushWithOciManifest(localPath, tag string, opts *opt return nil } -// FetchManifestByRef will fetch the manifest and return it into json string. +// FetchManifestIntoJsonStr will fetch the manifest and return it into json string. func (ociClient *OciClient) FetchManifestIntoJsonStr(opts opt.OciFetchOptions) (string, error) { fetchOpts := opts.FetchBytesOptions _, manifestContent, err := oras.FetchBytes(*ociClient.ctx, ociClient.repo, opts.Tag, fetchOpts) diff --git a/pkg/oci/oci_test.go b/pkg/oci/oci_test.go index b1386b5c..4c871a18 100644 --- a/pkg/oci/oci_test.go +++ b/pkg/oci/oci_test.go @@ -51,7 +51,7 @@ func TestPull(t *testing.T) { testCases := []TestCase{ {"ghcr.io", "kusionstack/opsrule", "0.0.9"}, - {"ghcr.io", "kcl-lang/helloworld", "0.1.1"}, + {"ghcr.io", "kcl-lang/helloworld", "0.1.2"}, } defer func() { diff --git a/pkg/package/modfile.go b/pkg/package/modfile.go index cca86d3f..0a0196ec 100644 --- a/pkg/package/modfile.go +++ b/pkg/package/modfile.go @@ -7,6 +7,7 @@ import ( "net/url" "os" "path/filepath" + "reflect" "strings" "github.com/BurntSushi/toml" @@ -186,6 +187,7 @@ type Dependency struct { // In vendor mode is "current_kcl_package/vendor" // In non-vendor mode is "$KCL_PKG_PATH" LocalFullPath string `json:"manifest_path" toml:"-"` + HomePath string `json:"-" toml:"-"` Source `json:"-"` } @@ -195,11 +197,36 @@ func (d *Dependency) FromKclPkg(pkg *KclPkg) { d.LocalFullPath = pkg.HomePath } +// The name of the local storage path is generated depending on the source of the package +func (d *Dependency) GetPkgPathName() string { + if d.Source.Oci != nil { + return fmt.Sprintf(PKG_NAME_PATTERN, d.Name, d.Source.Oci.Tag) + } else if d.Source.Git != nil { + if len(d.Source.Git.Tag) != 0 { + return fmt.Sprintf(PKG_NAME_PATTERN, d.Name, d.Source.Git.Tag) + } else if len(d.Source.Git.Commit) != 0 { + return fmt.Sprintf(PKG_NAME_PATTERN, d.Name, d.Source.Git.Commit) + } else { + return fmt.Sprintf(PKG_NAME_PATTERN, d.Name, d.Source.Git.Branch) + } + } else { + return fmt.Sprintf(PKG_NAME_PATTERN, d.Name, d.Version) + } +} + // SetName will set the name and alias name of a dependency. func (d *Dependency) GetAliasName() string { return strings.ReplaceAll(d.Name, "-", "_") } +func (d Dependency) Equals(other Dependency) bool { + if d.Name != other.Name { + return false + } + + return !reflect.DeepEqual(d, other) +} + // WithTheSameVersion will check whether two dependencies have the same version. func (d Dependency) WithTheSameVersion(other Dependency) bool { @@ -221,12 +248,12 @@ func (d Dependency) WithTheSameVersion(other Dependency) bool { } // GetLocalFullPath will get the local path of a dependency. -func (dep *Dependency) GetLocalFullPath(rootpath string) string { +func (dep *Dependency) GetLocalFullPath() string { if !filepath.IsAbs(dep.LocalFullPath) && dep.IsFromLocal() { if filepath.IsAbs(dep.Source.Local.Path) { return dep.Source.Local.Path } - return filepath.Join(rootpath, dep.Source.Local.Path) + return filepath.Join(dep.HomePath, dep.Source.Local.Path) } return dep.LocalFullPath } diff --git a/pkg/package/modfile_test.go b/pkg/package/modfile_test.go index 0e80660c..145c8ba2 100644 --- a/pkg/package/modfile_test.go +++ b/pkg/package/modfile_test.go @@ -182,8 +182,8 @@ func TestLoadModFile(t *testing.T) { assert.Equal(t, err, nil) assert.Equal(t, modFile.Dependencies.Deps["helloworld"].Name, "helloworld") - assert.Equal(t, modFile.Dependencies.Deps["helloworld"].Version, "0.1.1") - assert.Equal(t, modFile.Dependencies.Deps["helloworld"].Source.Oci.Tag, "0.1.1") + assert.Equal(t, modFile.Dependencies.Deps["helloworld"].Version, "0.1.2") + assert.Equal(t, modFile.Dependencies.Deps["helloworld"].Source.Oci.Tag, "0.1.2") assert.Equal(t, err, nil) } diff --git a/pkg/package/test_data/load_mod_file/kcl.mod b/pkg/package/test_data/load_mod_file/kcl.mod index 1c893dfc..318ee9d8 100644 --- a/pkg/package/test_data/load_mod_file/kcl.mod +++ b/pkg/package/test_data/load_mod_file/kcl.mod @@ -6,4 +6,4 @@ version = "0.0.1" [dependencies] name = { git = "test_url", tag = "test_tag" } oci_name = "oci_tag" -helloworld = { oci = "oci://ghcr.io/kcl-lang/helloworld", tag = "0.1.1" } \ No newline at end of file +helloworld = { oci = "oci://ghcr.io/kcl-lang/helloworld", tag = "0.1.2" } \ No newline at end of file diff --git a/pkg/reporter/reporter.go b/pkg/reporter/reporter.go index 27af7912..8fc3cd6e 100644 --- a/pkg/reporter/reporter.go +++ b/pkg/reporter/reporter.go @@ -115,6 +115,7 @@ const ( KclModNotFound CompileFailed FailedParseVersion + FailedFetchOciManifest ) // KpmEvent is the event used to show kpm logs to users. diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_1/test_suite.stdout b/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_1/test_suite.stdout deleted file mode 100644 index 664b1334..00000000 --- a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_1/test_suite.stdout +++ /dev/null @@ -1,3 +0,0 @@ -adding dependency 'kcl1' -the lastest version '0.0.1' will be added -downloading 'test/kcl1:0.0.1' from 'localhost:5001/test/kcl1:0.0.1' \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_2/test_suite.stdout b/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_2/test_suite.stdout deleted file mode 100644 index ee2e9c3e..00000000 --- a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_2/test_suite.stdout +++ /dev/null @@ -1,5 +0,0 @@ -adding dependency 'kcl2' -the lastest version '0.0.1' will be added -downloading 'test/kcl2:0.0.1' from 'localhost:5001/test/kcl2:0.0.1' -downloading 'test/k8s:1.27' from 'localhost:5001/test/k8s:1.27' -downloading 'test/kcl1:0.0.1' from 'localhost:5001/test/kcl1:0.0.1' \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_3/test_suite.stdout b/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_3/test_suite.stdout deleted file mode 100644 index 38f8193c..00000000 --- a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_3/test_suite.stdout +++ /dev/null @@ -1,5 +0,0 @@ -adding dependency 'kcl2' -the lastest version '0.0.1' will be added -downloading 'test/kcl2:0.0.1' from 'localhost:5001/test/kcl2:0.0.1' -downloading 'test/k8s:1.27' from 'localhost:5001/test/k8s:1.27' -downloading 'test/kcl1:0.0.1' from 'localhost:5001/test/kcl1:0.0.1' diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_tag/test_suite.stdout b/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_tag/test_suite.stdout index 962a62f8..e9bb3c4e 100644 --- a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_tag/test_suite.stdout +++ b/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_tag/test_suite.stdout @@ -1,3 +1 @@ -adding dependency 'k8s' -downloading 'test/k8s:1.14' from 'localhost:5001/test/k8s:1.14' add dependency 'k8s:1.14' successfully diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_path_1/test_suite.stdout b/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_path_1/test_suite.stdout index f07f329e..a7aab52f 100644 --- a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_path_1/test_suite.stdout +++ b/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_path_1/test_suite.stdout @@ -1,3 +1 @@ -adding dependency 'a_kcl_pkg_dep_pkg_name' -downloading 'test/k8s:1.27' from 'localhost:5001/test/k8s:1.27' add dependency 'a_kcl_pkg_dep_pkg_name:0.0.1' successfully diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_path_2/test_suite.stdout b/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_path_2/test_suite.stdout deleted file mode 100644 index 079b3648..00000000 --- a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_path_2/test_suite.stdout +++ /dev/null @@ -1,3 +0,0 @@ -adding dependency 'a_kcl_pkg_dep_pkg_name' -downloading 'test/k8s:1.27' from 'localhost:5001/test/k8s:1.27' -downloading 'test/kcl1:0.0.1' from 'localhost:5001/test/kcl1:0.0.1' \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_relative_path/test_suite.stdout b/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_relative_path/test_suite.stdout index 0b7cd806..15e67d33 100644 --- a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_relative_path/test_suite.stdout +++ b/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_relative_path/test_suite.stdout @@ -1,3 +1 @@ -adding dependency 'a_kcl_pkg_dep_pkg_name' -downloading 'test/k8s:1.27' from 'localhost:5001/test/k8s:1.27' add dependency 'a_kcl_pkg_dep_pkg_name:0.0.1' successfully \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_1/test_suite.env b/test/e2e/test_suites/kpm/kpm_add/add_with_name_1/test_suite.env similarity index 100% rename from test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_1/test_suite.env rename to test/e2e/test_suites/kpm/kpm_add/add_with_name_1/test_suite.env diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_1/test_suite.input b/test/e2e/test_suites/kpm/kpm_add/add_with_name_1/test_suite.input similarity index 100% rename from test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_1/test_suite.input rename to test/e2e/test_suites/kpm/kpm_add/add_with_name_1/test_suite.input diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_2/test_suite.stderr b/test/e2e/test_suites/kpm/kpm_add/add_with_name_1/test_suite.stderr similarity index 100% rename from test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_2/test_suite.stderr rename to test/e2e/test_suites/kpm/kpm_add/add_with_name_1/test_suite.stderr diff --git a/test/e2e/test_suites/kpm/kpm_add/add_with_name_1/test_suite.stdout b/test/e2e/test_suites/kpm/kpm_add/add_with_name_1/test_suite.stdout new file mode 100644 index 00000000..eb14c848 --- /dev/null +++ b/test/e2e/test_suites/kpm/kpm_add/add_with_name_1/test_suite.stdout @@ -0,0 +1 @@ +add dependency 'kcl1' successfully \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_2/test_suite.env b/test/e2e/test_suites/kpm/kpm_add/add_with_name_2/test_suite.env similarity index 100% rename from test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_2/test_suite.env rename to test/e2e/test_suites/kpm/kpm_add/add_with_name_2/test_suite.env diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_2/test_suite.input b/test/e2e/test_suites/kpm/kpm_add/add_with_name_2/test_suite.input similarity index 100% rename from test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_2/test_suite.input rename to test/e2e/test_suites/kpm/kpm_add/add_with_name_2/test_suite.input diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_3/test_suite.stderr b/test/e2e/test_suites/kpm/kpm_add/add_with_name_2/test_suite.stderr similarity index 100% rename from test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_3/test_suite.stderr rename to test/e2e/test_suites/kpm/kpm_add/add_with_name_2/test_suite.stderr diff --git a/test/e2e/test_suites/kpm/kpm_add/add_with_name_2/test_suite.stdout b/test/e2e/test_suites/kpm/kpm_add/add_with_name_2/test_suite.stdout new file mode 100644 index 00000000..94ea214e --- /dev/null +++ b/test/e2e/test_suites/kpm/kpm_add/add_with_name_2/test_suite.stdout @@ -0,0 +1 @@ +add dependency 'kcl2' successfully \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_3/test_suite.env b/test/e2e/test_suites/kpm/kpm_add/add_with_name_3/test_suite.env similarity index 100% rename from test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_3/test_suite.env rename to test/e2e/test_suites/kpm/kpm_add/add_with_name_3/test_suite.env diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_3/test_suite.input b/test/e2e/test_suites/kpm/kpm_add/add_with_name_3/test_suite.input similarity index 100% rename from test/e2e/test_suites/kpm/exec_inside_pkg/add_with_name_3/test_suite.input rename to test/e2e/test_suites/kpm/kpm_add/add_with_name_3/test_suite.input diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_path_2/test_suite.stderr b/test/e2e/test_suites/kpm/kpm_add/add_with_name_3/test_suite.stderr similarity index 100% rename from test/e2e/test_suites/kpm/exec_inside_pkg/add_with_path_2/test_suite.stderr rename to test/e2e/test_suites/kpm/kpm_add/add_with_name_3/test_suite.stderr diff --git a/test/e2e/test_suites/kpm/kpm_add/add_with_name_3/test_suite.stdout b/test/e2e/test_suites/kpm/kpm_add/add_with_name_3/test_suite.stdout new file mode 100644 index 00000000..94ea214e --- /dev/null +++ b/test/e2e/test_suites/kpm/kpm_add/add_with_name_3/test_suite.stdout @@ -0,0 +1 @@ +add dependency 'kcl2' successfully \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_path_2/test_suite.env b/test/e2e/test_suites/kpm/kpm_add/add_with_path_2/test_suite.env similarity index 100% rename from test/e2e/test_suites/kpm/exec_inside_pkg/add_with_path_2/test_suite.env rename to test/e2e/test_suites/kpm/kpm_add/add_with_path_2/test_suite.env diff --git a/test/e2e/test_suites/kpm/exec_inside_pkg/add_with_path_2/test_suite.input b/test/e2e/test_suites/kpm/kpm_add/add_with_path_2/test_suite.input similarity index 100% rename from test/e2e/test_suites/kpm/exec_inside_pkg/add_with_path_2/test_suite.input rename to test/e2e/test_suites/kpm/kpm_add/add_with_path_2/test_suite.input diff --git a/test/e2e/test_suites/kpm/kpm_add/add_with_path_2/test_suite.stderr b/test/e2e/test_suites/kpm/kpm_add/add_with_path_2/test_suite.stderr new file mode 100644 index 00000000..e69de29b diff --git a/test/e2e/test_suites/kpm/kpm_add/add_with_path_2/test_suite.stdout b/test/e2e/test_suites/kpm/kpm_add/add_with_path_2/test_suite.stdout new file mode 100644 index 00000000..15e67d33 --- /dev/null +++ b/test/e2e/test_suites/kpm/kpm_add/add_with_path_2/test_suite.stdout @@ -0,0 +1 @@ +add dependency 'a_kcl_pkg_dep_pkg_name:0.0.1' successfully \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/kpm_add/test_add_with_name/test_suite.stdout b/test/e2e/test_suites/kpm/kpm_add/test_add_with_name/test_suite.stdout index 26b3802b..17f1ed2f 100644 --- a/test/e2e/test_suites/kpm/kpm_add/test_add_with_name/test_suite.stdout +++ b/test/e2e/test_suites/kpm/kpm_add/test_add_with_name/test_suite.stdout @@ -1,4 +1 @@ -adding dependency 'k8s' -the lastest version '1.27' will be added -downloading 'test/k8s:1.27' from 'localhost:5001/test/k8s:1.27' add dependency 'k8s' successfully diff --git a/test/e2e/test_suites/kpm/kpm_add/test_kpm_add_git_commit/test_suite.stdout b/test/e2e/test_suites/kpm/kpm_add/test_kpm_add_git_commit/test_suite.stdout index a46bd1a1..41ff69ed 100644 --- a/test/e2e/test_suites/kpm/kpm_add/test_kpm_add_git_commit/test_suite.stdout +++ b/test/e2e/test_suites/kpm/kpm_add/test_kpm_add_git_commit/test_suite.stdout @@ -1,2 +1 @@ -adding dependency 'catalog' -cloning 'https://github.com/KusionStack/catalog.git' with commit '3891e96' \ No newline at end of file +add dependency 'catalog:3891e96' successfully \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/kpm_add/test_kpm_add_git_commit_0/test_suite.stdout b/test/e2e/test_suites/kpm/kpm_add/test_kpm_add_git_commit_0/test_suite.stdout index 72e77907..107be881 100644 --- a/test/e2e/test_suites/kpm/kpm_add/test_kpm_add_git_commit_0/test_suite.stdout +++ b/test/e2e/test_suites/kpm/kpm_add/test_kpm_add_git_commit_0/test_suite.stdout @@ -1,3 +1 @@ -adding dependency 'flask-demo-kcl-manifests' -cloning 'https://github.com/kcl-lang/flask-demo-kcl-manifests.git' with commit '0b3f5ab' add dependency 'flask-demo-kcl-manifests:0b3f5ab' successfully \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/kpm_add/test_kpm_add_git_commit_1/test_suite.stdout b/test/e2e/test_suites/kpm/kpm_add/test_kpm_add_git_commit_1/test_suite.stdout index 8e7f0a39..57b34175 100644 --- a/test/e2e/test_suites/kpm/kpm_add/test_kpm_add_git_commit_1/test_suite.stdout +++ b/test/e2e/test_suites/kpm/kpm_add/test_kpm_add_git_commit_1/test_suite.stdout @@ -1,3 +1 @@ -adding dependency 'flask-demo-kcl-manifests' -cloning 'https://github.com/kcl-lang/flask-demo-kcl-manifests.git' with commit '8308200' add dependency 'flask-demo-kcl-manifests:8308200' successfully \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/kpm_metadata/test_kpm_metadata_with_commit_dep/test_suite.input b/test/e2e/test_suites/kpm/kpm_metadata/test_kpm_metadata_with_commit_dep/test_suite.input index 032346d8..da6fba6b 100644 --- a/test/e2e/test_suites/kpm/kpm_metadata/test_kpm_metadata_with_commit_dep/test_suite.input +++ b/test/e2e/test_suites/kpm/kpm_metadata/test_kpm_metadata_with_commit_dep/test_suite.input @@ -1 +1 @@ -kpm metadata \ No newline at end of file +kpm metadata --update \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/kpm_run/test_kpm_run_multi_local_path_2/test_suite.stdout b/test/e2e/test_suites/kpm/kpm_run/test_kpm_run_multi_local_path_2/test_suite.stdout index 17e6ee31..f4059255 100644 --- a/test/e2e/test_suites/kpm/kpm_run/test_kpm_run_multi_local_path_2/test_suite.stdout +++ b/test/e2e/test_suites/kpm/kpm_run/test_kpm_run_multi_local_path_2/test_suite.stdout @@ -1,2 +1 @@ -adding 'pkg2' The_first_kcl_program: Hello World! \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/kpm_run/test_kpm_run_multi_local_path_3/test_suite.stdout b/test/e2e/test_suites/kpm/kpm_run/test_kpm_run_multi_local_path_3/test_suite.stdout index 17e6ee31..f4059255 100644 --- a/test/e2e/test_suites/kpm/kpm_run/test_kpm_run_multi_local_path_3/test_suite.stdout +++ b/test/e2e/test_suites/kpm/kpm_run/test_kpm_run_multi_local_path_3/test_suite.stdout @@ -1,2 +1 @@ -adding 'pkg2' The_first_kcl_program: Hello World! \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/kpm_run/test_kpm_run_multi_local_path_5/test_suite.stdout b/test/e2e/test_suites/kpm/kpm_run/test_kpm_run_multi_local_path_5/test_suite.stdout index 17e6ee31..f4059255 100644 --- a/test/e2e/test_suites/kpm/kpm_run/test_kpm_run_multi_local_path_5/test_suite.stdout +++ b/test/e2e/test_suites/kpm/kpm_run/test_kpm_run_multi_local_path_5/test_suite.stdout @@ -1,2 +1 @@ -adding 'pkg2' The_first_kcl_program: Hello World! \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/kpm_run/test_kpm_run_with_only_kcl_mod/test_suite.stdout b/test/e2e/test_suites/kpm/kpm_run/test_kpm_run_with_only_kcl_mod/test_suite.stdout index 04a8d42f..adf15e56 100644 --- a/test/e2e/test_suites/kpm/kpm_run/test_kpm_run_with_only_kcl_mod/test_suite.stdout +++ b/test/e2e/test_suites/kpm/kpm_run/test_kpm_run_with_only_kcl_mod/test_suite.stdout @@ -1,3 +1 @@ -adding 'helloworld' with version '0.1.1' -downloading 'test/helloworld:0.1.1' from 'localhost:5001/test/helloworld:0.1.1' a: Hello World! \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/workflows/add_multi_times/2.first_add_konfig_dep/test_suite.stdout b/test/e2e/test_suites/kpm/workflows/add_multi_times/2.first_add_konfig_dep/test_suite.stdout index 3bc1f11c..f41d3344 100644 --- a/test/e2e/test_suites/kpm/workflows/add_multi_times/2.first_add_konfig_dep/test_suite.stdout +++ b/test/e2e/test_suites/kpm/workflows/add_multi_times/2.first_add_konfig_dep/test_suite.stdout @@ -1,3 +1 @@ -adding dependency 'konfig' -cloning 'https://github.com/awesome-kusion/konfig.git' with tag 'v0.0.1' add dependency 'konfig:v0.0.1' successfully \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/workflows/add_multi_times/3.second_add_konfig_dep/test_suite.stdout b/test/e2e/test_suites/kpm/workflows/add_multi_times/3.second_add_konfig_dep/test_suite.stdout index 95e5b69e..f41d3344 100644 --- a/test/e2e/test_suites/kpm/workflows/add_multi_times/3.second_add_konfig_dep/test_suite.stdout +++ b/test/e2e/test_suites/kpm/workflows/add_multi_times/3.second_add_konfig_dep/test_suite.stdout @@ -1,2 +1 @@ -adding dependency 'konfig' add dependency 'konfig:v0.0.1' successfully \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/workflows/add_multi_times/4.third_add_konfig_dep/test_suite.stdout b/test/e2e/test_suites/kpm/workflows/add_multi_times/4.third_add_konfig_dep/test_suite.stdout index 95e5b69e..f41d3344 100644 --- a/test/e2e/test_suites/kpm/workflows/add_multi_times/4.third_add_konfig_dep/test_suite.stdout +++ b/test/e2e/test_suites/kpm/workflows/add_multi_times/4.third_add_konfig_dep/test_suite.stdout @@ -1,2 +1 @@ -adding dependency 'konfig' add dependency 'konfig:v0.0.1' successfully \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/workflows/init_add_and_run/2.kpm_add/test_suite.stdout b/test/e2e/test_suites/kpm/workflows/init_add_and_run/2.kpm_add/test_suite.stdout index 8e7f0a39..57b34175 100644 --- a/test/e2e/test_suites/kpm/workflows/init_add_and_run/2.kpm_add/test_suite.stdout +++ b/test/e2e/test_suites/kpm/workflows/init_add_and_run/2.kpm_add/test_suite.stdout @@ -1,3 +1 @@ -adding dependency 'flask-demo-kcl-manifests' -cloning 'https://github.com/kcl-lang/flask-demo-kcl-manifests.git' with commit '8308200' add dependency 'flask-demo-kcl-manifests:8308200' successfully \ No newline at end of file diff --git a/test/e2e/test_suites/test_data/add_with_name_1/kcl.mod b/test/e2e/test_suites/test_data/add_with_name_1/kcl.mod new file mode 100644 index 00000000..bfa6c20a --- /dev/null +++ b/test/e2e/test_suites/test_data/add_with_name_1/kcl.mod @@ -0,0 +1,5 @@ +[package] +name = "add_with_name_1" +edition = "v0.8.0" +version = "0.0.1" + diff --git a/test/e2e/test_suites/test_data/add_with_name_1/kcl.mod.lock b/test/e2e/test_suites/test_data/add_with_name_1/kcl.mod.lock new file mode 100644 index 00000000..e69de29b diff --git a/test/e2e/test_suites/test_data/add_with_name_1/main.k b/test/e2e/test_suites/test_data/add_with_name_1/main.k new file mode 100644 index 00000000..fa7048e6 --- /dev/null +++ b/test/e2e/test_suites/test_data/add_with_name_1/main.k @@ -0,0 +1 @@ +The_first_kcl_program = 'Hello World!' \ No newline at end of file diff --git a/test/e2e/test_suites/test_data/add_with_name_2/kcl.mod b/test/e2e/test_suites/test_data/add_with_name_2/kcl.mod new file mode 100644 index 00000000..91a22fb1 --- /dev/null +++ b/test/e2e/test_suites/test_data/add_with_name_2/kcl.mod @@ -0,0 +1,5 @@ +[package] +name = "add_with_name_2" +edition = "v0.8.0" +version = "0.0.1" + diff --git a/test/e2e/test_suites/test_data/add_with_name_2/kcl.mod.lock b/test/e2e/test_suites/test_data/add_with_name_2/kcl.mod.lock new file mode 100644 index 00000000..e69de29b diff --git a/test/e2e/test_suites/test_data/add_with_name_2/main.k b/test/e2e/test_suites/test_data/add_with_name_2/main.k new file mode 100644 index 00000000..fa7048e6 --- /dev/null +++ b/test/e2e/test_suites/test_data/add_with_name_2/main.k @@ -0,0 +1 @@ +The_first_kcl_program = 'Hello World!' \ No newline at end of file diff --git a/test/e2e/test_suites/test_data/add_with_name_3/kcl.mod b/test/e2e/test_suites/test_data/add_with_name_3/kcl.mod new file mode 100644 index 00000000..0820eac6 --- /dev/null +++ b/test/e2e/test_suites/test_data/add_with_name_3/kcl.mod @@ -0,0 +1,5 @@ +[package] +name = "add_with_name_3" +edition = "v0.8.0" +version = "0.0.1" + diff --git a/test/e2e/test_suites/test_data/add_with_name_3/kcl.mod.lock b/test/e2e/test_suites/test_data/add_with_name_3/kcl.mod.lock new file mode 100644 index 00000000..e69de29b diff --git a/test/e2e/test_suites/test_data/add_with_name_3/main.k b/test/e2e/test_suites/test_data/add_with_name_3/main.k new file mode 100644 index 00000000..fa7048e6 --- /dev/null +++ b/test/e2e/test_suites/test_data/add_with_name_3/main.k @@ -0,0 +1 @@ +The_first_kcl_program = 'Hello World!' \ No newline at end of file diff --git a/test/e2e/test_suites/test_data/add_with_path_2/a_kcl_pkg_dep_one_pkg_2/kcl.mod b/test/e2e/test_suites/test_data/add_with_path_2/a_kcl_pkg_dep_one_pkg_2/kcl.mod new file mode 100644 index 00000000..2ac8c707 --- /dev/null +++ b/test/e2e/test_suites/test_data/add_with_path_2/a_kcl_pkg_dep_one_pkg_2/kcl.mod @@ -0,0 +1,8 @@ +[package] +name = "a_kcl_pkg_dep_pkg_name" +edition = "0.0.1" +version = "0.0.1" + +[dependencies] +k8s = "1.27" +kcl1 = "0.0.1" diff --git a/test/e2e/test_suites/test_data/add_with_path_2/a_kcl_pkg_dep_one_pkg_2/kcl.mod.lock b/test/e2e/test_suites/test_data/add_with_path_2/a_kcl_pkg_dep_one_pkg_2/kcl.mod.lock new file mode 100644 index 00000000..cb5098f3 --- /dev/null +++ b/test/e2e/test_suites/test_data/add_with_path_2/a_kcl_pkg_dep_one_pkg_2/kcl.mod.lock @@ -0,0 +1,17 @@ +[dependencies] + [dependencies.k8s] + name = "k8s" + full_name = "k8s_1.27" + version = "1.27" + sum = "xnYM1FWHAy3m+KcQMQb2rjZouTxumqYt6FGZpu2T4yM=" + reg = "localhost:5001" + repo = "test/k8s" + oci_tag = "1.27" + [dependencies.kcl1] + name = "kcl1" + full_name = "kcl1_0.0.1" + version = "0.0.1" + sum = "zLzaol7KpC57mKLQ/56ciIHO397Rk/Dum+meo+tUsw8=" + reg = "localhost:5001" + repo = "test/kcl1" + oci_tag = "0.0.1" diff --git a/test/e2e/test_suites/test_data/add_with_path_2/a_kcl_pkg_dep_one_pkg_2/main.k b/test/e2e/test_suites/test_data/add_with_path_2/a_kcl_pkg_dep_one_pkg_2/main.k new file mode 100644 index 00000000..fa7048e6 --- /dev/null +++ b/test/e2e/test_suites/test_data/add_with_path_2/a_kcl_pkg_dep_one_pkg_2/main.k @@ -0,0 +1 @@ +The_first_kcl_program = 'Hello World!' \ No newline at end of file diff --git a/test/e2e/test_suites/test_data/add_with_path_2/kcl.mod b/test/e2e/test_suites/test_data/add_with_path_2/kcl.mod new file mode 100644 index 00000000..70b785cf --- /dev/null +++ b/test/e2e/test_suites/test_data/add_with_path_2/kcl.mod @@ -0,0 +1,5 @@ +[package] +name = "add_with_path_2" +edition = "v0.8.0" +version = "0.0.1" + diff --git a/test/e2e/test_suites/test_data/add_with_path_2/kcl.mod.lock b/test/e2e/test_suites/test_data/add_with_path_2/kcl.mod.lock new file mode 100644 index 00000000..e69de29b diff --git a/test/e2e/test_suites/test_data/add_with_path_2/main.k b/test/e2e/test_suites/test_data/add_with_path_2/main.k new file mode 100644 index 00000000..fa7048e6 --- /dev/null +++ b/test/e2e/test_suites/test_data/add_with_path_2/main.k @@ -0,0 +1 @@ +The_first_kcl_program = 'Hello World!' \ No newline at end of file diff --git a/test/e2e/test_suites/test_data/test_kcl/kcl.mod.lock b/test/e2e/test_suites/test_data/test_kcl/kcl.mod.lock index 740082e4..9e9d1809 100644 --- a/test/e2e/test_suites/test_data/test_kcl/kcl.mod.lock +++ b/test/e2e/test_suites/test_data/test_kcl/kcl.mod.lock @@ -1,8 +1,7 @@ [dependencies] [dependencies.kcl4] name = "kcl4" - full_name = "kcl4_v0.1.0" - version = "v0.1.0" - sum = "ecdMCD96+8by5Ml0l/V0b7W24CS250rvD5VdlqqR6OU=" + full_name = "kcl4_0.0.1" + version = "0.0.1" url = "https://github.com/zong-zhe/kcl4.git" - git_tag = "v0.1.0" \ No newline at end of file + git_tag = "v0.1.0" diff --git a/test/e2e/test_suites/test_data/test_kpm_run_multi_local_path_0/pkg1/kcl.mod.lock b/test/e2e/test_suites/test_data/test_kpm_run_multi_local_path_0/pkg1/kcl.mod.lock index b047f2b6..58919f2d 100644 --- a/test/e2e/test_suites/test_data/test_kpm_run_multi_local_path_0/pkg1/kcl.mod.lock +++ b/test/e2e/test_suites/test_data/test_kpm_run_multi_local_path_0/pkg1/kcl.mod.lock @@ -3,4 +3,8 @@ name = "pkg2" full_name = "pkg2_0.0.1" version = "0.0.1" - sum = "JbfIAXPJb3L6xX7hi/A5mrXzjpB8eFoKfEmJMdHsewY=" + [dependencies.pkg3] + name = "pkg3" + full_name = "pkg3_0.0.1" + version = "0.0.1" + sum = "T29gAv6K/tLithhP5jVHyurV5zRFui+i1ulyMt/ncnM=" diff --git a/test/e2e/test_suites/test_data/test_kpm_run_with_only_kcl_mod/kcl.mod b/test/e2e/test_suites/test_data/test_kpm_run_with_only_kcl_mod/kcl.mod index 73317ff3..d8345ec0 100644 --- a/test/e2e/test_suites/test_data/test_kpm_run_with_only_kcl_mod/kcl.mod +++ b/test/e2e/test_suites/test_data/test_kpm_run_with_only_kcl_mod/kcl.mod @@ -4,4 +4,4 @@ edition = "0.0.1" version = "0.0.1" [dependencies] -helloworld = "0.1.1" +helloworld = "0.1.2" From e493d91cc7dd121cd5d68078052f33998395060a Mon Sep 17 00:00:00 2001 From: zongz Date: Thu, 23 May 2024 16:52:55 +0800 Subject: [PATCH 2/6] fix: fix CR comments Signed-off-by: zongz --- .github/workflows/e2e-test.yml | 14 +-- .github/workflows/test-win.yaml | 14 +-- .github/workflows/test.yaml | 14 +-- pkg/3rdparty/mvs/mvs.go | 6 +- pkg/api/kpm_pkg.go | 2 +- pkg/api/kpm_pkg_test.go | 12 +- .../test_run_pkg_in_path/expected.json | 2 +- .../test_run_tar_in_path/expected.json | 2 +- pkg/client/client.go | 114 ++++++++++-------- pkg/client/client_test.go | 7 -- pkg/cmd/cmd_metadata.go | 14 +++ pkg/cmd/cmd_run.go | 14 +++ pkg/package/modfile.go | 42 ++----- pkg/package/modfile_test.go | 8 +- scripts/pull_pkg.sh | 4 + scripts/push_pkg.sh | 6 + .../test_suite.stdout | 2 +- .../test_data/test_add_with_name/kcl.mod | 2 + .../test_data/test_add_with_name/kcl.mod.lock | 9 ++ .../kcl.mod.lock | 8 +- .../test_update/kcl.mod.lock | 2 +- 21 files changed, 168 insertions(+), 130 deletions(-) diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml index 5af74d22..298be81d 100644 --- a/.github/workflows/e2e-test.yml +++ b/.github/workflows/e2e-test.yml @@ -1,11 +1,11 @@ name: e2e test -on: - pull_request: - branches: - - main - push: - branches: - - main +on: push + # pull_request: + # branches: + # - main + # push: + # branches: + # - main jobs: e2e: diff --git a/.github/workflows/test-win.yaml b/.github/workflows/test-win.yaml index ed0ea934..be858f28 100644 --- a/.github/workflows/test-win.yaml +++ b/.github/workflows/test-win.yaml @@ -1,11 +1,11 @@ name: Windows Test -on: - pull_request: - branches: - - main - push: - branches: - - main +on: push + # pull_request: + # branches: + # - main + # push: + # branches: + # - main jobs: TestWindows: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 522401a1..beed18b5 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -1,13 +1,13 @@ # Reference from: # https://github.com/c-bata/go-prompt/blob/master/.github/workflows/test.yml name: Test -on: - pull_request: - branches: - - main - push: - branches: - - main +on: push + # pull_request: + # branches: + # - main + # push: + # branches: + # - main jobs: Test: diff --git a/pkg/3rdparty/mvs/mvs.go b/pkg/3rdparty/mvs/mvs.go index 84542347..ca427784 100644 --- a/pkg/3rdparty/mvs/mvs.go +++ b/pkg/3rdparty/mvs/mvs.go @@ -236,7 +236,7 @@ func Req(mainModule module.Version, base []string, reqs Reqs) ([]module.Version, } have[m] = true for _, m1 := range reqCache[m] { - walk(m1) + _ = walk(m1) } return nil } @@ -249,7 +249,7 @@ func Req(mainModule module.Version, base []string, reqs Reqs) ([]module.Version, } m := module.Version{Path: path, Version: max[path]} min = append(min, m) - walk(m) + _ = walk(m) haveBase[path] = true } // Now the reverse postorder to bring in anything else. @@ -261,7 +261,7 @@ func Req(mainModule module.Version, base []string, reqs Reqs) ([]module.Version, } if !have[m] { min = append(min, m) - walk(m) + _ = walk(m) } } sort.Slice(min, func(i, j int) bool { diff --git a/pkg/api/kpm_pkg.go b/pkg/api/kpm_pkg.go index de6ec116..357976fb 100644 --- a/pkg/api/kpm_pkg.go +++ b/pkg/api/kpm_pkg.go @@ -64,7 +64,7 @@ func (pkg *KclPackage) UpdateDependencyInPath(pkg_path string) error { if err != nil { return err } - return kpmcli.ResolvePkgDepsMetadata(pkg.pkg, &pkg.pkg.Dependencies, true) + return kpmcli.ResolvePkgDepsMetadata(pkg.pkg, true) } // GetPkgName returns the name of the package. diff --git a/pkg/api/kpm_pkg_test.go b/pkg/api/kpm_pkg_test.go index 3ee5b65d..b088d9e5 100644 --- a/pkg/api/kpm_pkg_test.go +++ b/pkg/api/kpm_pkg_test.go @@ -18,7 +18,7 @@ func TestPackageApi(t *testing.T) { assert.Equal(t, err, nil) pkg, err := GetKclPackage(pkg_path) assert.Equal(t, err, nil) - err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, &pkg.pkg.Dependencies, true) + err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, true) assert.Equal(t, err, nil) assert.Equal(t, pkg.GetPkgName(), "kcl_pkg") assert.Equal(t, pkg.GetVersion(), "0.0.1") @@ -33,7 +33,7 @@ func TestPackageApi(t *testing.T) { assert.Equal(t, dep.Source.Oci.Repo, "kcl-lang/k8s") assert.Equal(t, dep.Source.Oci.Tag, "1.27") - assert.Equal(t, dep.GetLocalFullPath(), filepath.Join(kcl_pkg_path, "k8s_1.27")) + assert.Equal(t, dep.GetLocalFullPath(""), filepath.Join(kcl_pkg_path, "k8s_1.27")) schemas, err := pkg.GetAllSchemaTypeMapping() assert.Equal(t, err, nil) @@ -79,7 +79,7 @@ func TestGetAllSchemaTypesMappingNamed(t *testing.T) { kpmcli, err := client.NewKpmClient() assert.Equal(t, err, nil) - err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, &pkg.pkg.Dependencies, true) + err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, true) assert.Equal(t, err, nil) schemas, err := pkg.GetSchemaTypeMappingNamed("SchemaWithSameName") @@ -103,7 +103,7 @@ func TestGetSchemaTypeMappingWithFilters(t *testing.T) { assert.Equal(t, err, nil) kpmcli, err := client.NewKpmClient() assert.Equal(t, err, nil) - err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, &pkg.pkg.Dependencies, true) + err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, true) assert.Equal(t, err, nil) filterFunc := func(kt *KclType) bool { @@ -154,7 +154,7 @@ func TestGetFullSchemaTypeMappingWithFilters(t *testing.T) { assert.Equal(t, err, nil) kpmcli, err := client.NewKpmClient() assert.Equal(t, err, nil) - err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, &pkg.pkg.Dependencies, true) + err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, true) assert.Equal(t, err, nil) filterFunc := func(kt *KclType) bool { @@ -175,7 +175,7 @@ func TestGetSchemaTypeUnderEmptyDir(t *testing.T) { assert.Equal(t, err, nil) kpmcli, err := client.NewKpmClient() assert.Equal(t, err, nil) - err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, &pkg.pkg.Dependencies, true) + err = kpmcli.ResolvePkgDepsMetadata(pkg.pkg, true) assert.Equal(t, err, nil) schemas, err := pkg.GetSchemaTypeMappingNamed("SchemaInMain") assert.Equal(t, err, nil) diff --git a/pkg/api/test_data/test_run_pkg_in_path/expected.json b/pkg/api/test_data/test_run_pkg_in_path/expected.json index f3692f1f..d7937857 100644 --- a/pkg/api/test_data/test_run_pkg_in_path/expected.json +++ b/pkg/api/test_data/test_run_pkg_in_path/expected.json @@ -1 +1 @@ -{"a":{"containers":{"flaskdemo":{"image":"kcllang/flask_demo:8d31498e765ff67a2fa9933d4adffe067544b2fe","ports":[{"containerPort":5000,"protocol":"TCP"}]}},"labels":{"app":"flask-demo"},"name":"flask-demo","replicas":1,"service":{"ports":[{"port":5000,"protocol":"TCP","targetPort":5000}],"type":"NodePort"}}} +{"a": {"name": "flask-demo", "replicas": 1, "labels": {"app": "flask-demo"}, "service": {"type": "NodePort", "ports": [{"port": 5000, "protocol": "TCP", "targetPort": 5000}]}, "containers": {"flaskdemo": {"image": "kcllang/flask_demo:8d31498e765ff67a2fa9933d4adffe067544b2fe", "ports": [{"protocol": "TCP", "containerPort": 5000}]}}}} \ No newline at end of file diff --git a/pkg/api/test_data/test_run_tar_in_path/expected.json b/pkg/api/test_data/test_run_tar_in_path/expected.json index f3692f1f..d7937857 100644 --- a/pkg/api/test_data/test_run_tar_in_path/expected.json +++ b/pkg/api/test_data/test_run_tar_in_path/expected.json @@ -1 +1 @@ -{"a":{"containers":{"flaskdemo":{"image":"kcllang/flask_demo:8d31498e765ff67a2fa9933d4adffe067544b2fe","ports":[{"containerPort":5000,"protocol":"TCP"}]}},"labels":{"app":"flask-demo"},"name":"flask-demo","replicas":1,"service":{"ports":[{"port":5000,"protocol":"TCP","targetPort":5000}],"type":"NodePort"}}} +{"a": {"name": "flask-demo", "replicas": 1, "labels": {"app": "flask-demo"}, "service": {"type": "NodePort", "ports": [{"port": 5000, "protocol": "TCP", "targetPort": 5000}]}, "containers": {"flaskdemo": {"image": "kcllang/flask_demo:8d31498e765ff67a2fa9933d4adffe067544b2fe", "ports": [{"protocol": "TCP", "containerPort": 5000}]}}}} \ No newline at end of file diff --git a/pkg/client/client.go b/pkg/client/client.go index 66dfbf01..b20c8136 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -165,6 +165,7 @@ func (c *KpmClient) LoadModFile(pkgPath string) (*pkg.ModFile, error) { return modFile, nil } +// Load the kcl.mod.lock and acquire the checksum of the dependencies from OCI registry. func (c *KpmClient) LoadLockDeps(pkgPath string) (*pkg.Dependencies, error) { deps, err := pkg.LoadLockDeps(pkgPath) if err != nil { @@ -183,7 +184,7 @@ func (c *KpmClient) LoadLockDeps(pkgPath string) (*pkg.Dependencies, error) { return deps, nil } -// Check whether the dependencies in kcl.mod.lock are the same as the dependencies from the source. +// AcquireDepSum will acquire the checksum of the dependency from the OCI registry. func (c *KpmClient) AcquireDepSum(dep pkg.Dependency) (string, error) { // Only the dependencies from the OCI need can be checked. if dep.Source.Oci != nil { @@ -202,7 +203,7 @@ func (c *KpmClient) AcquireDepSum(dep pkg.Dependency) (string, error) { OciOptions: opt.OciOptions{ Reg: dep.Source.Oci.Reg, Repo: dep.Source.Oci.Repo, - Tag: dep.Version, + Tag: dep.Source.Oci.Tag, }, }) @@ -226,7 +227,7 @@ func (c *KpmClient) AcquireDepSum(dep pkg.Dependency) (string, error) { // ResolveDepsIntoMap will calculate the map of kcl package name and local storage path of the external packages. func (c *KpmClient) ResolveDepsIntoMap(kclPkg *pkg.KclPkg) (map[string]string, error) { - err := c.ResolvePkgDepsMetadata(kclPkg, &kclPkg.Dependencies, true) + err := c.ResolvePkgDepsMetadata(kclPkg, true) if err != nil { return nil, err } @@ -237,24 +238,43 @@ func (c *KpmClient) ResolveDepsIntoMap(kclPkg *pkg.KclPkg) (map[string]string, e } var pkgMap map[string]string = make(map[string]string) for _, d := range depMetadatas.Deps { - pkgMap[d.GetAliasName()] = d.GetLocalFullPath() + pkgMap[d.GetAliasName()] = d.GetLocalFullPath(kclPkg.HomePath) } return pkgMap, nil } -// Get the search for the dependency. +const PKG_NAME_PATTERN = "%s_%s" + +// Get the local store path for the dependency. // 1. in the KCL_PKG_PATH: default is $HOME/.kcl/kpm // 2. in the vendor subdirectory of the current package. // 3. the dependency is from the local path. -func (c *KpmClient) getDepStorePath(dep pkg.Dependency, isVendor bool) string { - if dep.IsFromLocal() { - return dep.GetLocalFullPath() +func (c *KpmClient) getDepStorePath(search_path string, d pkg.Dependency, isVendor bool) string { + + var storePkgName string + + if d.Source.Oci != nil { + storePkgName = fmt.Sprintf(PKG_NAME_PATTERN, d.Name, d.Source.Oci.Tag) + } else if d.Source.Git != nil { + if len(d.Source.Git.Tag) != 0 { + storePkgName = fmt.Sprintf(PKG_NAME_PATTERN, d.Name, d.Source.Git.Tag) + } else if len(d.Source.Git.Commit) != 0 { + storePkgName = fmt.Sprintf(PKG_NAME_PATTERN, d.Name, d.Source.Git.Commit) + } else { + storePkgName = fmt.Sprintf(PKG_NAME_PATTERN, d.Name, d.Source.Git.Branch) + } + } else { + storePkgName = fmt.Sprintf(PKG_NAME_PATTERN, d.Name, d.Version) + } + + if d.IsFromLocal() { + return d.GetLocalFullPath(search_path) } else { if isVendor { - return filepath.Join(dep.HomePath, "vendor", dep.GenDepFullName()) + return filepath.Join(search_path, "vendor", storePkgName) } else { - return filepath.Join(c.homePath, dep.GenDepFullName()) + return filepath.Join(c.homePath, storePkgName) } } } @@ -264,22 +284,11 @@ func (c *KpmClient) getDepStorePath(dep pkg.Dependency, isVendor bool) string { // If the package does not exist, it will re-download to the local. // Since redownloads are not triggered if local dependencies exists, // indirect dependencies are also synchronized to the lock file by `lockDeps`. -func (c *KpmClient) ResolvePkgDepsMetadata(kclPkg *pkg.KclPkg, lockDeps *pkg.Dependencies, update bool) error { - // In the face of dependencies that do not exist locally, a re-download will be triggered, so a lock is required - // acquire the lock of the package cache. - err := c.AcquirePackageCacheLock() - if err != nil { - return err - } - - defer func() { - // release the lock of the package cache after the function returns. - releaseErr := c.ReleasePackageCacheLock() - if releaseErr != nil && err == nil { - err = releaseErr - } - }() +func (c *KpmClient) ResolvePkgDepsMetadata(kclPkg *pkg.KclPkg, update bool) error { + return c.resolvePkgDeps(kclPkg, &kclPkg.Dependencies, update) +} +func (c *KpmClient) resolvePkgDeps(kclPkg *pkg.KclPkg, lockDeps *pkg.Dependencies, update bool) error { var searchPath string kclPkg.NoSumCheck = c.noSumCheck @@ -302,7 +311,7 @@ func (c *KpmClient) ResolvePkgDepsMetadata(kclPkg *pkg.KclPkg, lockDeps *pkg.Dep // clean the dependencies in kcl.mod.lock and kcl.mod which have different version for name, dep := range kclPkg.Dependencies.Deps { modDep, ok := kclPkg.ModFile.Dependencies.Deps[name] - if !ok || !dep.WithTheSameVersion(modDep) { + if !ok || !dep.Equals(modDep) { delete(kclPkg.Dependencies.Deps, name) } } @@ -331,7 +340,7 @@ func (c *KpmClient) ResolvePkgDepsMetadata(kclPkg *pkg.KclPkg, lockDeps *pkg.Dep } for name, d := range kclPkg.Dependencies.Deps { - searchPath = c.getDepStorePath(d, kclPkg.IsVendorMode()) + searchPath = c.getDepStorePath(kclPkg.HomePath, d, kclPkg.IsVendorMode()) depPath := searchPath // if the dependency is not exist if !utils.DirExists(searchPath) { @@ -353,7 +362,7 @@ func (c *KpmClient) ResolvePkgDepsMetadata(kclPkg *pkg.KclPkg, lockDeps *pkg.Dep if err != nil { return err } - depPath = filepath.Join(c.homePath, d.GetPkgPathName()) + depPath = c.getDepStorePath(kclPkg.HomePath, d, kclPkg.IsVendorMode()) } } else { continue @@ -371,7 +380,11 @@ func (c *KpmClient) ResolvePkgDepsMetadata(kclPkg *pkg.KclPkg, lockDeps *pkg.Dep ) } d.FromKclPkg(depPkg) - err = c.ResolvePkgDepsMetadata(depPkg, lockDeps, update) + d.Sum, err = c.AcquireDepSum(d) + if err != nil { + return err + } + err = c.resolvePkgDeps(depPkg, lockDeps, update) if err != nil { return err } @@ -436,7 +449,7 @@ func (c *KpmClient) UpdateDeps(kclPkg *pkg.KclPkg) error { func (c *KpmClient) ResolveDepsMetadataInJsonStr(kclPkg *pkg.KclPkg, update bool) (string, error) { // 1. Calculate the dependency path, check whether the dependency exists // and re-download the dependency that does not exist. - err := c.ResolvePkgDepsMetadata(kclPkg, &kclPkg.Dependencies, update) + err := c.ResolvePkgDepsMetadata(kclPkg, update) if err != nil { return "", err } @@ -768,6 +781,13 @@ func (c *KpmClient) AddDepWithOpts(kclPkg *pkg.KclPkg, opt *opt.AddOptions) (*pk // AddDepToPkg will add a dependency to the kcl package. func (c *KpmClient) AddDepToPkg(kclPkg *pkg.KclPkg, d *pkg.Dependency) error { + // If the dependency is from the local path, do nothing. + if d.IsFromLocal() { + return nil + } + + // Some field will be empty when the dependency is add from CLI. + // For avoiding re-download the dependency, just complete part of the fields not all of them. if !kclPkg.ModFile.Dependencies.Deps[d.Name].Equals(*d) { // the dep passed on the cli is different from the kcl.mod. kclPkg.ModFile.Dependencies.Deps[d.Name] = *d @@ -843,25 +863,19 @@ func (c *KpmClient) VendorDeps(kclPkg *pkg.KclPkg) error { if len(d.Name) == 0 { return errors.InvalidDependency } - vendorFullPath := filepath.Join(vendorPath, d.GetPkgPathName()) + vendorFullPath := c.getDepStorePath(kclPkg.HomePath, d, true) // If the package already exists in the 'vendor', do nothing. if utils.DirExists(vendorFullPath) { continue } else { // If not in the 'vendor', check the global cache. - cacheFullPath := filepath.Join(c.homePath, d.GetPkgPathName()) + cacheFullPath := c.getDepStorePath(c.homePath, d, false) if utils.DirExists(cacheFullPath) { // If there is, copy it into the 'vendor' directory. err := copy.Copy(cacheFullPath, vendorFullPath) if err != nil { return err } - } else if utils.DirExists(d.GetLocalFullPath()) { - // If there is, copy it into the 'vendor' directory. - err := copy.Copy(d.GetLocalFullPath(), vendorFullPath) - if err != nil { - return err - } } else { // re-download if not. err = c.AddDepToPkg(kclPkg, &d) @@ -884,7 +898,6 @@ func (c *KpmClient) VendorDeps(kclPkg *pkg.KclPkg) error { // FillDepInfo will fill registry information for a dependency. func (c *KpmClient) FillDepInfo(dep *pkg.Dependency, homepath string) error { // Homepath for a dependency is the homepath of the kcl package. - dep.HomePath = homepath if dep.Source.Local != nil { dep.LocalFullPath = dep.Source.Local.Path return nil @@ -977,13 +990,13 @@ func (c *KpmClient) Download(dep *pkg.Dependency, homePath, localPath string) (* if err != nil { return nil, err } + dep.Source.Oci.Tag = latestTag + // Complete some information that the local three dependencies depend on. // The invalid path such as '$HOME/.kcl/kpm/k8s_' is placed because the version field is missing. - dep.Source.Oci.Tag = latestTag dep.Version = latestTag dep.FullName = dep.GenDepFullName() dep.LocalFullPath = filepath.Join(filepath.Dir(localPath), dep.FullName) - dep.HomePath = homePath localPath = dep.LocalFullPath if utils.DirExists(dep.LocalFullPath) { dpkg, err := c.LoadPkgFromPath(localPath) @@ -1045,7 +1058,7 @@ func (c *KpmClient) Download(dep *pkg.Dependency, homePath, localPath string) (* } if dep.Source.Local != nil { - kpkg, err := pkg.FindFirstKclPkgFrom(dep.GetLocalFullPath()) + kpkg, err := pkg.FindFirstKclPkgFrom(c.getDepStorePath(homePath, *dep, false)) if err != nil { return nil, err } @@ -1448,15 +1461,19 @@ func (c *KpmClient) InitGraphAndDownloadDeps(kclPkg *pkg.KclPkg) (*pkg.Dependenc } // dependencyExists will check whether the dependency exists in the local filesystem. -func (c *KpmClient) dependencyExistsLocal(dep *pkg.Dependency) (*pkg.Dependency, error) { +func (c *KpmClient) dependencyExistsLocal(searchPath string, dep *pkg.Dependency) (*pkg.Dependency, error) { // If the flag '--no_sum_check' is set, skip the checksum check. - deppath := c.getDepStorePath(*dep, false) + deppath := c.getDepStorePath(searchPath, *dep, false) if utils.DirExists(deppath) { depPkg, err := c.LoadPkgFromPath(deppath) if err != nil { return nil, err } dep.FromKclPkg(depPkg) + dep.Sum, err = c.AcquireDepSum(*dep) + if err != nil { + return nil, err + } return dep, nil } return nil, nil @@ -1475,7 +1492,7 @@ func (c *KpmClient) DownloadDeps(deps *pkg.Dependencies, lockDeps *pkg.Dependenc return nil, errors.InvalidDependency } - existDep, err := c.dependencyExistsLocal(&d) + existDep, err := c.dependencyExistsLocal(pkghome, &d) if existDep != nil && err == nil { newDeps.Deps[d.Name] = *existDep continue @@ -1486,7 +1503,8 @@ func (c *KpmClient) DownloadDeps(deps *pkg.Dependencies, lockDeps *pkg.Dependenc if len(c.homePath) == 0 || len(d.FullName) == 0 { return nil, errors.InternalBug } - dir := filepath.Join(c.homePath, d.FullName) + + dir := c.getDepStorePath(c.homePath, d, false) err = os.RemoveAll(dir) if err != nil { return nil, err @@ -1498,14 +1516,14 @@ func (c *KpmClient) DownloadDeps(deps *pkg.Dependencies, lockDeps *pkg.Dependenc return nil, err } - if lockedDep.Oci != nil { + if lockedDep.Oci != nil && lockedDep.Equals(lockDeps.Deps[d.Name]) { if !c.noSumCheck && expectedSum != "" && lockedDep.Sum != "" && lockedDep.Sum != expectedSum { return nil, reporter.NewErrorEvent( reporter.CheckSumMismatch, errors.CheckSumMismatchError, - fmt.Sprintf("checksum for '%s' changed in lock file", lockedDep.Name), + fmt.Sprintf("checksum for '%s' changed in lock file '%s' and '%s'", lockedDep.Name, expectedSum, lockedDep.Sum), ) } } diff --git a/pkg/client/client_test.go b/pkg/client/client_test.go index 29fafd0a..d0df4502 100644 --- a/pkg/client/client_test.go +++ b/pkg/client/client_test.go @@ -459,7 +459,6 @@ func TestResolveDepsVendorMode(t *testing.T) { FullName: "kcl1_0.0.1", Version: "0.0.1", Sum: kcl1Sum, - HomePath: home_path, } depKcl2 := pkg.Dependency{ @@ -467,7 +466,6 @@ func TestResolveDepsVendorMode(t *testing.T) { FullName: "kcl2_0.0.1", Version: "0.0.1", Sum: kcl2Sum, - HomePath: home_path, } kclPkg := pkg.KclPkg{ @@ -528,7 +526,6 @@ func TestCompileWithEntryFile(t *testing.T) { Name: "kcl1", FullName: "kcl1_0.0.1", Version: "0.0.1", - HomePath: home_path, Sum: kcl1Sum, } kcl2Sum, _ := utils.HashDir(filepath.Join(kpm_home, "kcl2")) @@ -536,7 +533,6 @@ func TestCompileWithEntryFile(t *testing.T) { Name: "kcl2", FullName: "kcl2_0.0.1", Version: "0.0.1", - HomePath: home_path, Sum: kcl2Sum, } @@ -632,7 +628,6 @@ func TestResolveMetadataInJsonStr(t *testing.T) { globalPkgPath, _ := env.GetAbsPkgPath() res, err := kpmcli.ResolveDepsMetadataInJsonStr(kclpkg, true) - fmt.Printf("err: %v\n", err) assert.Equal(t, err, nil) expectedDep := pkg.Dependencies{ @@ -643,7 +638,6 @@ func TestResolveMetadataInJsonStr(t *testing.T) { Name: "flask_demo_kcl_manifests", FullName: "flask-demo-kcl-manifests_ade147b", Version: "ade147b", - HomePath: testDir, LocalFullPath: filepath.Join(globalPkgPath, "flask-demo-kcl-manifests_ade147b"), } @@ -667,7 +661,6 @@ func TestResolveMetadataInJsonStr(t *testing.T) { Name: "flask_demo_kcl_manifests", FullName: "flask-demo-kcl-manifests_ade147b", Version: "ade147b", - HomePath: testDir, LocalFullPath: filepath.Join(vendorDir, "flask-demo-kcl-manifests_ade147b"), } diff --git a/pkg/cmd/cmd_metadata.go b/pkg/cmd/cmd_metadata.go index 29349a3c..2c3d5b4c 100644 --- a/pkg/cmd/cmd_metadata.go +++ b/pkg/cmd/cmd_metadata.go @@ -37,6 +37,20 @@ func NewMetadataCmd(kpmcli *client.KpmClient) *cli.Command { }, }, Action: func(c *cli.Context) error { + // acquire the lock of the package cache. + err := kpmcli.AcquirePackageCacheLock() + if err != nil { + return err + } + + defer func() { + // release the lock of the package cache after the function returns. + releaseErr := kpmcli.ReleasePackageCacheLock() + if releaseErr != nil && err == nil { + err = releaseErr + } + }() + pwd, err := os.Getwd() if err != nil { return reporter.NewErrorEvent(reporter.Bug, err, "internal bugs, please contact us to fix it") diff --git a/pkg/cmd/cmd_run.go b/pkg/cmd/cmd_run.go index 289f9e31..4564e5d5 100644 --- a/pkg/cmd/cmd_run.go +++ b/pkg/cmd/cmd_run.go @@ -89,6 +89,20 @@ func NewRunCmd(kpmcli *client.KpmClient) *cli.Command { } func KpmRun(c *cli.Context, kpmcli *client.KpmClient) error { + // acquire the lock of the package cache. + err := kpmcli.AcquirePackageCacheLock() + if err != nil { + return err + } + + defer func() { + // release the lock of the package cache after the function returns. + releaseErr := kpmcli.ReleasePackageCacheLock() + if releaseErr != nil && err == nil { + err = releaseErr + } + }() + kclOpts := CompileOptionFromCli(c) kclOpts.SetNoSumCheck(c.Bool(FLAG_NO_SUM_CHECK)) runEntry, errEvent := runner.FindRunEntryFrom(c.Args().Slice()) diff --git a/pkg/package/modfile.go b/pkg/package/modfile.go index 0a0196ec..261f67d9 100644 --- a/pkg/package/modfile.go +++ b/pkg/package/modfile.go @@ -7,7 +7,6 @@ import ( "net/url" "os" "path/filepath" - "reflect" "strings" "github.com/BurntSushi/toml" @@ -187,7 +186,6 @@ type Dependency struct { // In vendor mode is "current_kcl_package/vendor" // In non-vendor mode is "$KCL_PKG_PATH" LocalFullPath string `json:"manifest_path" toml:"-"` - HomePath string `json:"-" toml:"-"` Source `json:"-"` } @@ -197,39 +195,12 @@ func (d *Dependency) FromKclPkg(pkg *KclPkg) { d.LocalFullPath = pkg.HomePath } -// The name of the local storage path is generated depending on the source of the package -func (d *Dependency) GetPkgPathName() string { - if d.Source.Oci != nil { - return fmt.Sprintf(PKG_NAME_PATTERN, d.Name, d.Source.Oci.Tag) - } else if d.Source.Git != nil { - if len(d.Source.Git.Tag) != 0 { - return fmt.Sprintf(PKG_NAME_PATTERN, d.Name, d.Source.Git.Tag) - } else if len(d.Source.Git.Commit) != 0 { - return fmt.Sprintf(PKG_NAME_PATTERN, d.Name, d.Source.Git.Commit) - } else { - return fmt.Sprintf(PKG_NAME_PATTERN, d.Name, d.Source.Git.Branch) - } - } else { - return fmt.Sprintf(PKG_NAME_PATTERN, d.Name, d.Version) - } -} - // SetName will set the name and alias name of a dependency. func (d *Dependency) GetAliasName() string { return strings.ReplaceAll(d.Name, "-", "_") } func (d Dependency) Equals(other Dependency) bool { - if d.Name != other.Name { - return false - } - - return !reflect.DeepEqual(d, other) -} - -// WithTheSameVersion will check whether two dependencies have the same version. -func (d Dependency) WithTheSameVersion(other Dependency) bool { - var sameVersion = true if len(d.Version) != 0 && len(other.Version) != 0 { sameVersion = d.Version == other.Version @@ -244,16 +215,23 @@ func (d Dependency) WithTheSameVersion(other Dependency) bool { d.Source.Git.Tag == other.Source.Git.Tag) } - return sameNameAndVersion && sameGitSrc + sameOciSrc := true + if d.Source.Oci != nil && other.Source.Oci != nil { + sameOciSrc = d.Source.Oci.Reg == other.Source.Oci.Reg && + d.Source.Oci.Repo == other.Source.Oci.Repo && + d.Source.Oci.Tag == other.Source.Oci.Tag + } + + return sameNameAndVersion && sameGitSrc && sameOciSrc } // GetLocalFullPath will get the local path of a dependency. -func (dep *Dependency) GetLocalFullPath() string { +func (dep *Dependency) GetLocalFullPath(rootpath string) string { if !filepath.IsAbs(dep.LocalFullPath) && dep.IsFromLocal() { if filepath.IsAbs(dep.Source.Local.Path) { return dep.Source.Local.Path } - return filepath.Join(dep.HomePath, dep.Source.Local.Path) + return filepath.Join(rootpath, dep.Source.Local.Path) } return dep.LocalFullPath } diff --git a/pkg/package/modfile_test.go b/pkg/package/modfile_test.go index 145c8ba2..ffe242f4 100644 --- a/pkg/package/modfile_test.go +++ b/pkg/package/modfile_test.go @@ -26,7 +26,7 @@ func TestModFileWithDesc(t *testing.T) { assert.Equal(t, err, nil) } -func TestWithTheSameVersion(t *testing.T) { +func TestDepEquals(t *testing.T) { d := Dependency{ Name: "test", Version: "0.0.1", @@ -37,13 +37,13 @@ func TestWithTheSameVersion(t *testing.T) { Version: "0.0.2", } - assert.Equal(t, d.WithTheSameVersion(d2), false) + assert.Equal(t, d.Equals(d2), false) d2.Version = "0.0.1" - assert.Equal(t, d.WithTheSameVersion(d2), true) + assert.Equal(t, d.Equals(d2), true) d2.Name = "test2" - assert.Equal(t, d.WithTheSameVersion(d2), false) + assert.Equal(t, d.Equals(d2), false) } func TestModFileExists(t *testing.T) { diff --git a/scripts/pull_pkg.sh b/scripts/pull_pkg.sh index 95694622..083e9032 100755 --- a/scripts/pull_pkg.sh +++ b/scripts/pull_pkg.sh @@ -32,4 +32,8 @@ if [ ! -d "./ghcr.io/kcl-lang/helloworld/0.1.1" ]; then $current_dir/bin/kpm pull helloworld:0.1.1 fi +if [ ! -d "./ghcr.io/kcl-lang/helloworld/0.1.2" ]; then + $current_dir/bin/kpm pull helloworld:0.1.2 +fi + cd "$current_dir" diff --git a/scripts/push_pkg.sh b/scripts/push_pkg.sh index 659f6f3a..b2807459 100755 --- a/scripts/push_pkg.sh +++ b/scripts/push_pkg.sh @@ -37,6 +37,12 @@ $current_dir/bin/kpm push cd "$current_dir" +# Push the package helloworld/1.17 to the registry +cd ./scripts/pkg_in_reg/ghcr.io/kcl-lang/helloworld/0.1.2 +$current_dir/bin/kpm push + +cd "$current_dir" + # Push the package 'kcl1' depends on 'k8s' to the registry cd ./scripts/pkg_in_reg/kcl1 $current_dir/bin/kpm push diff --git a/test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.stdout b/test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.stdout index f37f0853..0c666431 100644 --- a/test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.stdout +++ b/test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.stdout @@ -1 +1 @@ -downloading 'test/k8s:1.14' from 'localhost:5001/test/k8s:1.14' \ No newline at end of file +adding 'k8s' with version '1.14' \ No newline at end of file diff --git a/test/e2e/test_suites/test_data/test_add_with_name/kcl.mod b/test/e2e/test_suites/test_data/test_add_with_name/kcl.mod index 038f808a..c0cdbd8e 100644 --- a/test/e2e/test_suites/test_data/test_add_with_name/kcl.mod +++ b/test/e2e/test_suites/test_data/test_add_with_name/kcl.mod @@ -3,3 +3,5 @@ name = "test_add_with_name" edition = "v0.9.0" version = "0.0.1" +[dependencies] +k8s = { oci = "oci://localhost:5001/test/k8s", tag = "1.27" } diff --git a/test/e2e/test_suites/test_data/test_add_with_name/kcl.mod.lock b/test/e2e/test_suites/test_data/test_add_with_name/kcl.mod.lock index e69de29b..7ca1df46 100644 --- a/test/e2e/test_suites/test_data/test_add_with_name/kcl.mod.lock +++ b/test/e2e/test_suites/test_data/test_add_with_name/kcl.mod.lock @@ -0,0 +1,9 @@ +[dependencies] + [dependencies.k8s] + name = "k8s" + full_name = "k8s_1.27" + version = "1.27" + sum = "xnYM1FWHAy3m+KcQMQb2rjZouTxumqYt6FGZpu2T4yM=" + reg = "localhost:5001" + repo = "test/k8s" + oci_tag = "1.27" diff --git a/test/e2e/test_suites/test_data/test_kpm_metadata_duplication/kcl.mod.lock b/test/e2e/test_suites/test_data/test_kpm_metadata_duplication/kcl.mod.lock index f3cb9dcb..934b8b7d 100644 --- a/test/e2e/test_suites/test_data/test_kpm_metadata_duplication/kcl.mod.lock +++ b/test/e2e/test_suites/test_data/test_kpm_metadata_duplication/kcl.mod.lock @@ -1,9 +1,9 @@ [dependencies] [dependencies.dep-with-line] name = "dep-with-line" - full_name = "dep-with-line_" - sum = "0lzH5VUC9/wM60EnksK/9Oc3/alBezWkElgGM1l0938=" + full_name = "dep-with-line_0.0.1" + version = "0.0.1" [dependencies.dep_with-line] name = "dep_with-line" - full_name = "dep_with-line_" - sum = "hiIX1252Xn0QvmGlLhuM5ZsuuV8EpY/fuCgcRKLk3iE=" + full_name = "dep_with-line_0.0.1" + version = "0.0.1" diff --git a/test/e2e/test_suites/test_data/test_update_with_all/test_update/kcl.mod.lock b/test/e2e/test_suites/test_data/test_update_with_all/test_update/kcl.mod.lock index 08c061f8..863b0083 100644 --- a/test/e2e/test_suites/test_data/test_update_with_all/test_update/kcl.mod.lock +++ b/test/e2e/test_suites/test_data/test_update_with_all/test_update/kcl.mod.lock @@ -17,4 +17,4 @@ [dependencies.test_update_1] name = "test_update_1" full_name = "test_update_1_" - sum = "PYLgSMWbY5vCU2cyK+hOkZeb0Rp7JW055b0RMQaQ4S8=" + sum = "PYLgSMWbY5vCU2cyK+hOkZeb0Rp7JW055b0RMQaQ4S8=" \ No newline at end of file From 90e3ab0b241bbbd90328043fdfb6c75a5001fcd8 Mon Sep 17 00:00:00 2001 From: zongz Date: Thu, 23 May 2024 20:21:17 +0800 Subject: [PATCH 3/6] fix: fix ci Signed-off-by: zongz --- .github/workflows/e2e-test.yml | 14 +++++++------- .github/workflows/test-win.yaml | 14 +++++++------- .github/workflows/test.yaml | 14 +++++++------- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml index 298be81d..5af74d22 100644 --- a/.github/workflows/e2e-test.yml +++ b/.github/workflows/e2e-test.yml @@ -1,11 +1,11 @@ name: e2e test -on: push - # pull_request: - # branches: - # - main - # push: - # branches: - # - main +on: + pull_request: + branches: + - main + push: + branches: + - main jobs: e2e: diff --git a/.github/workflows/test-win.yaml b/.github/workflows/test-win.yaml index be858f28..ed0ea934 100644 --- a/.github/workflows/test-win.yaml +++ b/.github/workflows/test-win.yaml @@ -1,11 +1,11 @@ name: Windows Test -on: push - # pull_request: - # branches: - # - main - # push: - # branches: - # - main +on: + pull_request: + branches: + - main + push: + branches: + - main jobs: TestWindows: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index beed18b5..522401a1 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -1,13 +1,13 @@ # Reference from: # https://github.com/c-bata/go-prompt/blob/master/.github/workflows/test.yml name: Test -on: push - # pull_request: - # branches: - # - main - # push: - # branches: - # - main +on: + pull_request: + branches: + - main + push: + branches: + - main jobs: Test: From 1ce1532b9edc58bbe020e77d1b5286aa9b519d93 Mon Sep 17 00:00:00 2001 From: zongz Date: Thu, 23 May 2024 20:43:06 +0800 Subject: [PATCH 4/6] fix: fix test case Signed-off-by: zongz --- pkg/client/client.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/client/client.go b/pkg/client/client.go index b20c8136..6b135cd2 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -175,7 +175,7 @@ func (c *KpmClient) LoadLockDeps(pkgPath string) (*pkg.Dependencies, error) { for name, dep := range deps.Deps { sum, err := c.AcquireDepSum(dep) if err != nil { - return nil, nil + return nil, err } dep.Sum = sum deps.Deps[name] = dep From ecb24a35ae715ff8f79d2f23ad0a0b4f2ada2a9d Mon Sep 17 00:00:00 2001 From: zongz Date: Thu, 23 May 2024 20:57:45 +0800 Subject: [PATCH 5/6] fix: rm useless case Signed-off-by: zongz --- .../kpm/kpm_update/test_update_with_diff_version/test_suite.env | 2 -- .../kpm_update/test_update_with_diff_version/test_suite.input | 1 - .../kpm_update/test_update_with_diff_version/test_suite.stderr | 0 .../kpm_update/test_update_with_diff_version/test_suite.stdout | 1 - 4 files changed, 4 deletions(-) delete mode 100644 test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.env delete mode 100644 test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.input delete mode 100644 test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.stderr delete mode 100644 test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.stdout diff --git a/test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.env b/test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.env deleted file mode 100644 index 4c789529..00000000 --- a/test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.env +++ /dev/null @@ -1,2 +0,0 @@ -KPM_HOME="" -KCLVM_VENDOR_HOME="" \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.input b/test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.input deleted file mode 100644 index f17b39a2..00000000 --- a/test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.input +++ /dev/null @@ -1 +0,0 @@ -kpm update \ No newline at end of file diff --git a/test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.stderr b/test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.stderr deleted file mode 100644 index e69de29b..00000000 diff --git a/test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.stdout b/test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.stdout deleted file mode 100644 index 0c666431..00000000 --- a/test/e2e/test_suites/kpm/kpm_update/test_update_with_diff_version/test_suite.stdout +++ /dev/null @@ -1 +0,0 @@ -adding 'k8s' with version '1.14' \ No newline at end of file From 66a5cf69ddf8cba1e1d6f0e47e3787f9bae4dbd9 Mon Sep 17 00:00:00 2001 From: zongz Date: Thu, 23 May 2024 21:07:41 +0800 Subject: [PATCH 6/6] fix: use reference in getDepStorePath() Signed-off-by: zongz --- pkg/client/client.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/client/client.go b/pkg/client/client.go index 6b135cd2..c2042e37 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -250,7 +250,7 @@ const PKG_NAME_PATTERN = "%s_%s" // 1. in the KCL_PKG_PATH: default is $HOME/.kcl/kpm // 2. in the vendor subdirectory of the current package. // 3. the dependency is from the local path. -func (c *KpmClient) getDepStorePath(search_path string, d pkg.Dependency, isVendor bool) string { +func (c *KpmClient) getDepStorePath(search_path string, d *pkg.Dependency, isVendor bool) string { var storePkgName string @@ -340,7 +340,7 @@ func (c *KpmClient) resolvePkgDeps(kclPkg *pkg.KclPkg, lockDeps *pkg.Dependencie } for name, d := range kclPkg.Dependencies.Deps { - searchPath = c.getDepStorePath(kclPkg.HomePath, d, kclPkg.IsVendorMode()) + searchPath = c.getDepStorePath(kclPkg.HomePath, &d, kclPkg.IsVendorMode()) depPath := searchPath // if the dependency is not exist if !utils.DirExists(searchPath) { @@ -362,7 +362,7 @@ func (c *KpmClient) resolvePkgDeps(kclPkg *pkg.KclPkg, lockDeps *pkg.Dependencie if err != nil { return err } - depPath = c.getDepStorePath(kclPkg.HomePath, d, kclPkg.IsVendorMode()) + depPath = c.getDepStorePath(kclPkg.HomePath, &d, kclPkg.IsVendorMode()) } } else { continue @@ -863,13 +863,13 @@ func (c *KpmClient) VendorDeps(kclPkg *pkg.KclPkg) error { if len(d.Name) == 0 { return errors.InvalidDependency } - vendorFullPath := c.getDepStorePath(kclPkg.HomePath, d, true) + vendorFullPath := c.getDepStorePath(kclPkg.HomePath, &d, true) // If the package already exists in the 'vendor', do nothing. if utils.DirExists(vendorFullPath) { continue } else { // If not in the 'vendor', check the global cache. - cacheFullPath := c.getDepStorePath(c.homePath, d, false) + cacheFullPath := c.getDepStorePath(c.homePath, &d, false) if utils.DirExists(cacheFullPath) { // If there is, copy it into the 'vendor' directory. err := copy.Copy(cacheFullPath, vendorFullPath) @@ -1058,7 +1058,7 @@ func (c *KpmClient) Download(dep *pkg.Dependency, homePath, localPath string) (* } if dep.Source.Local != nil { - kpkg, err := pkg.FindFirstKclPkgFrom(c.getDepStorePath(homePath, *dep, false)) + kpkg, err := pkg.FindFirstKclPkgFrom(c.getDepStorePath(homePath, dep, false)) if err != nil { return nil, err } @@ -1463,7 +1463,7 @@ func (c *KpmClient) InitGraphAndDownloadDeps(kclPkg *pkg.KclPkg) (*pkg.Dependenc // dependencyExists will check whether the dependency exists in the local filesystem. func (c *KpmClient) dependencyExistsLocal(searchPath string, dep *pkg.Dependency) (*pkg.Dependency, error) { // If the flag '--no_sum_check' is set, skip the checksum check. - deppath := c.getDepStorePath(searchPath, *dep, false) + deppath := c.getDepStorePath(searchPath, dep, false) if utils.DirExists(deppath) { depPkg, err := c.LoadPkgFromPath(deppath) if err != nil { @@ -1504,7 +1504,7 @@ func (c *KpmClient) DownloadDeps(deps *pkg.Dependencies, lockDeps *pkg.Dependenc return nil, errors.InternalBug } - dir := c.getDepStorePath(c.homePath, d, false) + dir := c.getDepStorePath(c.homePath, &d, false) err = os.RemoveAll(dir) if err != nil { return nil, err