Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package jfrog-cli for openSUSE:Factory checked in at 2025-09-15 19:51:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/jfrog-cli (Old) and /work/SRC/openSUSE:Factory/.jfrog-cli.new.1977 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "jfrog-cli" Mon Sep 15 19:51:37 2025 rev:12 rq:1304623 version:2.78.9 Changes: -------- --- /work/SRC/openSUSE:Factory/jfrog-cli/jfrog-cli.changes 2025-09-02 17:58:50.759818317 +0200 +++ /work/SRC/openSUSE:Factory/.jfrog-cli.new.1977/jfrog-cli.changes 2025-09-15 19:55:32.725750837 +0200 @@ -1,0 +2,8 @@ +Sun Sep 14 11:55:37 UTC 2025 - Johannes Kastl <[email protected]> + +- Update to version 2.78.9: + * Bug Fixes + - Fixed jf pip deps.cache off-by-one error by @fluxxBot in + #3065 + +------------------------------------------------------------------- Old: ---- jfrog-cli-2.78.8.obscpio New: ---- jfrog-cli-2.78.9.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ jfrog-cli.spec ++++++ --- /var/tmp/diff_new_pack.O0QVM7/_old 2025-09-15 19:55:33.469782077 +0200 +++ /var/tmp/diff_new_pack.O0QVM7/_new 2025-09-15 19:55:33.469782077 +0200 @@ -19,7 +19,7 @@ %define executable_name jf Name: jfrog-cli -Version: 2.78.8 +Version: 2.78.9 Release: 0 Summary: A client that automates access to the JFrog products License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.O0QVM7/_old 2025-09-15 19:55:33.513783925 +0200 +++ /var/tmp/diff_new_pack.O0QVM7/_new 2025-09-15 19:55:33.521784261 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/jfrog/jfrog-cli.git</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v2.78.8</param> + <param name="revision">v2.78.9</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.O0QVM7/_old 2025-09-15 19:55:33.545785269 +0200 +++ /var/tmp/diff_new_pack.O0QVM7/_new 2025-09-15 19:55:33.549785437 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/jfrog/jfrog-cli.git</param> - <param name="changesrevision">266ca934b6e7c87e75b754b994728b646ed5b6da</param></service></servicedata> + <param name="changesrevision">067458b1bfa2f86a3f432827784fcfb62e40b94a</param></service></servicedata> (No newline at EOF) ++++++ jfrog-cli-2.78.8.obscpio -> jfrog-cli-2.78.9.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jfrog-cli-2.78.8/build/npm/v2/package-lock.json new/jfrog-cli-2.78.9/build/npm/v2/package-lock.json --- old/jfrog-cli-2.78.8/build/npm/v2/package-lock.json 2025-09-01 09:36:13.000000000 +0200 +++ new/jfrog-cli-2.78.9/build/npm/v2/package-lock.json 2025-09-03 22:45:09.000000000 +0200 @@ -1,5 +1,5 @@ { "name": "jfrog-cli-v2", - "version": "2.78.8", + "version": "2.78.9", "lockfileVersion": 2 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jfrog-cli-2.78.8/build/npm/v2/package.json new/jfrog-cli-2.78.9/build/npm/v2/package.json --- old/jfrog-cli-2.78.8/build/npm/v2/package.json 2025-09-01 09:36:13.000000000 +0200 +++ new/jfrog-cli-2.78.9/build/npm/v2/package.json 2025-09-03 22:45:09.000000000 +0200 @@ -1,6 +1,6 @@ { "name": "jfrog-cli-v2", - "version": "2.78.8", + "version": "2.78.9", "description": "🐸 Command-line interface for JFrog Artifactory, Xray, Distribution, Pipelines and Mission Control 🐸", "homepage": "https://github.com/jfrog/jfrog-cli", "preferGlobal": true, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jfrog-cli-2.78.8/build/npm/v2-jf/package-lock.json new/jfrog-cli-2.78.9/build/npm/v2-jf/package-lock.json --- old/jfrog-cli-2.78.8/build/npm/v2-jf/package-lock.json 2025-09-01 09:36:13.000000000 +0200 +++ new/jfrog-cli-2.78.9/build/npm/v2-jf/package-lock.json 2025-09-03 22:45:09.000000000 +0200 @@ -1,5 +1,5 @@ { "name": "jfrog-cli-v2-jf", - "version": "2.78.8", + "version": "2.78.9", "lockfileVersion": 1 } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jfrog-cli-2.78.8/build/npm/v2-jf/package.json new/jfrog-cli-2.78.9/build/npm/v2-jf/package.json --- old/jfrog-cli-2.78.8/build/npm/v2-jf/package.json 2025-09-01 09:36:13.000000000 +0200 +++ new/jfrog-cli-2.78.9/build/npm/v2-jf/package.json 2025-09-03 22:45:09.000000000 +0200 @@ -1,6 +1,6 @@ { "name": "jfrog-cli-v2-jf", - "version": "2.78.8", + "version": "2.78.9", "description": "🐸 Command-line interface for JFrog Artifactory, Xray, Distribution, Pipelines and Mission Control 🐸", "homepage": "https://github.com/jfrog/jfrog-cli", "preferGlobal": true, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jfrog-cli-2.78.8/go.mod new/jfrog-cli-2.78.9/go.mod --- old/jfrog-cli-2.78.8/go.mod 2025-09-01 09:36:13.000000000 +0200 +++ new/jfrog-cli-2.78.9/go.mod 2025-09-03 22:45:09.000000000 +0200 @@ -16,13 +16,13 @@ github.com/docker/docker v27.5.1+incompatible github.com/gocarina/gocsv v0.0.0-20240520201108-78e41c74b4b1 github.com/jfrog/archiver/v3 v3.6.1 - github.com/jfrog/build-info-go v1.10.16 + github.com/jfrog/build-info-go v1.10.17 github.com/jfrog/gofrog v1.7.6 - github.com/jfrog/jfrog-cli-artifactory v0.7.0 - github.com/jfrog/jfrog-cli-core/v2 v2.59.6 + github.com/jfrog/jfrog-cli-artifactory v0.7.1 + github.com/jfrog/jfrog-cli-core/v2 v2.59.7 github.com/jfrog/jfrog-cli-platform-services v1.10.0 - github.com/jfrog/jfrog-cli-security v1.21.5 - github.com/jfrog/jfrog-client-go v1.54.6 + github.com/jfrog/jfrog-cli-security v1.21.6 + github.com/jfrog/jfrog-client-go v1.54.7 github.com/jszwec/csvutil v1.10.0 github.com/manifoldco/promptui v0.9.0 github.com/stretchr/testify v1.11.0 @@ -118,7 +118,7 @@ github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jedib0t/go-pretty/v6 v6.6.5 // indirect github.com/jedisct1/go-minisign v0.0.0-20211028175153-1c139d1cc84b // indirect - github.com/jfrog/froggit-go v1.20.2 // indirect + github.com/jfrog/froggit-go v1.20.3 // indirect github.com/jfrog/go-mockhttp v0.3.1 // indirect github.com/jfrog/jfrog-apps-config v1.0.1 // indirect github.com/josharian/intern v1.0.0 // indirect @@ -242,7 +242,7 @@ sigs.k8s.io/yaml v1.4.0 // indirect ) -// replace github.com/jfrog/build-info-go => github.com/jfrog/build-info-go v1.8.9-0.20250806055519-cdc723aaec09 +// replace github.com/jfrog/build-info-go => github.com/jfrog/build-info-go v1.10.17-0.20250829085619-7e78b7bc67f8 // replace github.com/jfrog/jfrog-cli-artifactory => github.com/jfrog/jfrog-cli-artifactory v0.4.1-0.20250718083259-4a60768eb51b diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jfrog-cli-2.78.8/go.sum new/jfrog-cli-2.78.9/go.sum --- old/jfrog-cli-2.78.8/go.sum 2025-09-01 09:36:13.000000000 +0200 +++ new/jfrog-cli-2.78.9/go.sum 2025-09-03 22:45:09.000000000 +0200 @@ -349,26 +349,26 @@ github.com/jellydator/ttlcache/v3 v3.3.0/go.mod h1:bj2/e0l4jRnQdrnSTaGTsh4GSXvMjQcy41i7th0GVGw= github.com/jfrog/archiver/v3 v3.6.1 h1:LOxnkw9pOn45DzCbZNFV6K0+6dCsQ0L8mR3ZcujO5eI= github.com/jfrog/archiver/v3 v3.6.1/go.mod h1:VgR+3WZS4N+i9FaDwLZbq+jeU4B4zctXL+gL4EMzfLw= -github.com/jfrog/build-info-go v1.10.16 h1:M77OfTXl3Ew9AG9SIIYLAG5ccIIaf6xjIZ5nomc2XAw= -github.com/jfrog/build-info-go v1.10.16/go.mod h1:szdz9+WzB7+7PGnILLUgyY+OF5qD5geBT7UGNIxibyw= -github.com/jfrog/froggit-go v1.20.2 h1:3db2nY0FIIVv0Oa1lwrljr2GUL3j+F6wvbhKQNdWbsw= -github.com/jfrog/froggit-go v1.20.2/go.mod h1:obSG1SlsWjktkuqmKtpq7MNTTL63e0ot+ucTnlOMV88= +github.com/jfrog/build-info-go v1.10.17 h1:wnVd9KkyFGQgNL+oU1wXyJB7/Ui9O/MqUnNKUMsyoRw= +github.com/jfrog/build-info-go v1.10.17/go.mod h1:szdz9+WzB7+7PGnILLUgyY+OF5qD5geBT7UGNIxibyw= +github.com/jfrog/froggit-go v1.20.3 h1:U3HHT0+AEHUVSSyQBbagQR4fLRqGqzSptPujDZuuDTk= +github.com/jfrog/froggit-go v1.20.3/go.mod h1:obSG1SlsWjktkuqmKtpq7MNTTL63e0ot+ucTnlOMV88= github.com/jfrog/go-mockhttp v0.3.1 h1:/wac8v4GMZx62viZmv4wazB5GNKs+GxawuS1u3maJH8= github.com/jfrog/go-mockhttp v0.3.1/go.mod h1:LmKHex73SUZswM8ANS8kPxLihTOvtq44HVcCoTJKuqc= github.com/jfrog/gofrog v1.7.6 h1:QmfAiRzVyaI7JYGsB7cxfAJePAZTzFz0gRWZSE27c6s= github.com/jfrog/gofrog v1.7.6/go.mod h1:ntr1txqNOZtHplmaNd7rS4f8jpA5Apx8em70oYEe7+4= github.com/jfrog/jfrog-apps-config v1.0.1 h1:mtv6k7g8A8BVhlHGlSveapqf4mJfonwvXYLipdsOFMY= github.com/jfrog/jfrog-apps-config v1.0.1/go.mod h1:8AIIr1oY9JuH5dylz2S6f8Ym2MaadPLR6noCBO4C22w= -github.com/jfrog/jfrog-cli-artifactory v0.7.0 h1:02BVHSvYRHBZfCngJ9NffsGoGz3fHbFSQ2m9LfMZHJI= -github.com/jfrog/jfrog-cli-artifactory v0.7.0/go.mod h1:UV63K/utRJ/eIYMz5CYm5pkuuSB1+aQX5CWHigFlqrk= -github.com/jfrog/jfrog-cli-core/v2 v2.59.6 h1:2MSLMrYecDk1KOwXXLFa386knOqJY3IZKfb0uZVCr1w= -github.com/jfrog/jfrog-cli-core/v2 v2.59.6/go.mod h1:2Ck8y1phyJBvopotu7xddWWo45OH0bj6CwqVMTeKpOA= +github.com/jfrog/jfrog-cli-artifactory v0.7.1 h1:MNKrC21z/sfnIGZ9wopFEMuOHAgWPzSA1AXznOo5Zik= +github.com/jfrog/jfrog-cli-artifactory v0.7.1/go.mod h1:tmhbLMaRjB6ENFjDTKwbqVqYAHBuZxe8vCu2iSTPGvE= +github.com/jfrog/jfrog-cli-core/v2 v2.59.7 h1:qn4HVqP5L9GQ5py0ZeJzXkc3UXq4cHT20AJnwcco7ys= +github.com/jfrog/jfrog-cli-core/v2 v2.59.7/go.mod h1:W6o+7kLLy7GEWhCN9I2vzjGRGeeOZzsJ0uMaKCyr1CI= github.com/jfrog/jfrog-cli-platform-services v1.10.0 h1:O+N/VAF+QjFvq9xkHpmzKLcdl9aJu3IP204Su0L14rw= github.com/jfrog/jfrog-cli-platform-services v1.10.0/go.mod h1:qbu4iqBST9x8LgD8HhzUm91iOB3vHqtoGmaxOnmw0ok= -github.com/jfrog/jfrog-cli-security v1.21.5 h1:gTPJZbc66D7dsXo/xAwixNrcg1XbRMNwYDaHCl87xtM= -github.com/jfrog/jfrog-cli-security v1.21.5/go.mod h1:aFicv5RUPaTJlazeWStFmfabyr5q2EW+Z4WIcWcXagU= -github.com/jfrog/jfrog-client-go v1.54.6 h1:kwKwou9mXKLQDYvBIY9bP/JAhzya/zPMN8PxOKrJdRc= -github.com/jfrog/jfrog-client-go v1.54.6/go.mod h1:IwGSt21D6sbJVptrX8SxZNTthPXe+KlaIRRtv80Pqp8= +github.com/jfrog/jfrog-cli-security v1.21.6 h1:1Ot4uxJhljzQDLKAxywjnaYAswuv39p9IMiTiP6a6WU= +github.com/jfrog/jfrog-cli-security v1.21.6/go.mod h1:pwVtOZUSnLWfs5Hsr9pnuGPXqL+e6jU2gbfaRJvA4TM= +github.com/jfrog/jfrog-client-go v1.54.7 h1:S1geo9T5ZCAb7EkXSv+NJ0K8+yhDsxlrybHTosCilIg= +github.com/jfrog/jfrog-client-go v1.54.7/go.mod h1:cOy7Pn34bGtjp0eWHADTRJG5Er0qVnJIz04u+NGEpcQ= github.com/jhump/protoreflect v1.17.0 h1:qOEr613fac2lOuTgWN4tPAtLL7fUSbuJL5X5XumQh94= github.com/jhump/protoreflect v1.17.0/go.mod h1:h9+vUUL38jiBzck8ck+6G/aeMX8Z4QUY/NiJPwPNi+8= github.com/jmespath/go-jmespath v0.4.1-0.20220621161143-b0104c826a24 h1:liMMTbpW34dhU4az1GN0pTPADwNmvoRSeoZ6PItiqnY= @@ -628,8 +628,6 @@ github.com/transparency-dev/merkle v0.0.2 h1:Q9nBoQcZcgPamMkGn7ghV8XiTZ/kRxn1yCG81+twTK4= github.com/transparency-dev/merkle v0.0.2/go.mod h1:pqSy+OXefQ1EDUVmAJ8MUhHB9TXGuzVAT58PqBoHz1A= github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= -github.com/ulikunitz/xz v0.5.14 h1:uv/0Bq533iFdnMHZdRBTOlaNMdb1+ZxXIlHDZHIHcvg= -github.com/ulikunitz/xz v0.5.14/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.15 h1:9DNdB5s+SgV3bQ2ApL10xRc35ck0DuIX/isZvIk+ubY= github.com/ulikunitz/xz v0.5.15/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/urfave/cli v1.22.16 h1:MH0k6uJxdwdeWQTwhSO42Pwr4YLrNLwBtg1MRgTqPdQ= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jfrog-cli-2.78.8/pip_test.go new/jfrog-cli-2.78.9/pip_test.go --- old/jfrog-cli-2.78.8/pip_test.go 2025-09-01 09:36:13.000000000 +0200 +++ new/jfrog-cli-2.78.9/pip_test.go 2025-09-03 22:45:09.000000000 +0200 @@ -1,13 +1,8 @@ package main import ( + "encoding/json" "fmt" - biutils "github.com/jfrog/build-info-go/utils" - "github.com/jfrog/jfrog-cli-core/v2/utils/coreutils" - coretests "github.com/jfrog/jfrog-cli-core/v2/utils/tests" - "github.com/jfrog/jfrog-cli-security/sca/bom/buildinfo/technologies/python" - "github.com/jfrog/jfrog-client-go/http/httpclient" - clientTestUtils "github.com/jfrog/jfrog-client-go/utils/tests" "net/http" "os" "os/exec" @@ -15,6 +10,13 @@ "strconv" "testing" + biutils "github.com/jfrog/build-info-go/utils" + "github.com/jfrog/jfrog-cli-core/v2/utils/coreutils" + coretests "github.com/jfrog/jfrog-cli-core/v2/utils/tests" + "github.com/jfrog/jfrog-cli-security/sca/bom/buildinfo/technologies/python" + "github.com/jfrog/jfrog-client-go/http/httpclient" + clientTestUtils "github.com/jfrog/jfrog-client-go/utils/tests" + buildinfo "github.com/jfrog/build-info-go/entities" "github.com/jfrog/jfrog-cli/inttestutils" @@ -33,6 +35,91 @@ testPipInstall(t, true) } +func TestPipDepsCacheOutput(t *testing.T) { + // Init pip. + initPipTest(t) + + // Populate cli config with 'default' server. + oldHomeDir, newHomeDir := prepareHomeDir(t) + defer func() { + clientTestUtils.SetEnvAndAssert(t, coreutils.HomeDir, oldHomeDir) + clientTestUtils.RemoveAllAndAssert(t, newHomeDir) + }() + + cleanVirtualEnv, err := prepareVirtualEnv(t) + assert.NoError(t, err) + defer cleanVirtualEnv() + + // Use the new test project with requirements.txt and expected deps.cache.json + projectPath := createPipProject(t, "pip-deps-cache-test", "depscachetest") + defer func() { assert.NoError(t, fileutils.RemoveTempDir(projectPath)) }() + + // Change to project directory + wd, err := os.Getwd() + assert.NoError(t, err) + chdirCallback := clientTestUtils.ChangeDirWithCallback(t, wd, projectPath) + defer chdirCallback() + + // Run pip install with JFrog CLI + jfrogCli := coretests.NewJfrogCli(execMain, "jfrog", "") + err = jfrogCli.Exec("pip", "install", "-r", "requirements.txt", "--no-cache-dir", "--force-reinstall", "--build-name="+tests.PipBuildName, "--build-number=999") + assert.NoError(t, err) + + // Read the generated deps.cache.json + generatedCacheFile := filepath.Join(".jfrog", "projects", "deps.cache.json") + assert.FileExists(t, generatedCacheFile) + generatedContent, err := os.ReadFile(generatedCacheFile) + assert.NoError(t, err) + + // Read the expected deps.cache.json + expectedContent, err := os.ReadFile("expected_deps_cache.json") + assert.NoError(t, err) + + // Parse both JSON files for comparison + var generatedCache, expectedCache struct { + Version int `json:"version"` + Dependencies map[string]buildinfo.Dependency `json:"dependencies"` + } + err = json.Unmarshal(generatedContent, &generatedCache) + assert.NoError(t, err) + err = json.Unmarshal(expectedContent, &expectedCache) + assert.NoError(t, err) + + // Compare the dependencies + assert.Equal(t, len(expectedCache.Dependencies), len(generatedCache.Dependencies), + "Number of dependencies should match") + + // Verify each package mapping + for pkgName, expectedDep := range expectedCache.Dependencies { + generatedDep, exists := generatedCache.Dependencies[pkgName] + assert.True(t, exists, "Package %s not found in generated cache", pkgName) + + // Compare wheel file names + assert.Equal(t, expectedDep.Id, generatedDep.Id, + "Package %s has incorrect wheel file. Expected: %s, Got: %s", + pkgName, expectedDep.Id, generatedDep.Id) + + // Compare checksums + assert.Equal(t, expectedDep.Checksum.Sha1, generatedDep.Checksum.Sha1, + "Package %s SHA1 mismatch", pkgName) + assert.Equal(t, expectedDep.Checksum.Sha256, generatedDep.Checksum.Sha256, + "Package %s SHA256 mismatch", pkgName) + assert.Equal(t, expectedDep.Checksum.Md5, generatedDep.Checksum.Md5, + "Package %s MD5 mismatch", pkgName) + } + + // Specifically verify the fix - each package should map to its own wheel + alembicDep := generatedCache.Dependencies["alembic"] + assert.Contains(t, alembicDep.Id, "alembic", + "alembic should map to its own wheel file") + + beautifulsoup4Dep := generatedCache.Dependencies["beautifulsoup4"] + assert.Contains(t, beautifulsoup4Dep.Id, "beautifulsoup4", + "beautifulsoup4 should map to its own wheel file") + assert.NotContains(t, beautifulsoup4Dep.Id, "alembic", + "beautifulsoup4 should NOT have alembic's wheel file") +} + func testPipInstall(t *testing.T, isLegacy bool) { // Init pip. initPipTest(t) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jfrog-cli-2.78.8/testdata/pip/depscachetest/expected_deps_cache.json new/jfrog-cli-2.78.9/testdata/pip/depscachetest/expected_deps_cache.json --- old/jfrog-cli-2.78.8/testdata/pip/depscachetest/expected_deps_cache.json 1970-01-01 01:00:00.000000000 +0100 +++ new/jfrog-cli-2.78.9/testdata/pip/depscachetest/expected_deps_cache.json 2025-09-03 22:45:09.000000000 +0200 @@ -0,0 +1,143 @@ +{ + "version": 1, + "dependencies": { + "alembic": { + "id": "alembic-1.14.0-py3-none-any.whl", + "sha1": "3233ba29f0cb50006db1670273b00b98c763b67d", + "md5": "e63c619511e5af587d8a8edaa1452ab3", + "sha256": "99bd884ca390466db5e27ffccff1d179ec5c05c965cfefc0607e69f9e411cb25" + }, + "atlassian-python-api": { + "id": "atlassian_python_api-3.41.16-py3-none-any.whl", + "sha1": "789f878ef71869bd5d2c4d5fd50bf2c895818c3f", + "md5": "bbbe9762a3cf682c04fbc5eeb90380ca", + "sha256": "99e5587233a96d22c45a61b19523dd98e8266c620ba2d289f23e4ea35c9cf316" + }, + "beautifulsoup4": { + "id": "beautifulsoup4-4.12.3-py3-none-any.whl", + "sha1": "a384c077980416ca8880b58aeab332c5c3a99e0e", + "md5": "47df28fd656b4a8df368d9a915794454", + "sha256": "b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed" + }, + "certifi": { + "id": "certifi-2024.8.30-py3-none-any.whl", + "sha1": "91c57b35828accda8f622c5328b4e9da1ab2db3b", + "md5": "d3afde7a82448d4d4651ef029c1f4bec", + "sha256": "922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8" + }, + "charset-normalizer": { + "id": "charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", + "sha1": "8060ab91128c5935197c91b6db6bdedeeafe6533", + "md5": "58c279eff83ef63b1ef3ff6b50d5519b", + "sha256": "92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250" + }, + "deprecated": { + "id": "Deprecated-1.2.14-py2.py3-none-any.whl", + "sha1": "e3a8c9c658b219b7a6a0ecd7fcc46b0c7195b2ac", + "md5": "d045eaf05663b2c1f16d8339c18ef2f4", + "sha256": "6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c" + }, + "greenlet": { + "id": "greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", + "sha1": "c409e2407563d5f084fce8b4fc6fe520329aaee9", + "md5": "93155fb97720b94bedcc0a1ee4a7ba41", + "sha256": "05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1" + }, + "idna": { + "id": "idna-3.10-py3-none-any.whl", + "sha1": "9a22e84a3d5bdd391de45e4aa49c77944ef172ec", + "md5": "ce22685f1b296fb33e5fda362870685d", + "sha256": "946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3" + }, + "iso8601": { + "id": "iso8601-2.1.0-py3-none-any.whl", + "sha1": "03d517d9d02363ee9a9ca5d8bcd6a33de6eb6c82", + "md5": "e3b1014d767f5178e4704b2f6b4e9562", + "sha256": "aac4145c4dcb66ad8b648a02830f5e2ff6c24af20f4f482689be402db2429242" + }, + "jmespath": { + "id": "jmespath-1.0.1-py3-none-any.whl", + "sha1": "c3921cdd7b71c27f41bb6cba51cfb0fdeae3396f", + "md5": "10009c3f0c6e63a22bb3eab7b5843b45", + "sha256": "02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980" + }, + "lxml": { + "id": "lxml-5.3.0-cp313-cp313-macosx_10_13_universal2.whl", + "sha1": "c95ed7007199341dcef830c54ee732dc4612dbc4", + "md5": "6bed22c67c85a92fa004389d3d0782f1", + "sha256": "8c72e9563347c7395910de6a3100a4840a75a6f60e05af5e58566868d5eb2d6a" + }, + "mako": { + "id": "Mako-1.3.6-py3-none-any.whl", + "sha1": "9ccd375b6c55b2f04090584f72a1af42046d6222", + "md5": "deb62711dbeeeb53e10bb5c223e00a5b", + "sha256": "a91198468092a2f1a0de86ca92690fb0cfc43ca90ee17e15d93662b4c04b241a" + }, + "markupsafe": { + "id": "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", + "sha1": "548ca88e7c7cdeabae6a7b0837f8034d2abd8dd4", + "md5": "387145a7d04e0aff57ad3cfef3dc8e4c", + "sha256": "f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430" + }, + "oauthlib": { + "id": "oauthlib-3.2.2-py3-none-any.whl", + "sha1": "5f0ac029e5fb17011960e697f97312432050f968", + "md5": "a9126e7541baee7da8bf1ad3f216c3cd", + "sha256": "8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca" + }, + "pyyaml": { + "id": "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", + "sha1": "fda1f76d07f41fdc8fc035966ce1bd87d9da3c56", + "md5": "cb573369634787294395b3ee528cb017", + "sha256": "50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1" + }, + "requests": { + "id": "requests-2.32.3-py3-none-any.whl", + "sha1": "c7e25779bcff4f82f2f002cd0503ceabf433378f", + "md5": "83d50f7980b330c48f3bfe86372adcca", + "sha256": "70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6" + }, + "requests-oauthlib": { + "id": "requests_oauthlib-2.0.0-py2.py3-none-any.whl", + "sha1": "6ffca7abd905afcd371ddcb95ef58ecaa0ffeba6", + "md5": "68df2f3e274ac34fb2c5f32b15374156", + "sha256": "7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36" + }, + "six": { + "id": "six-1.16.0-py2.py3-none-any.whl", + "sha1": "79e6f2e4f9e24898f1896df379871b9c9922f147", + "md5": "529d7fd7e14612ccde86417b4402d6f3", + "sha256": "8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + }, + "soupsieve": { + "id": "soupsieve-2.6-py3-none-any.whl", + "sha1": "2e4ef676ed8fcf0ad4028f23535df6897d89cdcc", + "md5": "2de78d39a3a103b2351297665741806f", + "sha256": "e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9" + }, + "sqlalchemy": { + "id": "SQLAlchemy-2.0.36-cp313-cp313-macosx_11_0_arm64.whl", + "sha1": "b66e0083bde69d464a2c467c3d6e0b5d2ffea4c9", + "md5": "549a62e0269ed3f3efe490363b91ed0a", + "sha256": "3c01117dd36800f2ecaa238c65365b7b16497adc1522bf84906e5710ee9ba0e8" + }, + "typing-extensions": { + "id": "typing_extensions-4.12.2-py3-none-any.whl", + "sha1": "0fb5b2732cc421561b1348cac1334eb6a4e0bb7f", + "md5": "f5db8e1f1ab10181587cfe0b9ed1fc7f", + "sha256": "04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d" + }, + "urllib3": { + "id": "urllib3-2.2.3-py3-none-any.whl", + "sha1": "b9f923c50d80e72caae2310d46b6d7b7cd07e71b", + "md5": "067bab0d1fabc9c24850d87b7a7fe2f7", + "sha256": "ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac" + }, + "wrapt": { + "id": "wrapt-1.16.0-py3-none-any.whl", + "sha1": "8a48efd4ed167fb41fd739d4ed4eaabea72532b5", + "md5": "c98cdf8bf5a1eedc803cc0d827c1ef5e", + "sha256": "6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1" + } + } +} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jfrog-cli-2.78.8/testdata/pip/depscachetest/requirements.txt new/jfrog-cli-2.78.9/testdata/pip/depscachetest/requirements.txt --- old/jfrog-cli-2.78.8/testdata/pip/depscachetest/requirements.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/jfrog-cli-2.78.9/testdata/pip/depscachetest/requirements.txt 2025-09-03 22:45:09.000000000 +0200 @@ -0,0 +1,23 @@ +alembic==1.14.0 +atlassian-python-api==3.41.16 +beautifulsoup4==4.12.3 +certifi==2024.8.30 +charset-normalizer==3.4.0 +deprecated==1.2.14 +greenlet==3.1.1 +idna==3.10 +iso8601==2.1.0 +jmespath==1.0.1 +lxml==5.3.0 +mako==1.3.6 +markupsafe==3.0.2 +oauthlib==3.2.2 +pyyaml==6.0.2 +requests==2.32.3 +requests-oauthlib==2.0.0 +six==1.16.0 +soupsieve==2.6 +sqlalchemy==2.0.36 +typing-extensions==4.12.2 +urllib3==2.2.3 +wrapt==1.16.0 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jfrog-cli-2.78.8/utils/cliutils/cli_consts.go new/jfrog-cli-2.78.9/utils/cliutils/cli_consts.go --- old/jfrog-cli-2.78.8/utils/cliutils/cli_consts.go 2025-09-01 09:36:13.000000000 +0200 +++ new/jfrog-cli-2.78.9/utils/cliutils/cli_consts.go 2025-09-03 22:45:09.000000000 +0200 @@ -4,7 +4,7 @@ const ( // General CLI constants - CliVersion = "2.78.8" + CliVersion = "2.78.9" ClientAgent = "jfrog-cli-go" // CLI base commands constants: ++++++ jfrog-cli.obsinfo ++++++ --- /var/tmp/diff_new_pack.O0QVM7/_old 2025-09-15 19:55:34.413821716 +0200 +++ /var/tmp/diff_new_pack.O0QVM7/_new 2025-09-15 19:55:34.413821716 +0200 @@ -1,5 +1,5 @@ name: jfrog-cli -version: 2.78.8 -mtime: 1756712173 -commit: 266ca934b6e7c87e75b754b994728b646ed5b6da +version: 2.78.9 +mtime: 1756932309 +commit: 067458b1bfa2f86a3f432827784fcfb62e40b94a ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/jfrog-cli/vendor.tar.gz /work/SRC/openSUSE:Factory/.jfrog-cli.new.1977/vendor.tar.gz differ: char 14, line 1
