Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package oras for openSUSE:Factory checked in 
at 2024-12-06 14:27:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/oras (Old)
 and      /work/SRC/openSUSE:Factory/.oras.new.28523 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "oras"

Fri Dec  6 14:27:04 2024 rev:3 rq:1228678 version:1.2.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/oras/oras.changes        2024-08-01 
22:06:47.666320112 +0200
+++ /work/SRC/openSUSE:Factory/.oras.new.28523/oras.changes     2024-12-06 
14:27:17.922798094 +0100
@@ -1,0 +2,22 @@
+Fri Dec 06 06:30:57 UTC 2024 - [email protected]
+
+- Update to version 1.2.1:
+  * bump: tag and release ORAS CLI v1.2.1
+  * docs: add experimental marks to examples (#1570)
+  * fix: document pushing files with colon in name (#1508)
+  * docs: improve the description of cp (#1498)
+  * docs: add examples for --format (#1497)
+  * docs: fix typo in help text of 'attach' command (#1477)
+  * fix: Mention the resolve command in manifest fetch help (#1466)
+  * fix: oras repo tags exlude-digest-tags documentation (#1467)
+  * fix: disable oras tag fallback to tag schema when tagging a
+    referrer (#1435)
+  * fix(doc): resolve example error for `oras tag` (#1419)
+  * Update links in README.md (#1408)
+  * chore: Update goreleaser to v6 and configuration to v2 (#1402)
+  * chore: bump golang and dependencies (#1564)
+  * bump: golang version to fix CVE-2024-24790 and CVE-2024-34156
+    (#1562)
+- fix zsh completions
+
+-------------------------------------------------------------------

Old:
----
  oras-1.2.0.obscpio

New:
----
  oras-1.2.1.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ oras.spec ++++++
--- /var/tmp/diff_new_pack.ButxDw/_old  2024-12-06 14:27:19.266854505 +0100
+++ /var/tmp/diff_new_pack.ButxDw/_new  2024-12-06 14:27:19.270854673 +0100
@@ -16,17 +16,18 @@
 #
 
 
-%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
-
 Name:           oras
-Version:        1.2.0
+Version:        1.2.1
 Release:        0
 Summary:        OCI registry client - manage content like artifacts, images, 
packages
 License:        Apache-2.0
 URL:            https://github.com/oras-project/oras
 Source:         %{name}-%{version}.tar.gz
 Source1:        vendor.tar.gz
-BuildRequires:  go >= 1.22
+BuildRequires:  bash-completion
+BuildRequires:  fish
+BuildRequires:  go >= 1.23
+BuildRequires:  zsh
 
 %description
 ORAS is the de facto tool for working with OCI Artifacts. It treats media types
@@ -93,8 +94,8 @@
 %{buildroot}/%{_bindir}/%{name} completion fish > 
%{buildroot}%{_datarootdir}/fish/vendor_completions.d/%{name}.fish
 
 # create the zsh completion file
-mkdir -p %{buildroot}%{_datarootdir}/zsh_completion.d/
-%{buildroot}/%{_bindir}/%{name} completion zsh > 
%{buildroot}%{_datarootdir}/zsh_completion.d/_%{name}
+mkdir -p %{buildroot}%{_datarootdir}/zsh/site-functions/
+%{buildroot}/%{_bindir}/%{name} completion zsh > 
%{buildroot}%{_datarootdir}/zsh/site-functions/_%{name}
 
 %files
 %doc README.md
@@ -102,16 +103,11 @@
 %{_bindir}/%{name}
 
 %files -n %{name}-bash-completion
-%dir %{_datarootdir}/bash-completion/completions/
 %{_datarootdir}/bash-completion/completions/%{name}
 
 %files -n %{name}-fish-completion
-%dir %{_datarootdir}/fish
-%dir %{_datarootdir}/fish/vendor_completions.d
 %{_datarootdir}/fish/vendor_completions.d/%{name}.fish
 
 %files -n %{name}-zsh-completion
-%defattr(-,root,root)
-%dir %{_datarootdir}/zsh_completion.d/
-%{_datarootdir}/zsh_completion.d/_%{name}
+%{_datarootdir}/zsh/site-functions/_%{name}
 

++++++ _service ++++++
--- /var/tmp/diff_new_pack.ButxDw/_old  2024-12-06 14:27:19.298855847 +0100
+++ /var/tmp/diff_new_pack.ButxDw/_new  2024-12-06 14:27:19.302856016 +0100
@@ -3,10 +3,10 @@
     <param name="url">https://github.com/oras-project/oras</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v1.2.0</param>
+    <param name="revision">v1.2.1</param>
     <param name="versionformat">@PARENT_TAG@</param>
-    <param name="changesgenerate">enable</param>
     <param name="versionrewrite-pattern">v(.*)</param>
+    <param name="changesgenerate">enable</param>
   </service>
   <service name="set_version" mode="manual">
   </service>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.ButxDw/_old  2024-12-06 14:27:19.326857023 +0100
+++ /var/tmp/diff_new_pack.ButxDw/_new  2024-12-06 14:27:19.326857023 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/oras-project/oras</param>
-              <param 
name="changesrevision">dcef719e208a9b226b15bc6512ad729a7dd93270</param></service></servicedata>
+              <param 
name="changesrevision">a0228556766b6276010d8feb937af512e8a50808</param></service></servicedata>
 (No newline at EOF)
 

++++++ oras-1.2.0.obscpio -> oras-1.2.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/.github/workflows/build.yml 
new/oras-1.2.1/.github/workflows/build.yml
--- old/oras-1.2.0/.github/workflows/build.yml  2024-05-28 09:33:43.000000000 
+0200
+++ new/oras-1.2.1/.github/workflows/build.yml  2024-12-05 09:41:54.000000000 
+0100
@@ -27,7 +27,7 @@
     runs-on: ubuntu-latest
     strategy:
       matrix:
-        go-version: ['1.22']
+        go-version: ['1.23']
       fail-fast: true
     steps:
       - name: Checkout
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/.github/workflows/release-github.yml 
new/oras-1.2.1/.github/workflows/release-github.yml
--- old/oras-1.2.0/.github/workflows/release-github.yml 2024-05-28 
09:33:43.000000000 +0200
+++ new/oras-1.2.1/.github/workflows/release-github.yml 2024-12-05 
09:41:54.000000000 +0100
@@ -29,11 +29,11 @@
       - name: setup go environment
         uses: actions/setup-go@v5
         with:
-          go-version: '1.22.3'
+          go-version: '1.23.4'
       - name: run goreleaser
-        uses: goreleaser/goreleaser-action@v5
+        uses: goreleaser/goreleaser-action@v6
         with:
-          version: latest
-          args: release --rm-dist
+          version: '~> v2'
+          args: release --clean
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/.goreleaser.yml 
new/oras-1.2.1/.goreleaser.yml
--- old/oras-1.2.0/.goreleaser.yml      2024-05-28 09:33:43.000000000 +0200
+++ new/oras-1.2.1/.goreleaser.yml      2024-12-05 09:41:54.000000000 +0100
@@ -14,6 +14,7 @@
 # To release:
 #   GITHUB_TOKEN=*** goreleaser
 
+version: 2
 builds:
 - main: ./cmd/oras
   binary: ./oras
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/Dockerfile new/oras-1.2.1/Dockerfile
--- old/oras-1.2.0/Dockerfile   2024-05-28 09:33:43.000000000 +0200
+++ new/oras-1.2.1/Dockerfile   2024-12-05 09:41:54.000000000 +0100
@@ -11,7 +11,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM --platform=$BUILDPLATFORM docker.io/library/golang:1.22.3-alpine as 
builder
+FROM --platform=$BUILDPLATFORM docker.io/library/golang:1.23.4-alpine as 
builder
 ARG TARGETPLATFORM
 RUN apk add git make
 ENV ORASPKG /oras
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/README.md new/oras-1.2.1/README.md
--- old/oras-1.2.0/README.md    2024-05-28 09:33:43.000000000 +0200
+++ new/oras-1.2.1/README.md    2024-12-05 09:41:54.000000000 +0100
@@ -15,7 +15,7 @@
 
 ## Development Environment Setup
 
-Refer to the [development 
guide](https://oras.land/docs/community/developer_guide) to get started 
[contributing to ORAS](https://oras.land/docs/community/contributing_guide).
+Refer to the [development guide](https://oras.land/community/developer_guide) 
to get started [contributing to 
ORAS](https://oras.land/community/contributing_guide).
 
 ## Code of Conduct
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oras-1.2.0/cmd/oras/internal/display/status/print_test.go 
new/oras-1.2.1/cmd/oras/internal/display/status/print_test.go
--- old/oras-1.2.0/cmd/oras/internal/display/status/print_test.go       
2024-05-28 09:33:43.000000000 +0200
+++ new/oras-1.2.1/cmd/oras/internal/display/status/print_test.go       
2024-12-05 09:41:54.000000000 +0100
@@ -16,7 +16,7 @@
 package status
 
 import (
-       "fmt"
+       "errors"
        "strconv"
        "strings"
        "testing"
@@ -33,7 +33,7 @@
                return len(string(p)), nil
        }
        mw.errorCount++
-       return 0, fmt.Errorf("Boom: " + string(p))
+       return 0, errors.New("Boom: " + string(p))
 }
 
 func (mw *mockWriter) String() string {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/cmd/oras/root/attach.go 
new/oras-1.2.1/cmd/oras/root/attach.go
--- old/oras-1.2.0/cmd/oras/root/attach.go      2024-05-28 09:33:43.000000000 
+0200
+++ new/oras-1.2.1/cmd/oras/root/attach.go      2024-12-05 09:41:54.000000000 
+0100
@@ -55,7 +55,7 @@
 
 ** This command is in preview and under development. **
 
-Example - Attach file 'hi.txt' with aritifact type 'doc/example' to manifest 
'hello:v1' in registry 'localhost:5000':
+Example - Attach file 'hi.txt' with artifact type 'doc/example' to manifest 
'hello:v1' in registry 'localhost:5000':
   oras attach --artifact-type doc/example localhost:5000/hello:v1 hi.txt
 
 Example - Attach file 'hi.txt' to a specific artifact with platform 
'linux/amd64' in multi-arch index 'hello:v1'
@@ -77,6 +77,12 @@
 Example - Attach file 'hi.txt' and add manifest annotations:
   oras attach --artifact-type doc/example --annotation "key=val" 
localhost:5000/hello:v1 hi.txt
 
+Example - [Experimental] Attach file 'hi.txt' and format output in JSON:
+  oras attach --artifact-type doc/example localhost:5000/hello:v1 hi.txt 
--format json
+
+Example - [Experimental] Attach file 'hi.txt' and format output with Go 
template:
+  oras attach --artifact-type doc/example localhost:5000/hello:v1 hi.txt 
--format go-template --template "{{.digest}}"
+
 Example - Attach file 'hi.txt' and export the pushed manifest to 
'manifest.json':
   oras attach --artifact-type doc/example --export-manifest manifest.json 
localhost:5000/hello:v1 hi.txt
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/cmd/oras/root/cp.go 
new/oras-1.2.1/cmd/oras/root/cp.go
--- old/oras-1.2.0/cmd/oras/root/cp.go  2024-05-28 09:33:43.000000000 +0200
+++ new/oras-1.2.1/cmd/oras/root/cp.go  2024-12-05 09:41:54.000000000 +0100
@@ -58,7 +58,7 @@
                Use:     "cp [flags] <from>{:<tag>|@<digest>} 
<to>[:<tag>[,<tag>][...]]",
                Aliases: []string{"copy"},
                Short:   "Copy artifacts from one target to another",
-               Long: `Copy artifacts from one target to another
+               Long: `Copy artifacts from one target to another. When copying 
an image index, all of its manifests will be copied
 
 Example - Copy an artifact between registries:
   oras cp localhost:5000/net-monitor:v1 localhost:6000/net-monitor-copy:v1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/cmd/oras/root/discover.go 
new/oras-1.2.1/cmd/oras/root/discover.go
--- old/oras-1.2.0/cmd/oras/root/discover.go    2024-05-28 09:33:43.000000000 
+0200
+++ new/oras-1.2.1/cmd/oras/root/discover.go    2024-12-05 09:41:54.000000000 
+0100
@@ -51,27 +51,29 @@
 
 ** This command is in preview and under development. **
 
-Example - Discover direct referrers of manifest 'hello:v1' in registry 
'localhost:5000':
+Example - Discover referrers of manifest 'hello:v1' in registry 
'localhost:5000', displayed in a tree view:
   oras discover localhost:5000/hello:v1
 
-Example - Discover direct referrers via referrers API:
+Example - Discover referrers via referrers API:
   oras discover --distribution-spec v1.1-referrers-api localhost:5000/hello:v1
 
-Example - Discover direct referrers via tag scheme:
+Example - Discover referrers via tag scheme:
   oras discover --distribution-spec v1.1-referrers-tag localhost:5000/hello:v1
 
-Example - Discover all the referrers of manifest 'hello:v1' in registry 
'localhost:5000', displayed in a tree view:
-  oras discover -o tree localhost:5000/hello:v1
+Example - [Experimental] Discover referrers and display in a table view:
+  oras discover localhost:5000/hello:v1 --format table
+
+Example - [Experimental] Discover referrers and format output with Go template:
+  oras discover localhost:5000/hello:v1 --format go-template --template 
"{{.manifests}}"
 
 Example - Discover all the referrers of manifest with annotations, displayed 
in a tree view:
-  oras discover -v -o tree localhost:5000/hello:v1
+  oras discover -v localhost:5000/hello:v1
 
 Example - Discover referrers with type 'test-artifact' of manifest 'hello:v1' 
in registry 'localhost:5000':
   oras discover --artifact-type test-artifact localhost:5000/hello:v1
 
 Example - Discover referrers of the manifest tagged 'v1' in an OCI image 
layout folder 'layout-dir':
   oras discover --oci-layout layout-dir:v1
-  oras discover --oci-layout -v -o tree layout-dir:v1
 `,
                Args: oerrors.CheckArgs(argument.Exactly(1), "the target 
artifact to discover referrers from"),
                PreRunE: func(cmd *cobra.Command, args []string) error {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/cmd/oras/root/manifest/fetch.go 
new/oras-1.2.1/cmd/oras/root/manifest/fetch.go
--- old/oras-1.2.0/cmd/oras/root/manifest/fetch.go      2024-05-28 
09:33:43.000000000 +0200
+++ new/oras-1.2.1/cmd/oras/root/manifest/fetch.go      2024-12-05 
09:41:54.000000000 +0100
@@ -55,6 +55,12 @@
 Example - Fetch the descriptor of a manifest from a registry:
   oras manifest fetch --descriptor localhost:5000/hello:v1
 
+Example - [Experimental] Fetch the manifest digest from a registry similar to 
the resolve command:
+  oras manifest fetch --format go-template --template '{{ .digest }}' 
localhost:5000/hello:v1
+
+Example - [Experimental] Fetch manifest and output metadata encoded in JSON:
+  oras manifest fetch localhost:5000/hello:v1 --format json
+
 Example - Fetch manifest from a registry with specified media type:
   oras manifest fetch --media-type 
'application/vnd.oci.image.manifest.v1+json' localhost:5000/hello:v1
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/cmd/oras/root/pull.go 
new/oras-1.2.1/cmd/oras/root/pull.go
--- old/oras-1.2.0/cmd/oras/root/pull.go        2024-05-28 09:33:43.000000000 
+0200
+++ new/oras-1.2.1/cmd/oras/root/pull.go        2024-12-05 09:41:54.000000000 
+0100
@@ -82,6 +82,12 @@
 Example - Pull all files with concurrency level tuned:
   oras pull --concurrency 6 localhost:5000/hello:v1
 
+Example - [Experimental] Pull files and format output in JSON:
+  oras pull localhost:5000/hello:v1 --format json
+
+Example - [Experimental] Pull files and format output with Go template:
+  oras pull localhost:5000/hello:v1 --format go-template="{{.reference}}"
+
 Example - Pull artifact files from an OCI image layout folder 'layout-dir':
   oras pull --oci-layout layout-dir:v1
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/cmd/oras/root/push.go 
new/oras-1.2.1/cmd/oras/root/push.go
--- old/oras-1.2.0/cmd/oras/root/push.go        2024-05-28 09:33:43.000000000 
+0200
+++ new/oras-1.2.1/cmd/oras/root/push.go        2024-12-05 09:41:54.000000000 
+0100
@@ -70,6 +70,9 @@
 Example - Push multiple files with different media types:
   oras push localhost:5000/hello:v1 hi.txt:application/vnd.me.hi 
bye.txt:application/vnd.me.bye
 
+Example - Push file with colon in name "hi:txt" with the default media type:
+  oras push localhost:5000/hello:v1 hi:txt:
+
 Example - Push file "hi.txt" with artifact type "application/vnd.example+type":
   oras push --artifact-type application/vnd.example+type 
localhost:5000/hello:v1 hi.txt
 
@@ -79,6 +82,12 @@
 Example - Push file "hi.txt" with the custom manifest config "config.json" of 
the custom media type "application/vnd.me.config":
   oras push --config config.json:application/vnd.me.config 
localhost:5000/hello:v1 hi.txt
 
+Example - [Experimental] Push file "hi.txt" and format output in JSON:
+  oras push localhost:5000/hello:v1 hi.txt --format json
+
+Example - [Experimental] Push file "hi.txt" and format output with Go template:
+  oras push localhost:5000/hello:v1 hi.txt --format go-template="{{.digest}}"
+
 Example - Push file to the insecure registry:
   oras push --insecure localhost:5000/hello:v1 hi.txt
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/cmd/oras/root/repo/tags.go 
new/oras-1.2.1/cmd/oras/root/repo/tags.go
--- old/oras-1.2.0/cmd/oras/root/repo/tags.go   2024-05-28 09:33:43.000000000 
+0200
+++ new/oras-1.2.1/cmd/oras/root/repo/tags.go   2024-12-05 09:41:54.000000000 
+0100
@@ -47,7 +47,7 @@
   oras repo tags localhost:5000/hello
 
 Example - Show tags in the target repository with digest-like tags hidden:
-  oras repo tags --exclude-digest-tag localhost:5000/hello
+  oras repo tags --exclude-digest-tags localhost:5000/hello
 
 Example - Show tags of the target repository that include values lexically 
after last:
   oras repo tags --last "last_tag" localhost:5000/hello
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/cmd/oras/root/tag.go 
new/oras-1.2.1/cmd/oras/root/tag.go
--- old/oras-1.2.0/cmd/oras/root/tag.go 2024-05-28 09:33:43.000000000 +0200
+++ new/oras-1.2.1/cmd/oras/root/tag.go 2024-12-05 09:41:54.000000000 +0100
@@ -22,6 +22,7 @@
        "github.com/spf13/cobra"
        "oras.land/oras-go/v2"
        "oras.land/oras-go/v2/errdef"
+       "oras.land/oras-go/v2/registry/remote"
        "oras.land/oras/cmd/oras/internal/argument"
        "oras.land/oras/cmd/oras/internal/command"
        "oras.land/oras/cmd/oras/internal/display/status"
@@ -57,7 +58,7 @@
   oras tag --concurrency 1 localhost:5000/hello:v1.0.1 v1.0.2 latest
 
 Example - Tag the manifest 'v1.0.1' to 'v1.0.2' in an OCI image layout folder 
'layout-dir':
-  oras tag layout-dir:v1.0.1 v1.0.2
+  oras tag --oci-layout layout-dir:v1.0.1 v1.0.2
 `,
                Args: func(cmd *cobra.Command, args []string) error {
                        if len(args) > 0 && (args[0] == "list" || args[0] == 
"ls") {
@@ -102,6 +103,11 @@
        if err != nil {
                return err
        }
+       if targetRepo, ok := target.(*remote.Repository); ok {
+               // Since referrer capability has not been set or detected yet,
+               // nil is the only returned value and thus can be ignored
+               _ = targetRepo.SetReferrersCapability(true)
+       }
        if err := opts.EnsureReferenceNotEmpty(cmd, true); err != nil {
                return err
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/go.mod new/oras-1.2.1/go.mod
--- old/oras-1.2.0/go.mod       2024-05-28 09:33:43.000000000 +0200
+++ new/oras-1.2.1/go.mod       2024-12-05 09:41:54.000000000 +0100
@@ -1,33 +1,33 @@
 module oras.land/oras
 
-go 1.22.0
+go 1.23.1
 
 require (
-       github.com/Masterminds/sprig/v3 v3.2.3
+       github.com/Masterminds/sprig/v3 v3.3.0
        github.com/containerd/console v1.0.4
        github.com/morikuni/aec v1.0.0
        github.com/opencontainers/go-digest v1.0.0
        github.com/opencontainers/image-spec v1.1.0
        github.com/sirupsen/logrus v1.9.3
-       github.com/spf13/cobra v1.8.0
+       github.com/spf13/cobra v1.8.1
        github.com/spf13/pflag v1.0.5
-       golang.org/x/sync v0.7.0
-       golang.org/x/term v0.20.0
+       golang.org/x/sync v0.10.0
+       golang.org/x/term v0.27.0
        gopkg.in/yaml.v3 v3.0.1
        oras.land/oras-go/v2 v2.5.0
 )
 
 require (
+       dario.cat/mergo v1.0.1 // indirect
        github.com/Masterminds/goutils v1.1.1 // indirect
-       github.com/Masterminds/semver/v3 v3.2.1 // indirect
+       github.com/Masterminds/semver/v3 v3.3.0 // indirect
        github.com/google/uuid v1.6.0 // indirect
-       github.com/huandu/xstrings v1.4.0 // indirect
-       github.com/imdario/mergo v0.3.16 // indirect
+       github.com/huandu/xstrings v1.5.0 // indirect
        github.com/inconshreveable/mousetrap v1.1.0 // indirect
        github.com/mitchellh/copystructure v1.2.0 // indirect
        github.com/mitchellh/reflectwalk v1.0.2 // indirect
-       github.com/shopspring/decimal v1.3.1 // indirect
-       github.com/spf13/cast v1.6.0 // indirect
-       golang.org/x/crypto v0.18.0 // indirect
-       golang.org/x/sys v0.20.0 // indirect
+       github.com/shopspring/decimal v1.4.0 // indirect
+       github.com/spf13/cast v1.7.0 // indirect
+       golang.org/x/crypto v0.26.0 // indirect
+       golang.org/x/sys v0.28.0 // indirect
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/go.sum new/oras-1.2.1/go.sum
--- old/oras-1.2.0/go.sum       2024-05-28 09:33:43.000000000 +0200
+++ new/oras-1.2.1/go.sum       2024-12-05 09:41:54.000000000 +0100
@@ -1,39 +1,33 @@
+dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s=
+dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
 github.com/Masterminds/goutils v1.1.1 
h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
 github.com/Masterminds/goutils v1.1.1/go.mod 
h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
-github.com/Masterminds/semver/v3 v3.2.0/go.mod 
h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
-github.com/Masterminds/semver/v3 v3.2.1 
h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0=
-github.com/Masterminds/semver/v3 v3.2.1/go.mod 
h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
-github.com/Masterminds/sprig/v3 v3.2.3 
h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA=
-github.com/Masterminds/sprig/v3 v3.2.3/go.mod 
h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM=
+github.com/Masterminds/semver/v3 v3.3.0 
h1:B8LGeaivUe71a5qox1ICM/JLl0NqZSW5CHyL+hmvYS0=
+github.com/Masterminds/semver/v3 v3.3.0/go.mod 
h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
+github.com/Masterminds/sprig/v3 v3.3.0 
h1:mQh0Yrg1XPo6vjYXgtf5OtijNAKJRNcTdOOGZe3tPhs=
+github.com/Masterminds/sprig/v3 v3.3.0/go.mod 
h1:Zy1iXRYNqNLUolqCpL4uhk6SHUMAOSCzdgBfDb35Lz0=
 github.com/containerd/console v1.0.4 
h1:F2g4+oChYvBTsASRTz8NP6iIAi97J3TtSAsLbIFn4ro=
 github.com/containerd/console v1.0.4/go.mod 
h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
-github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod 
h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod 
h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
 github.com/davecgh/go-spew v1.1.0/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1 
h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/frankban/quicktest v1.14.6 
h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
 github.com/frankban/quicktest v1.14.6/go.mod 
h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
-github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
-github.com/google/go-cmp v0.5.9/go.mod 
h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
-github.com/google/uuid v1.1.1/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
+github.com/google/go-cmp v0.6.0/go.mod 
h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
 github.com/google/uuid v1.6.0/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/huandu/xstrings v1.3.3/go.mod 
h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
-github.com/huandu/xstrings v1.4.0 
h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU=
-github.com/huandu/xstrings v1.4.0/go.mod 
h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
-github.com/imdario/mergo v0.3.11/go.mod 
h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
-github.com/imdario/mergo v0.3.16 
h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
-github.com/imdario/mergo v0.3.16/go.mod 
h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
+github.com/huandu/xstrings v1.5.0 
h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI=
+github.com/huandu/xstrings v1.5.0/go.mod 
h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
 github.com/inconshreveable/mousetrap v1.1.0 
h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
 github.com/inconshreveable/mousetrap v1.1.0/go.mod 
h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
 github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
 github.com/kr/pretty v0.3.1/go.mod 
h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
 github.com/kr/text v0.2.0/go.mod 
h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/mitchellh/copystructure v1.0.0/go.mod 
h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
 github.com/mitchellh/copystructure v1.2.0 
h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
 github.com/mitchellh/copystructure v1.2.0/go.mod 
h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
-github.com/mitchellh/reflectwalk v1.0.0/go.mod 
h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
 github.com/mitchellh/reflectwalk v1.0.2 
h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
 github.com/mitchellh/reflectwalk v1.0.2/go.mod 
h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
 github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
@@ -47,65 +41,31 @@
 github.com/rogpeppe/go-internal v1.9.0 
h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
 github.com/rogpeppe/go-internal v1.9.0/go.mod 
h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
 github.com/russross/blackfriday/v2 v2.1.0/go.mod 
h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/shopspring/decimal v1.2.0/go.mod 
h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
-github.com/shopspring/decimal v1.3.1 
h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8=
-github.com/shopspring/decimal v1.3.1/go.mod 
h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
+github.com/shopspring/decimal v1.4.0 
h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
+github.com/shopspring/decimal v1.4.0/go.mod 
h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME=
 github.com/sirupsen/logrus v1.9.3 
h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
 github.com/sirupsen/logrus v1.9.3/go.mod 
h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
-github.com/spf13/cast v1.3.1/go.mod 
h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
-github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0=
-github.com/spf13/cast v1.6.0/go.mod 
h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
-github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
-github.com/spf13/cobra v1.8.0/go.mod 
h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
+github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w=
+github.com/spf13/cast v1.7.0/go.mod 
h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
+github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
+github.com/spf13/cobra v1.8.1/go.mod 
h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
 github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
 github.com/spf13/pflag v1.0.5/go.mod 
h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
 github.com/stretchr/objx v0.1.0/go.mod 
h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.2.2/go.mod 
h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
-github.com/stretchr/testify v1.5.1/go.mod 
h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
 github.com/stretchr/testify v1.7.0 
h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
 github.com/stretchr/testify v1.7.0/go.mod 
h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/yuin/goldmark v1.4.13/go.mod 
h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod 
h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod 
h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
-golang.org/x/crypto v0.3.0/go.mod 
h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
-golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc=
-golang.org/x/crypto v0.18.0/go.mod 
h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg=
-golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod 
h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
-golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod 
h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod 
h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod 
h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
-golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
-golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw=
+golang.org/x/crypto v0.26.0/go.mod 
h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54=
+golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
+golang.org/x/sync v0.10.0/go.mod 
h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
 golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
-golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
-golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
-golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw=
-golang.org/x/term v0.20.0/go.mod 
h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod 
h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.1.12/go.mod 
h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
-golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
+golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
+golang.org/x/term v0.27.0/go.mod 
h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 
h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod 
h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/internal/version/version.go 
new/oras-1.2.1/internal/version/version.go
--- old/oras-1.2.0/internal/version/version.go  2024-05-28 09:33:43.000000000 
+0200
+++ new/oras-1.2.1/internal/version/version.go  2024-12-05 09:41:54.000000000 
+0100
@@ -17,7 +17,7 @@
 
 var (
        // Version is the current version of the oras.
-       Version = "1.2.0"
+       Version = "1.2.1"
        // BuildMetadata is the extra build time data
        BuildMetadata = "unreleased"
        // GitCommit is the git sha1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/snapcraft.yaml 
new/oras-1.2.1/snapcraft.yaml
--- old/oras-1.2.0/snapcraft.yaml       2024-05-28 09:33:43.000000000 +0200
+++ new/oras-1.2.1/snapcraft.yaml       2024-12-05 09:41:54.000000000 +0100
@@ -34,7 +34,7 @@
       - on amd64 to {ARCH}:
         - TARGET_ARCH: "{ARCH}"
     build-snaps:
-      - go/1.22/stable
+      - go/1.23/stable
     build-packages:
       - make
     stage-packages:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/test/e2e/go.mod 
new/oras-1.2.1/test/e2e/go.mod
--- old/oras-1.2.0/test/e2e/go.mod      2024-05-28 09:33:43.000000000 +0200
+++ new/oras-1.2.1/test/e2e/go.mod      2024-12-05 09:41:54.000000000 +0100
@@ -1,10 +1,10 @@
 module oras.land/oras/test/e2e
 
-go 1.22.0
+go 1.23.1
 
 require (
-       github.com/onsi/ginkgo/v2 v2.19.0
-       github.com/onsi/gomega v1.33.1
+       github.com/onsi/ginkgo/v2 v2.22.0
+       github.com/onsi/gomega v1.36.0
        github.com/opencontainers/go-digest v1.0.0
        github.com/opencontainers/image-spec v1.1.0
        gopkg.in/yaml.v2 v2.4.0
@@ -12,14 +12,14 @@
 )
 
 require (
-       github.com/go-logr/logr v1.4.1 // indirect
+       github.com/go-logr/logr v1.4.2 // indirect
        github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
        github.com/google/go-cmp v0.6.0 // indirect
-       github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // indirect
-       golang.org/x/net v0.25.0 // indirect
-       golang.org/x/sync v0.7.0 // indirect
-       golang.org/x/sys v0.20.0 // indirect
-       golang.org/x/text v0.15.0 // indirect
-       golang.org/x/tools v0.21.0 // indirect
+       github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db // indirect
+       golang.org/x/net v0.30.0 // indirect
+       golang.org/x/sync v0.8.0 // indirect
+       golang.org/x/sys v0.26.0 // indirect
+       golang.org/x/text v0.19.0 // indirect
+       golang.org/x/tools v0.26.0 // indirect
        gopkg.in/yaml.v3 v3.0.1 // indirect
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/test/e2e/go.sum 
new/oras-1.2.1/test/e2e/go.sum
--- old/oras-1.2.0/test/e2e/go.sum      2024-05-28 09:33:43.000000000 +0200
+++ new/oras-1.2.1/test/e2e/go.sum      2024-12-05 09:41:54.000000000 +0100
@@ -1,17 +1,17 @@
 github.com/davecgh/go-spew v1.1.1 
h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
-github.com/go-logr/logr v1.4.1/go.mod 
h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
+github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
+github.com/go-logr/logr v1.4.2/go.mod 
h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
 github.com/go-task/slim-sprig/v3 v3.0.0 
h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
 github.com/go-task/slim-sprig/v3 v3.0.0/go.mod 
h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
 github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
 github.com/google/go-cmp v0.6.0/go.mod 
h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
-github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 
h1:k7nVchz72niMH6YLQNvHSdIE7iqsQxK1P41mySCvssg=
-github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod 
h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw=
-github.com/onsi/ginkgo/v2 v2.19.0 
h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA=
-github.com/onsi/ginkgo/v2 v2.19.0/go.mod 
h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To=
-github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk=
-github.com/onsi/gomega v1.33.1/go.mod 
h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0=
+github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db 
h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo=
+github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod 
h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
+github.com/onsi/ginkgo/v2 v2.22.0 
h1:Yed107/8DjTr0lKCNt7Dn8yQ6ybuDRQoMGrNFKzMfHg=
+github.com/onsi/ginkgo/v2 v2.22.0/go.mod 
h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo=
+github.com/onsi/gomega v1.36.0 h1:Pb12RlruUtj4XUuPUqeEWc6j5DkVVVA49Uf6YLfC95Y=
+github.com/onsi/gomega v1.36.0/go.mod 
h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog=
 github.com/opencontainers/go-digest v1.0.0 
h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
 github.com/opencontainers/go-digest v1.0.0/go.mod 
h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
 github.com/opencontainers/image-spec v1.1.0 
h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug=
@@ -20,18 +20,18 @@
 github.com/pmezard/go-difflib v1.0.0/go.mod 
h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/stretchr/testify v1.8.4 
h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
 github.com/stretchr/testify v1.8.4/go.mod 
h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
-golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
-golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
-golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
-golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
-golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
-golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
-golang.org/x/text v0.15.0/go.mod 
h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
-golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw=
-golang.org/x/tools v0.21.0/go.mod 
h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
-google.golang.org/protobuf v1.33.0 
h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
-google.golang.org/protobuf v1.33.0/go.mod 
h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
+golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4=
+golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU=
+golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
+golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
+golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM=
+golang.org/x/text v0.19.0/go.mod 
h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
+golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ=
+golang.org/x/tools v0.26.0/go.mod 
h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0=
+google.golang.org/protobuf v1.35.1 
h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA=
+google.golang.org/protobuf v1.35.1/go.mod 
h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 
h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/test/e2e/go.work 
new/oras-1.2.1/test/e2e/go.work
--- old/oras-1.2.0/test/e2e/go.work     2024-05-28 09:33:43.000000000 +0200
+++ new/oras-1.2.1/test/e2e/go.work     2024-12-05 09:41:54.000000000 +0100
@@ -1,4 +1,4 @@
-go 1.22.0
+go 1.23.1
 
 use (
        .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oras-1.2.0/test/e2e/suite/command/tag.go 
new/oras-1.2.1/test/e2e/suite/command/tag.go
--- old/oras-1.2.0/test/e2e/suite/command/tag.go        2024-05-28 
09:33:43.000000000 +0200
+++ new/oras-1.2.1/test/e2e/suite/command/tag.go        2024-12-05 
09:41:54.000000000 +0100
@@ -19,10 +19,12 @@
        "fmt"
        "path/filepath"
        "regexp"
+       "strings"
 
        . "github.com/onsi/ginkgo/v2"
        "github.com/onsi/gomega"
        "github.com/onsi/gomega/gbytes"
+       "oras.land/oras/test/e2e/internal/testdata/foobar"
        "oras.land/oras/test/e2e/internal/testdata/multi_arch"
        . "oras.land/oras/test/e2e/internal/utils"
 )
@@ -56,14 +58,15 @@
        })
 })
 
+func tagAndValidate(reg string, repo string, tagOrDigest string, digestText 
string, tags ...string) {
+       out := ORAS(append([]string{"tag", RegistryRef(reg, repo, 
tagOrDigest)}, tags...)...).MatchKeyWords(tags...).Exec().Out
+       hint := regexp.QuoteMeta(fmt.Sprintf("Tagging [registry] %s", 
RegistryRef(reg, repo, digestText)))
+       gomega.Expect(out).To(gbytes.Say(hint))
+       gomega.Expect(out).NotTo(gbytes.Say(hint)) // should only say hint once
+       ORAS("repo", "tags", RegistryRef(reg, repo, 
"")).MatchKeyWords(tags...).Exec()
+}
+
 var _ = Describe("1.1 registry users:", func() {
-       var tagAndValidate = func(reg string, repo string, tagOrDigest string, 
digest string, tags ...string) {
-               out := ORAS(append([]string{"tag", RegistryRef(reg, repo, 
tagOrDigest)}, tags...)...).MatchKeyWords(tags...).Exec().Out
-               hint := regexp.QuoteMeta(fmt.Sprintf("Tagging [registry] %s", 
RegistryRef(reg, repo, digest)))
-               gomega.Expect(out).To(gbytes.Say(hint))
-               gomega.Expect(out).NotTo(gbytes.Say(hint)) // should only say 
hint once
-               ORAS("repo", "tags", RegistryRef(reg, repo, 
"")).MatchKeyWords(tags...).Exec()
-       }
        When("running `tag`", func() {
                It("should add a tag to an existent manifest when providing tag 
reference", func() {
                        tagAndValidate(ZOTHost, ImageRepo, multi_arch.Tag, 
multi_arch.Digest, "tag-via-tag")
@@ -77,6 +80,39 @@
                It("should add multiple tags to an existent manifest when 
providing tag reference", func() {
                        tagAndValidate(ZOTHost, ImageRepo, multi_arch.Tag, 
multi_arch.Digest, "tag1-via-tag", "tag1-via-tag", "tag1-via-tag")
                })
+               It("should tag a referrer witout tag schema", func() {
+                       // parepare:
+                       repo := fmt.Sprintf("command/tag/%d/referrers", 
GinkgoRandomSeed())
+                       ORAS("cp", "-r", RegistryRef(ZOTHost, ArtifactRepo, 
foobar.Tag), "--to-distribution-spec", "v1.1-referrers-api", 
RegistryRef(ZOTHost, repo, foobar.Tag)).Exec()
+                       // test
+                       referrerDigest := 
foobar.SBOMImageReferrer.Digest.String()
+                       tagAndValidate(ZOTHost, repo, referrerDigest, 
referrerDigest, "tagged-referrer")
+                       // ensure no referrer index is created
+                       ref := RegistryRef(ZOTHost, repo, 
strings.Replace(foobar.Digest, ":", "-", 1))
+                       ORAS("manifest", "fetch", ref).
+                               MatchErrKeyWords(fmt.Sprintf("%s: not found", 
ref)).
+                               ExpectFailure().
+                               Exec()
+               })
+       })
+})
+
+var _ = Describe("1.0 registry users:", func() {
+       When("running `tag`", func() {
+               It("should tag a referrer witout tag schema", func() {
+                       // prepare: copy to the fallback registry
+                       repo := fmt.Sprintf("command/tag/%d/referrers", 
GinkgoRandomSeed())
+                       ORAS("cp", "-r", RegistryRef(FallbackHost, 
ArtifactRepo, foobar.Tag), "--to-distribution-spec", "v1.1-referrers-api", 
RegistryRef(FallbackHost, repo, foobar.Tag)).Exec()
+                       // test
+                       referrerDigest := 
foobar.SBOMImageReferrer.Digest.String()
+                       tagAndValidate(FallbackHost, repo, referrerDigest, 
referrerDigest, "tagged-referrer")
+                       // ensure no referrer index is created
+                       indexReferrerTag := RegistryRef(FallbackHost, repo, 
strings.Replace(foobar.Digest, ":", "-", 1))
+                       ORAS("manifest", "fetch", indexReferrerTag).
+                               MatchErrKeyWords(fmt.Sprintf("%s: not found", 
indexReferrerTag)).
+                               ExpectFailure().
+                               Exec()
+               })
        })
 })
 

++++++ oras.obsinfo ++++++
--- /var/tmp/diff_new_pack.ButxDw/_old  2024-12-06 14:27:19.530865586 +0100
+++ /var/tmp/diff_new_pack.ButxDw/_new  2024-12-06 14:27:19.530865586 +0100
@@ -1,5 +1,5 @@
 name: oras
-version: 1.2.0
-mtime: 1716881623
-commit: dcef719e208a9b226b15bc6512ad729a7dd93270
+version: 1.2.1
+mtime: 1733388114
+commit: a0228556766b6276010d8feb937af512e8a50808
 

++++++ vendor.tar.gz ++++++
++++ 10176 lines of diff (skipped)

Reply via email to