openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
December 2023
- 1 participants
- 1465 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package go-containerregistry for openSUSE:Factory checked in at 2023-12-28 23:02:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/go-containerregistry (Old)
and /work/SRC/openSUSE:Factory/.go-containerregistry.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "go-containerregistry"
Thu Dec 28 23:02:52 2023 rev:5 rq:1135385 version:0.17.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/go-containerregistry/go-containerregistry.changes 2023-11-26 19:38:09.612048008 +0100
+++ /work/SRC/openSUSE:Factory/.go-containerregistry.new.28375/go-containerregistry.changes 2023-12-28 23:04:36.673345163 +0100
@@ -1,0 +2,13 @@
+Wed Dec 27 21:21:47 UTC 2023 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 0.17.0:
+ * Validate index architectures match children
+ * Set Content-Length for blob uploads
+ * Don't wrap DefaultKeychain with refreshes
+ * Build releases with Go 1.21
+ * fix: mimic oci-layout in diskblobhandler
+ * tag: add command explanation to the long help
+ * feat: implement gc command
+ * feat: allow port and disk path to be overriden
+
+-------------------------------------------------------------------
Old:
----
go-containerregistry-0.16.1.tar.gz
New:
----
go-containerregistry-0.17.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ go-containerregistry.spec ++++++
--- /var/tmp/diff_new_pack.ajCo6G/_old 2023-12-28 23:04:37.421372502 +0100
+++ /var/tmp/diff_new_pack.ajCo6G/_new 2023-12-28 23:04:37.425372648 +0100
@@ -17,9 +17,8 @@
# nodebuginfo
-%global goipath github.com/google/go-containerregistry
Name: go-containerregistry
-Version: 0.16.1
+Version: 0.17.0
Release: 0
Summary: Container Library and tools for working with container registries
License: Apache-2.0
@@ -28,7 +27,7 @@
Source: https://github.com/google/go-containerregistry/archive/refs/tags/v%{version…
Source1: vendor.tar.gz
BuildRequires: golang-packaging
-BuildRequires: golang(API) = 1.20
+BuildRequires: golang(API) = 1.21
Conflicts: distribution-registry
%description
@@ -71,17 +70,18 @@
%autopatch -p1
%build
-%{goprep} %{goipath}
-
-export CGO_ENABLED=0
-
-%{gobuild} -mod vendor ./...
+for i in crane gcrane registry; do
+ go build -mod=vendor -buildmode=pie -trimpath ./cmd/$i
+done
%install
-%{goinstall}
+find -name crane
+for bin in crane gcrane registry; do
+ install $bin -D %{buildroot}/%{_bindir}/$bin
+done
# "only one tool per thing" SLE15 policy conflicts
%if 0%{?suse_version} && %{?suse_version} < 1550
-rm -v %{buildroot}/%{_bindir}/{registry,help}
+rm -v %{buildroot}/%{_bindir}/registry
%endif
%if %{?suse_version} > 1500
@@ -89,7 +89,6 @@
%license LICENSE
%doc README.md
%{_bindir}/registry
-%exclude %{_bindir}/help
%endif
%files -n crane
++++++ go-containerregistry-0.16.1.tar.gz -> go-containerregistry-0.17.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/.gitattributes new/go-containerregistry-0.17.0/.gitattributes
--- old/go-containerregistry-0.16.1/.gitattributes 2023-08-02 22:59:06.000000000 +0200
+++ new/go-containerregistry-0.17.0/.gitattributes 2023-11-29 22:32:21.000000000 +0100
@@ -5,3 +5,4 @@
**/zz_deepcopy_generated.go linguist-generated=true
cmd/crane/doc/crane*.md linguist-generated=true
go.sum linguist-generated=true
+**/testdata/** ignore-lint=true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/.github/workflows/release.yml new/go-containerregistry-0.17.0/.github/workflows/release.yml
--- old/go-containerregistry-0.16.1/.github/workflows/release.yml 2023-08-02 22:59:06.000000000 +0200
+++ new/go-containerregistry-0.17.0/.github/workflows/release.yml 2023-11-29 22:32:21.000000000 +0100
@@ -15,7 +15,7 @@
run: git fetch --prune --unshallow
- uses: actions/setup-go@v4
with:
- go-version: 1.18
+ go-version: 1.21
check-latest: true
- uses: goreleaser/goreleaser-action(a)v4.2.0
id: run-goreleaser
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/cmd/crane/cmd/gc.go new/go-containerregistry-0.17.0/cmd/crane/cmd/gc.go
--- old/go-containerregistry-0.16.1/cmd/crane/cmd/gc.go 1970-01-01 01:00:00.000000000 +0100
+++ new/go-containerregistry-0.17.0/cmd/crane/cmd/gc.go 2023-11-29 22:32:21.000000000 +0100
@@ -0,0 +1,66 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package cmd
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/google/go-containerregistry/pkg/v1/layout"
+ "github.com/spf13/cobra"
+)
+
+func NewCmdLayout() *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "layout",
+ }
+ cmd.AddCommand(newCmdGc())
+ return cmd
+}
+
+// NewCmdGc creates a new cobra.Command for the pull subcommand.
+func newCmdGc() *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "gc OCI-LAYOUT",
+ Short: "Garbage collect unreferenced blobs in a local oci-layout",
+ Args: cobra.ExactArgs(1),
+ Hidden: true, // TODO: promote to public once theres some milage
+ RunE: func(_ *cobra.Command, args []string) error {
+ path := args[0]
+
+ p, err := layout.FromPath(path)
+
+ if err != nil {
+ return err
+ }
+
+ blobs, err := p.GarbageCollect()
+ if err != nil {
+ return err
+ }
+
+ for _, blob := range blobs {
+ if err := p.RemoveBlob(blob); err != nil {
+ return err
+ }
+ fmt.Fprintf(os.Stderr, "garbage collecting: %s\n", blob.String())
+ }
+
+ return nil
+ },
+ }
+
+ return cmd
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/cmd/crane/cmd/root.go new/go-containerregistry-0.17.0/cmd/crane/cmd/root.go
--- old/go-containerregistry-0.16.1/cmd/crane/cmd/root.go 2023-08-02 22:59:06.000000000 +0200
+++ new/go-containerregistry-0.17.0/cmd/crane/cmd/root.go 2023-11-29 22:32:21.000000000 +0100
@@ -129,7 +129,8 @@
NewCmdTag(&options),
NewCmdValidate(&options),
NewCmdVersion(),
- newCmdRegistry(),
+ NewCmdRegistry(),
+ NewCmdLayout(),
)
root.PersistentFlags().BoolVarP(&verbose, "verbose", "v", false, "Enable debug logs")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/cmd/crane/cmd/serve.go new/go-containerregistry-0.17.0/cmd/crane/cmd/serve.go
--- old/go-containerregistry-0.16.1/cmd/crane/cmd/serve.go 2023-08-02 22:59:06.000000000 +0200
+++ new/go-containerregistry-0.17.0/cmd/crane/cmd/serve.go 2023-11-29 22:32:21.000000000 +0100
@@ -28,7 +28,7 @@
"github.com/google/go-containerregistry/pkg/registry"
)
-func newCmdRegistry() *cobra.Command {
+func NewCmdRegistry() *cobra.Command {
cmd := &cobra.Command{
Use: "registry",
}
@@ -37,15 +37,16 @@
}
func newCmdServe() *cobra.Command {
- var disk bool
+ var address, disk string
+ var blobsToDisk bool
cmd := &cobra.Command{
Use: "serve",
- Short: "Serve an in-memory registry implementation",
- Long: `This sub-command serves an in-memory registry implementation on an automatically chosen port (or $PORT)
+ Short: "Serve a registry implementation",
+ Long: `This sub-command serves a registry implementation on an automatically chosen port (:0), $PORT or --address
The command blocks while the server accepts pushes and pulls.
-Contents are only stored in memory, and when the process exits, pushed data is lost.`,
+Contents are can be stored in memory (when the process exits, pushed data is lost.), and disk (--disk).`,
Args: cobra.NoArgs,
RunE: func(cmd *cobra.Command, _ []string) error {
ctx := cmd.Context()
@@ -54,7 +55,12 @@
if port == "" {
port = "0"
}
- listener, err := net.Listen("tcp", ":"+port)
+ listenOn := ":" + port
+ if address != "" {
+ listenOn = address
+ }
+
+ listener, err := net.Listen("tcp", listenOn)
if err != nil {
log.Fatalln(err)
}
@@ -62,10 +68,21 @@
port = fmt.Sprintf("%d", porti)
bh := registry.NewInMemoryBlobHandler()
- if disk {
- tmp := os.TempDir()
- log.Printf("storing blobs in %s", tmp)
- bh = registry.NewDiskBlobHandler(tmp)
+
+ diskp := disk
+ if cmd.Flags().Changed("blobs-to-disk") {
+ if disk != "" {
+ return fmt.Errorf("--disk and --blobs-to-disk can't be used together")
+ }
+ diskp, err = os.MkdirTemp(os.TempDir(), "craneregistry*")
+ if err != nil {
+ return err
+ }
+ }
+
+ if diskp != "" {
+ log.Printf("storing blobs in %s", diskp)
+ bh = registry.NewDiskBlobHandler(diskp)
}
s := &http.Server{
@@ -89,7 +106,12 @@
return nil
},
}
- cmd.Flags().BoolVar(&disk, "blobs-to-disk", false, "Store blobs on disk")
+ // TODO: remove --blobs-to-disk in a future release.
+ cmd.Flags().BoolVarP(&blobsToDisk, "blobs-to-disk", "", false, "Store blobs on disk on tmpdir")
cmd.Flags().MarkHidden("blobs-to-disk")
+ cmd.Flags().MarkDeprecated("blobs-to-disk", "and will stop working in a future release. use --disk=$(mktemp -d) instead.")
+ cmd.Flags().StringVarP(&disk, "disk", "", "", "Path to a directory where blobs will be stored")
+ cmd.Flags().StringVar(&address, "address", "", "Address to listen on")
+
return cmd
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/cmd/crane/cmd/tag.go new/go-containerregistry-0.17.0/cmd/crane/cmd/tag.go
--- old/go-containerregistry-0.16.1/cmd/crane/cmd/tag.go 2023-08-02 22:59:06.000000000 +0200
+++ new/go-containerregistry-0.17.0/cmd/crane/cmd/tag.go 2023-11-29 22:32:21.000000000 +0100
@@ -24,7 +24,9 @@
return &cobra.Command{
Use: "tag IMG TAG",
Short: "Efficiently tag a remote image",
- Long: `This differs slightly from the "copy" command in a couple subtle ways:
+ Long: `Tag remote image without downloading it.
+
+This differs slightly from the "copy" command in a couple subtle ways:
1. You don't have to specify the entire repository for the tag you're adding. For example, these two commands are functionally equivalent:
` + "```" + `
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/cmd/crane/cmd/validate.go new/go-containerregistry-0.17.0/cmd/crane/cmd/validate.go
--- old/go-containerregistry-0.16.1/cmd/crane/cmd/validate.go 2023-08-02 22:59:06.000000000 +0200
+++ new/go-containerregistry-0.17.0/cmd/crane/cmd/validate.go 2023-11-29 22:32:21.000000000 +0100
@@ -18,7 +18,6 @@
"fmt"
"github.com/google/go-containerregistry/pkg/crane"
- v1 "github.com/google/go-containerregistry/pkg/v1"
"github.com/google/go-containerregistry/pkg/v1/tarball"
"github.com/google/go-containerregistry/pkg/v1/validate"
"github.com/spf13/cobra"
@@ -36,28 +35,56 @@
Short: "Validate that an image is well-formed",
Args: cobra.ExactArgs(0),
RunE: func(cmd *cobra.Command, args []string) error {
- for flag, maker := range map[string]func(string, ...crane.Option) (v1.Image, error){
- tarballPath: makeTarball,
- remoteRef: crane.Pull,
- } {
- if flag == "" {
- continue
- }
- img, err := maker(flag, *options...)
+ if tarballPath != "" {
+ img, err := tarball.ImageFromPath(tarballPath, nil)
if err != nil {
- return fmt.Errorf("failed to read image %s: %w", flag, err)
+ return fmt.Errorf("failed to read image %s: %w", tarballPath, err)
}
-
opt := []validate.Option{}
if fast {
opt = append(opt, validate.Fast)
}
if err := validate.Image(img, opt...); err != nil {
- fmt.Fprintf(cmd.OutOrStdout(), "FAIL: %s: %v\n", flag, err)
+ fmt.Fprintf(cmd.OutOrStdout(), "FAIL: %s: %v\n", tarballPath, err)
return err
}
- fmt.Fprintf(cmd.OutOrStdout(), "PASS: %s\n", flag)
+ fmt.Fprintf(cmd.OutOrStdout(), "PASS: %s\n", tarballPath)
+ }
+
+ if remoteRef != "" {
+ rmt, err := crane.Get(remoteRef, *options...)
+ if err != nil {
+ return fmt.Errorf("failed to read image %s: %w", remoteRef, err)
+ }
+
+ o := crane.GetOptions(*options...)
+
+ opt := []validate.Option{}
+ if fast {
+ opt = append(opt, validate.Fast)
+ }
+ if rmt.MediaType.IsIndex() && o.Platform == nil {
+ idx, err := rmt.ImageIndex()
+ if err != nil {
+ return fmt.Errorf("reading index: %w", err)
+ }
+ if err := validate.Index(idx, opt...); err != nil {
+ fmt.Fprintf(cmd.OutOrStdout(), "FAIL: %s: %v\n", remoteRef, err)
+ return err
+ }
+ } else {
+ img, err := rmt.Image()
+ if err != nil {
+ return fmt.Errorf("reading image: %w", err)
+ }
+ if err := validate.Image(img, opt...); err != nil {
+ fmt.Fprintf(cmd.OutOrStdout(), "FAIL: %s: %v\n", remoteRef, err)
+ return err
+ }
+ }
+ fmt.Fprintf(cmd.OutOrStdout(), "PASS: %s\n", remoteRef)
}
+
return nil
},
}
@@ -67,7 +94,3 @@
return validateCmd
}
-
-func makeTarball(path string, _ ...crane.Option) (v1.Image, error) {
- return tarball.ImageFromPath(path, nil)
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/cmd/crane/doc/crane_registry.md new/go-containerregistry-0.17.0/cmd/crane/doc/crane_registry.md
--- old/go-containerregistry-0.16.1/cmd/crane/doc/crane_registry.md 2023-08-02 22:59:06.000000000 +0200
+++ new/go-containerregistry-0.17.0/cmd/crane/doc/crane_registry.md 2023-11-29 22:32:21.000000000 +0100
@@ -20,5 +20,5 @@
### SEE ALSO
* [crane](crane.md) - Crane is a tool for managing container images
-* [crane registry serve](crane_registry_serve.md) - Serve an in-memory registry implementation
+* [crane registry serve](crane_registry_serve.md) - Serve a registry implementation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/cmd/crane/doc/crane_registry_serve.md new/go-containerregistry-0.17.0/cmd/crane/doc/crane_registry_serve.md
--- old/go-containerregistry-0.16.1/cmd/crane/doc/crane_registry_serve.md 2023-08-02 22:59:06.000000000 +0200
+++ new/go-containerregistry-0.17.0/cmd/crane/doc/crane_registry_serve.md 2023-11-29 22:32:21.000000000 +0100
@@ -1,14 +1,14 @@
## crane registry serve
-Serve an in-memory registry implementation
+Serve a registry implementation
### Synopsis
-This sub-command serves an in-memory registry implementation on an automatically chosen port (or $PORT)
+This sub-command serves a registry implementation on an automatically chosen port (:0), $PORT or --address
The command blocks while the server accepts pushes and pulls.
-Contents are only stored in memory, and when the process exits, pushed data is lost.
+Contents are can be stored in memory (when the process exits, pushed data is lost.), and disk (--disk).
```
crane registry serve [flags]
@@ -17,7 +17,9 @@
### Options
```
- -h, --help help for serve
+ --address string Address to listen on
+ --disk string Path to a directory where blobs will be stored
+ -h, --help help for serve
```
### Options inherited from parent commands
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/cmd/crane/doc/crane_tag.md new/go-containerregistry-0.17.0/cmd/crane/doc/crane_tag.md
--- old/go-containerregistry-0.16.1/cmd/crane/doc/crane_tag.md 2023-08-02 22:59:06.000000000 +0200
+++ new/go-containerregistry-0.17.0/cmd/crane/doc/crane_tag.md 2023-11-29 22:32:21.000000000 +0100
@@ -4,6 +4,8 @@
### Synopsis
+Tag remote image without downloading it.
+
This differs slightly from the "copy" command in a couple subtle ways:
1. You don't have to specify the entire repository for the tag you're adding. For example, these two commands are functionally equivalent:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/pkg/authn/keychain.go new/go-containerregistry-0.17.0/pkg/authn/keychain.go
--- old/go-containerregistry-0.16.1/pkg/authn/keychain.go 2023-08-02 22:59:06.000000000 +0200
+++ new/go-containerregistry-0.17.0/pkg/authn/keychain.go 2023-11-29 22:32:21.000000000 +0100
@@ -53,7 +53,7 @@
var (
// DefaultKeychain implements Keychain by interpreting the docker config file.
- DefaultKeychain = RefreshingKeychain(&defaultKeychain{}, 5*time.Minute)
+ DefaultKeychain = &defaultKeychain{}
)
const (
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/pkg/registry/blobs_disk.go new/go-containerregistry-0.17.0/pkg/registry/blobs_disk.go
--- old/go-containerregistry-0.16.1/pkg/registry/blobs_disk.go 2023-08-02 22:59:06.000000000 +0200
+++ new/go-containerregistry-0.17.0/pkg/registry/blobs_disk.go 2023-11-29 22:32:21.000000000 +0100
@@ -30,8 +30,12 @@
func NewDiskBlobHandler(dir string) BlobHandler { return &diskHandler{dir: dir} }
+func (m *diskHandler) blobHashPath(h v1.Hash) string {
+ return filepath.Join(m.dir, h.Algorithm, h.Hex)
+}
+
func (m *diskHandler) Stat(_ context.Context, _ string, h v1.Hash) (int64, error) {
- fi, err := os.Stat(filepath.Join(m.dir, h.String()))
+ fi, err := os.Stat(m.blobHashPath(h))
if errors.Is(err, os.ErrNotExist) {
return 0, errNotFound
} else if err != nil {
@@ -40,7 +44,7 @@
return fi.Size(), nil
}
func (m *diskHandler) Get(_ context.Context, _ string, h v1.Hash) (io.ReadCloser, error) {
- return os.Open(filepath.Join(m.dir, h.String()))
+ return os.Open(m.blobHashPath(h))
}
func (m *diskHandler) Put(_ context.Context, _ string, h v1.Hash, rc io.ReadCloser) error {
// Put the temp file in the same directory to avoid cross-device problems
@@ -57,9 +61,11 @@
}(); err != nil {
return err
}
-
- return os.Rename(f.Name(), filepath.Join(m.dir, h.String()))
+ if err := os.MkdirAll(filepath.Join(m.dir, h.Algorithm), os.ModePerm); err != nil {
+ return err
+ }
+ return os.Rename(f.Name(), m.blobHashPath(h))
}
func (m *diskHandler) Delete(_ context.Context, _ string, h v1.Hash) error {
- return os.Remove(filepath.Join(m.dir, h.String()))
+ return os.Remove(m.blobHashPath(h))
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/pkg/registry/blobs_disk_test.go new/go-containerregistry-0.17.0/pkg/registry/blobs_disk_test.go
--- old/go-containerregistry-0.16.1/pkg/registry/blobs_disk_test.go 2023-08-02 22:59:06.000000000 +0200
+++ new/go-containerregistry-0.17.0/pkg/registry/blobs_disk_test.go 2023-11-29 22:32:21.000000000 +0100
@@ -15,6 +15,7 @@
package registry_test
import (
+ "fmt"
"net/http/httptest"
"os"
"path/filepath"
@@ -59,7 +60,7 @@
if h, err := img.ConfigName(); err != nil {
t.Fatal(err)
} else {
- want[h.String()] = true
+ want[fmt.Sprintf("%s/%s", h.Algorithm, h.Hex)] = true
}
ls, err := img.Layers()
if err != nil {
@@ -69,7 +70,7 @@
if h, err := l.Digest(); err != nil {
t.Fatal(err)
} else {
- want[h.String()] = true
+ want[fmt.Sprintf("%s/%s", h.Algorithm, h.Hex)] = true
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/pkg/v1/layout/gc.go new/go-containerregistry-0.17.0/pkg/v1/layout/gc.go
--- old/go-containerregistry-0.16.1/pkg/v1/layout/gc.go 1970-01-01 01:00:00.000000000 +0100
+++ new/go-containerregistry-0.17.0/pkg/v1/layout/gc.go 2023-11-29 22:32:21.000000000 +0100
@@ -0,0 +1,137 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// This is an EXPERIMENTAL package, and may change in arbitrary ways without notice.
+package layout
+
+import (
+ "fmt"
+ "io/fs"
+ "path/filepath"
+ "strings"
+
+ v1 "github.com/google/go-containerregistry/pkg/v1"
+)
+
+// GarbageCollect removes unreferenced blobs from the oci-layout
+//
+// This is an experimental api, and not subject to any stability guarantees
+// We may abandon it at any time, without prior notice.
+// Deprecated: Use it at your own risk!
+func (l Path) GarbageCollect() ([]v1.Hash, error) {
+ idx, err := l.ImageIndex()
+ if err != nil {
+ return nil, err
+ }
+ blobsToKeep := map[string]bool{}
+ if err := l.garbageCollectImageIndex(idx, blobsToKeep); err != nil {
+ return nil, err
+ }
+ blobsDir := l.path("blobs")
+ removedBlobs := []v1.Hash{}
+
+ err = filepath.WalkDir(blobsDir, func(path string, d fs.DirEntry, err error) error {
+ if err != nil {
+ return err
+ }
+
+ if d.IsDir() {
+ return nil
+ }
+
+ rel, err := filepath.Rel(blobsDir, path)
+ if err != nil {
+ return err
+ }
+ hashString := strings.Replace(rel, "/", ":", 1)
+ if present := blobsToKeep[hashString]; !present {
+ h, err := v1.NewHash(hashString)
+ if err != nil {
+ return err
+ }
+ removedBlobs = append(removedBlobs, h)
+ }
+ return nil
+ })
+
+ if err != nil {
+ return nil, err
+ }
+
+ return removedBlobs, nil
+}
+
+func (l Path) garbageCollectImageIndex(index v1.ImageIndex, blobsToKeep map[string]bool) error {
+ idxm, err := index.IndexManifest()
+ if err != nil {
+ return err
+ }
+
+ h, err := index.Digest()
+ if err != nil {
+ return err
+ }
+
+ blobsToKeep[h.String()] = true
+
+ for _, descriptor := range idxm.Manifests {
+ if descriptor.MediaType.IsImage() {
+ img, err := index.Image(descriptor.Digest)
+ if err != nil {
+ return err
+ }
+ if err := l.garbageCollectImage(img, blobsToKeep); err != nil {
+ return err
+ }
+ } else if descriptor.MediaType.IsIndex() {
+ idx, err := index.ImageIndex(descriptor.Digest)
+ if err != nil {
+ return err
+ }
+ if err := l.garbageCollectImageIndex(idx, blobsToKeep); err != nil {
+ return err
+ }
+ } else {
+ return fmt.Errorf("gc: unknown media type: %s", descriptor.MediaType)
+ }
+ }
+ return nil
+}
+
+func (l Path) garbageCollectImage(image v1.Image, blobsToKeep map[string]bool) error {
+ h, err := image.Digest()
+ if err != nil {
+ return err
+ }
+ blobsToKeep[h.String()] = true
+
+ h, err = image.ConfigName()
+ if err != nil {
+ return err
+ }
+ blobsToKeep[h.String()] = true
+
+ ls, err := image.Layers()
+ if err != nil {
+ return err
+ }
+ for _, l := range ls {
+ h, err := l.Digest()
+ if err != nil {
+ return err
+ }
+ blobsToKeep[h.String()] = true
+ }
+ return nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/pkg/v1/layout/gc_test.go new/go-containerregistry-0.17.0/pkg/v1/layout/gc_test.go
--- old/go-containerregistry-0.16.1/pkg/v1/layout/gc_test.go 1970-01-01 01:00:00.000000000 +0100
+++ new/go-containerregistry-0.17.0/pkg/v1/layout/gc_test.go 2023-11-29 22:32:21.000000000 +0100
@@ -0,0 +1,96 @@
+// Copyright 2018 Google LLC All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package layout
+
+import (
+ "path/filepath"
+ "testing"
+)
+
+var (
+ gcIndexPath = filepath.Join("testdata", "test_gc_index")
+ gcIndexBlobHash = "sha256:492b89b9dd3cda4596f94916d17f6901455fb8bd7f4c5a2a90df8d39c90f48a0"
+ gcUnknownMediaTypePath = filepath.Join("testdata", "test_gc_image_unknown_mediatype")
+ gcUnknownMediaTypeErr = "gc: unknown media type: application/vnd.oci.descriptor.v1+json"
+ gcTestOneImagePath = filepath.Join("testdata", "test_index_one_image")
+ gcTestIndexMediaTypePath = filepath.Join("testdata", "test_index_media_type")
+)
+
+func TestGcIndex(t *testing.T) {
+ lp, err := FromPath(gcIndexPath)
+ if err != nil {
+ t.Fatalf("FromPath() = %v", err)
+ }
+
+ removed, err := lp.GarbageCollect()
+ if err != nil {
+ t.Fatalf("GarbageCollect() = %v", err)
+ }
+
+ if len(removed) != 1 {
+ t.Fatalf("expected to have only one gc-able blob")
+ }
+ if removed[0].String() != gcIndexBlobHash {
+ t.Fatalf("wrong blob is gc-ed: expected '%s', got '%s'", gcIndexBlobHash, removed[0].String())
+ }
+}
+
+func TestGcOneImage(t *testing.T) {
+ lp, err := FromPath(gcTestOneImagePath)
+ if err != nil {
+ t.Fatalf("FromPath() = %v", err)
+ }
+
+ removed, err := lp.GarbageCollect()
+ if err != nil {
+ t.Fatalf("GarbageCollect() = %v", err)
+ }
+
+ if len(removed) != 0 {
+ t.Fatalf("expected to have to gc-able blobs")
+ }
+}
+
+func TestGcIndexMediaType(t *testing.T) {
+ lp, err := FromPath(gcTestIndexMediaTypePath)
+ if err != nil {
+ t.Fatalf("FromPath() = %v", err)
+ }
+
+ removed, err := lp.GarbageCollect()
+ if err != nil {
+ t.Fatalf("GarbageCollect() = %v", err)
+ }
+
+ if len(removed) != 0 {
+ t.Fatalf("expected to have to gc-able blobs")
+ }
+}
+
+func TestGcUnknownMediaType(t *testing.T) {
+ lp, err := FromPath(gcUnknownMediaTypePath)
+ if err != nil {
+ t.Fatalf("FromPath() = %v", err)
+ }
+
+ _, err = lp.GarbageCollect()
+ if err == nil {
+ t.Fatalf("expected GarbageCollect to return err but did not")
+ }
+
+ if err.Error() != gcUnknownMediaTypeErr {
+ t.Fatalf("expected error '%s', got '%s'", gcUnknownMediaTypeErr, err.Error())
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/pkg/v1/layout/testdata/test_gc_image_unknown_mediatype/index.json new/go-containerregistry-0.17.0/pkg/v1/layout/testdata/test_gc_image_unknown_mediatype/index.json
--- old/go-containerregistry-0.16.1/pkg/v1/layout/testdata/test_gc_image_unknown_mediatype/index.json 1970-01-01 01:00:00.000000000 +0100
+++ new/go-containerregistry-0.17.0/pkg/v1/layout/testdata/test_gc_image_unknown_mediatype/index.json 2023-11-29 22:32:21.000000000 +0100
@@ -0,0 +1,10 @@
+{
+ "schemaVersion": 2,
+ "manifests": [
+ {
+ "mediaType": "application/vnd.oci.descriptor.v1+json",
+ "size": 423,
+ "digest": "sha256:32589985702551b6c56033bb3334432a0a513bf9d6aceda0f67c42b003850720"
+ }
+ ]
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/pkg/v1/layout/testdata/test_gc_image_unknown_mediatype/oci-layout new/go-containerregistry-0.17.0/pkg/v1/layout/testdata/test_gc_image_unknown_mediatype/oci-layout
--- old/go-containerregistry-0.16.1/pkg/v1/layout/testdata/test_gc_image_unknown_mediatype/oci-layout 1970-01-01 01:00:00.000000000 +0100
+++ new/go-containerregistry-0.17.0/pkg/v1/layout/testdata/test_gc_image_unknown_mediatype/oci-layout 2023-11-29 22:32:21.000000000 +0100
@@ -0,0 +1,3 @@
+{
+ "imageLayoutVersion": "1.0.0"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/05f95b26ed10668b7183c1e2da98610e91372fa9f510046d4ce5812addad86b5 new/go-containerregistry-0.17.0/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/05f95b26ed10668b7183c1e2da98610e91372fa9f510046d4ce5812addad86b5
--- old/go-containerregistry-0.16.1/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/05f95b26ed10668b7183c1e2da98610e91372fa9f510046d4ce5812addad86b5 1970-01-01 01:00:00.000000000 +0100
+++ new/go-containerregistry-0.17.0/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/05f95b26ed10668b7183c1e2da98610e91372fa9f510046d4ce5812addad86b5 2023-11-29 22:32:21.000000000 +0100
@@ -0,0 +1,13 @@
+{
+ "schemaVersion": 2,
+ "manifests": [
+ {
+ "mediaType": "application/vnd.oci.image.manifest.v1+json",
+ "size": 423,
+ "digest": "sha256:eebff607b1628d67459b0596643fc07de70d702eccf030f0bc7bb6fc2b278650",
+ "annotations": {
+ "org.opencontainers.image.ref.name": "1"
+ }
+ }
+ ]
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/2b29a2b8dea3af91ea7d0154be1da0c92d55ddd098540930fc8d3db7de377fdb new/go-containerregistry-0.17.0/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/2b29a2b8dea3af91ea7d0154be1da0c92d55ddd098540930fc8d3db7de377fdb
--- old/go-containerregistry-0.16.1/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/2b29a2b8dea3af91ea7d0154be1da0c92d55ddd098540930fc8d3db7de377fdb 1970-01-01 01:00:00.000000000 +0100
+++ new/go-containerregistry-0.17.0/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/2b29a2b8dea3af91ea7d0154be1da0c92d55ddd098540930fc8d3db7de377fdb 2023-11-29 22:32:21.000000000 +0100
@@ -0,0 +1,13 @@
+{
+ "schemaVersion": 2,
+ "manifests": [
+ {
+ "mediaType": "application/vnd.oci.image.manifest.v1+json",
+ "size": 423,
+ "digest": "sha256:eebff607b1628d67459b0596643fc07de70d702eccf030f0bc7bb6fc2b278650",
+ "annotations": {
+ "org.opencontainers.image.ref.name": "4"
+ }
+ }
+ ]
+}
Binary files old/go-containerregistry-0.16.1/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/492b89b9dd3cda4596f94916d17f6901455fb8bd7f4c5a2a90df8d39c90f48a0 and new/go-containerregistry-0.17.0/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/492b89b9dd3cda4596f94916d17f6901455fb8bd7f4c5a2a90df8d39c90f48a0 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/6e0b05049ed9c17d02e1a55e80d6599dbfcce7f4f4b022e3c673e685789c470e new/go-containerregistry-0.17.0/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/6e0b05049ed9c17d02e1a55e80d6599dbfcce7f4f4b022e3c673e685789c470e
--- old/go-containerregistry-0.16.1/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/6e0b05049ed9c17d02e1a55e80d6599dbfcce7f4f4b022e3c673e685789c470e 1970-01-01 01:00:00.000000000 +0100
+++ new/go-containerregistry-0.17.0/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/6e0b05049ed9c17d02e1a55e80d6599dbfcce7f4f4b022e3c673e685789c470e 2023-11-29 22:32:21.000000000 +0100
@@ -0,0 +1 @@
+{"architecture": "amd64", "author": "Bazel", "config": {}, "created": "1970-01-01T00:00:00Z", "history": [{"author": "Bazel", "created": "1970-01-01T00:00:00Z", "created_by": "bazel build ..."}], "os": "linux", "rootfs": {"diff_ids": ["sha256:8897395fd26dc44ad0e2a834335b33198cb41ac4d98dfddf58eced3853fa7b17"], "type": "layers"}}
Binary files old/go-containerregistry-0.16.1/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/dc52c6e48a1d51a96047b059f16889bc889c4b4c28f3b36b3f93187f62fc0b2b and new/go-containerregistry-0.17.0/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/dc52c6e48a1d51a96047b059f16889bc889c4b4c28f3b36b3f93187f62fc0b2b differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/eebff607b1628d67459b0596643fc07de70d702eccf030f0bc7bb6fc2b278650 new/go-containerregistry-0.17.0/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/eebff607b1628d67459b0596643fc07de70d702eccf030f0bc7bb6fc2b278650
--- old/go-containerregistry-0.16.1/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/eebff607b1628d67459b0596643fc07de70d702eccf030f0bc7bb6fc2b278650 1970-01-01 01:00:00.000000000 +0100
+++ new/go-containerregistry-0.17.0/pkg/v1/layout/testdata/test_gc_index/blobs/sha256/eebff607b1628d67459b0596643fc07de70d702eccf030f0bc7bb6fc2b278650 2023-11-29 22:32:21.000000000 +0100
@@ -0,0 +1 @@
+{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":330,"digest":"sha256:6e0b05049ed9c17d02e1a55e80d6599dbfcce7f4f4b022e3c673e685789c470e"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":167,"digest":"sha256:dc52c6e48a1d51a96047b059f16889bc889c4b4c28f3b36b3f93187f62fc0b2b"}]}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/pkg/v1/layout/testdata/test_gc_index/index.json new/go-containerregistry-0.17.0/pkg/v1/layout/testdata/test_gc_index/index.json
--- old/go-containerregistry-0.16.1/pkg/v1/layout/testdata/test_gc_index/index.json 1970-01-01 01:00:00.000000000 +0100
+++ new/go-containerregistry-0.17.0/pkg/v1/layout/testdata/test_gc_index/index.json 2023-11-29 22:32:21.000000000 +0100
@@ -0,0 +1,29 @@
+{
+ "schemaVersion": 2,
+ "manifests": [
+ {
+ "mediaType": "application/vnd.oci.image.manifest.v1+json",
+ "size": 423,
+ "digest": "sha256:eebff607b1628d67459b0596643fc07de70d702eccf030f0bc7bb6fc2b278650",
+ "annotations": {
+ "org.opencontainers.image.ref.name": "1"
+ }
+ },
+ {
+ "mediaType": "application/vnd.oci.image.index.v1+json",
+ "size": 314,
+ "digest": "sha256:05f95b26ed10668b7183c1e2da98610e91372fa9f510046d4ce5812addad86b5",
+ "annotations": {
+ "org.opencontainers.image.ref.name": "3"
+ }
+ },
+ {
+ "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
+ "size": 314,
+ "digest": "sha256:2b29a2b8dea3af91ea7d0154be1da0c92d55ddd098540930fc8d3db7de377fdb",
+ "annotations": {
+ "org.opencontainers.image.ref.name": "4"
+ }
+ }
+ ]
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/pkg/v1/layout/testdata/test_gc_index/oci-layout new/go-containerregistry-0.17.0/pkg/v1/layout/testdata/test_gc_index/oci-layout
--- old/go-containerregistry-0.16.1/pkg/v1/layout/testdata/test_gc_index/oci-layout 1970-01-01 01:00:00.000000000 +0100
+++ new/go-containerregistry-0.17.0/pkg/v1/layout/testdata/test_gc_index/oci-layout 2023-11-29 22:32:21.000000000 +0100
@@ -0,0 +1,3 @@
+{
+ "imageLayoutVersion": "1.0.0"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/pkg/v1/remote/write.go new/go-containerregistry-0.17.0/pkg/v1/remote/write.go
--- old/go-containerregistry-0.16.1/pkg/v1/remote/write.go 2023-08-02 22:59:06.000000000 +0200
+++ new/go-containerregistry-0.17.0/pkg/v1/remote/write.go 2023-11-29 22:32:21.000000000 +0100
@@ -280,6 +280,11 @@
if _, ok := layer.(*stream.Layer); !ok {
// We can't retry streaming layers.
req.GetBody = getBody
+
+ // If we know the size, set it.
+ if size, err := layer.Size(); err == nil {
+ req.ContentLength = size
+ }
}
req.Header.Set("Content-Type", "application/octet-stream")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-containerregistry-0.16.1/pkg/v1/validate/index.go new/go-containerregistry-0.17.0/pkg/v1/validate/index.go
--- old/go-containerregistry-0.16.1/pkg/v1/validate/index.go 2023-08-02 22:59:06.000000000 +0200
+++ new/go-containerregistry-0.17.0/pkg/v1/validate/index.go 2023-11-29 22:32:21.000000000 +0100
@@ -79,6 +79,9 @@
if err := validateMediaType(img, desc.MediaType); err != nil {
errs = append(errs, fmt.Sprintf("failed to validate image MediaType[%d](%s): %v", i, desc.Digest, err))
}
+ if err := validatePlatform(img, desc.Platform); err != nil {
+ errs = append(errs, fmt.Sprintf("failed to validate image platform[%d](%s): %v", i, desc.Digest, err))
+ }
default:
// Workaround for #819.
if wl, ok := idx.(withLayer); ok {
@@ -173,3 +176,54 @@
return nil
}
+
+func validatePlatform(img v1.Image, want *v1.Platform) error {
+ if want == nil {
+ return nil
+ }
+
+ cf, err := img.ConfigFile()
+ if err != nil {
+ return err
+ }
+
+ got := cf.Platform()
+
+ if got == nil {
+ return fmt.Errorf("config file missing platform fields")
+ }
+
+ if got.Equals(*want) {
+ return nil
+ }
+
+ errs := []string{}
+
+ if got.OS != want.OS {
+ errs = append(errs, fmt.Sprintf("mismatched OS: %s != %s", got.OS, want.OS))
+ }
+
+ if got.Architecture != want.Architecture {
+ errs = append(errs, fmt.Sprintf("mismatched Architecture: %s != %s", got.Architecture, want.Architecture))
+ }
+
+ if got.OSVersion != want.OSVersion {
+ errs = append(errs, fmt.Sprintf("mismatched OSVersion: %s != %s", got.OSVersion, want.OSVersion))
+ }
+
+ if got.OSVersion != want.OSVersion {
+ errs = append(errs, fmt.Sprintf("mismatched OSVersion: %s != %s", got.OSVersion, want.OSVersion))
+ }
+
+ if len(errs) == 0 {
+ // If we got here, some features might be mismatched. Just add those...
+ if len(got.Features) != 0 || len(want.Features) != 0 {
+ errs = append(errs, fmt.Sprintf("mismatched Features: %v, %v", got.Features, want.Features))
+ }
+ if len(got.OSFeatures) != 0 || len(want.OSFeatures) != 0 {
+ errs = append(errs, fmt.Sprintf("mismatched OSFeatures: %v, %v", got.OSFeatures, want.OSFeatures))
+ }
+ }
+
+ return errors.New(strings.Join(errs, "\n"))
+}
++++++ vendor.tar.gz ++++++
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package opensbi for openSUSE:Factory checked in at 2023-12-28 23:02:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/opensbi (Old)
and /work/SRC/openSUSE:Factory/.opensbi.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "opensbi"
Thu Dec 28 23:02:51 2023 rev:12 rq:1135366 version:1.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/opensbi/opensbi.changes 2023-07-24 18:24:50.477753571 +0200
+++ /work/SRC/openSUSE:Factory/.opensbi.new.28375/opensbi.changes 2023-12-28 23:04:35.297294872 +0100
@@ -1,0 +2,18 @@
+Wed Dec 27 17:07:23 UTC 2023 - Andreas Schwab <schwab(a)suse.de>
+
+- Update to opensbi 1.4
+ * Synopsys DesignWare APB GPIO driver
+ * Zicntr and Zihpm support
+ * Console print improvements
+ * Smepmp support
+ * Simple FDT based syscon regmap driver
+ * Syscon based reboot and poweroff driver
+ * Non-contiguous hpm counters
+ * Smcntrpmf support
+ * Full sparse hartid support
+ * IPI improvements
+ * RFENCE improvements
+ * Zkr support
+ * Andes custom PMU support
+
+-------------------------------------------------------------------
Old:
----
opensbi-1.3.1.tar.gz
New:
----
opensbi-1.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ opensbi.spec ++++++
--- /var/tmp/diff_new_pack.PbAcja/_old 2023-12-28 23:04:35.917317532 +0100
+++ /var/tmp/diff_new_pack.PbAcja/_new 2023-12-28 23:04:35.917317532 +0100
@@ -23,7 +23,7 @@
%else
Name: opensbi-%{target}
%endif
-Version: 1.3.1
+Version: 1.4
Release: 0
Summary: RISC-V Open Source Supervisor Binary Interface
License: BSD-2-Clause
@@ -31,7 +31,7 @@
URL: https://github.com/riscv-software-src/opensbi
Source: https://github.com/riscv-software-src/opensbi/archive/v%{version}.tar.gz#/o…
ExclusiveArch: riscv64
-BuildRequires: python3
+BuildRequires: python3-base
%if "%{target}" != ""
BuildRequires: u-boot-%{target}
%endif
++++++ opensbi-1.3.1.tar.gz -> opensbi-1.4.tar.gz ++++++
++++ 8872 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-vulture for openSUSE:Factory checked in at 2023-12-28 23:02:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-vulture (Old)
and /work/SRC/openSUSE:Factory/.python-vulture.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-vulture"
Thu Dec 28 23:02:49 2023 rev:10 rq:1135359 version:2.10
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-vulture/python-vulture.changes 2023-06-14 16:31:58.535440459 +0200
+++ /work/SRC/openSUSE:Factory/.python-vulture.new.28375/python-vulture.changes 2023-12-28 23:04:34.553267680 +0100
@@ -1,0 +2,38 @@
+Wed Dec 27 16:54:00 UTC 2023 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 2.10:
+ * Drop support for Python 3.7 (Jendrik Seipp, #323).
+ * Add support for Python 3.12 (Jendrik Seipp, #332).
+ * Use `end_lineno` AST attribute to obtain more accurate line
+ counts (Jendrik Seipp).
+ * Use exit code 0 for `--help` and `--version` again (Jendrik
+ Seipp, #321).
+ * Use exit code 3 when dead code is found (whosayn, #319).
+ * Treat non-supported decorator names as "@" instead of
+ crashing (Llandy3d and Jendrik Seipp, #284).
+ * Drop support for Python 3.6 (Jendrik Seipp).
+ * Add `UnicodeEncodeError` exception handling to `core.py`
+ * Add whitelist for `Enum` attributes `_name_` and `_value_`
+ * Run tests and add PyPI trove for Python 3.11 (Jendrik Seipp).
+ * Ignore `setup_module()`, `teardown_module()`, etc. in pytest
+ `test_*.py` files (Jendrik Seipp).
+ * Add whitelist for
+ `socketserver.TCPServer.allow_reuse_address` (Ben Elliston).
+ * Clarify that `--exclude` patterns are matched against
+ absolute paths (Jendrik Seipp, #260).
+ * Add basic `match` statement support (kreathon, #276, #291).
+ * Mark imports in `__all__` as used (kreathon, #172, #282).
+ * Add whitelist for `pint.UnitRegistry.default_formatter` (Ben
+ Elliston, #258).
+ * Print absolute filepaths as relative again (as in version 2.1
+ and before)
+ * if they are below the current directory (The-Compiler, #246).
+ * Run tests and add PyPI trove for Python 3.10 (chayim, #266).
+ * Allow using the `del` keyword to mark unused variables
+ (sshishov, #279).
+ * Only parse format strings when being used with `locals()`
+ * Don't override paths in pyproject.toml with empty CLI paths
+ * Run continuous integration tests for Python 3.9 (ju-sh,
+ * Use pathlib internally (ju-sh, #226).
+
+-------------------------------------------------------------------
Old:
----
vulture-2.1.tar.gz
New:
----
vulture-2.10.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-vulture.spec ++++++
--- /var/tmp/diff_new_pack.0fak2f/_old 2023-12-28 23:04:35.065286393 +0100
+++ /var/tmp/diff_new_pack.0fak2f/_new 2023-12-28 23:04:35.069286539 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-vulture
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-vulture
-Version: 2.1
+Version: 2.10
Release: 0
Summary: Python module for finding dead code
License: MIT
@@ -28,13 +28,17 @@
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
+Requires: python-Pint
Requires: python-toml
+Requires: python-typing-extensions
Requires(post): update-alternatives
-Requires(postun): update-alternatives
+Requires(postun):update-alternatives
BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module pytest > 3.2.3}
+BuildRequires: %{python_module Pint}
BuildRequires: %{python_module toml}
+BuildRequires: %{python_module typing-extensions}
# /SECTION
%python_subpackages
++++++ vulture-2.1.tar.gz -> vulture-2.10.tar.gz ++++++
++++ 4958 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-siphashc for openSUSE:Factory checked in at 2023-12-28 23:02:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-siphashc (Old)
and /work/SRC/openSUSE:Factory/.python-siphashc.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-siphashc"
Thu Dec 28 23:02:43 2023 rev:8 rq:1135348 version:2.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-siphashc/python-siphashc.changes 2023-07-03 17:44:03.209166516 +0200
+++ /work/SRC/openSUSE:Factory/.python-siphashc.new.28375/python-siphashc.changes 2023-12-28 23:04:27.737018562 +0100
@@ -1,0 +2,8 @@
+Wed Dec 27 16:11:57 UTC 2023 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 2.3:
+ * Tested with Python 3.9, 3.10, 3.11, and 3.12, no changes
+ needed.
+ * Dropped support for Python 3.5, 3.6, and 3.7.
+
+-------------------------------------------------------------------
Old:
----
siphashc-2.1.tar.gz
New:
----
siphashc-2.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-siphashc.spec ++++++
--- /var/tmp/diff_new_pack.N5kI6D/_old 2023-12-28 23:04:28.369041661 +0100
+++ /var/tmp/diff_new_pack.N5kI6D/_new 2023-12-28 23:04:28.369041661 +0100
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-siphashc
-Version: 2.1
+Version: 2.3
Release: 0
Summary: Python C module to calculate SipHashes
License: ISC
++++++ siphashc-2.1.tar.gz -> siphashc-2.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siphashc-2.1/CHANGES.rst new/siphashc-2.3/CHANGES.rst
--- old/siphashc-2.1/CHANGES.rst 2020-09-02 09:57:52.000000000 +0200
+++ new/siphashc-2.3/CHANGES.rst 2023-10-09 17:20:23.000000000 +0200
@@ -1,6 +1,18 @@
Changes
=======
+2.3
+---
+
+* Fixed publishing wheels for non-Linux platforms.
+
+2.2
+---
+
+* Tested with Python 3.9, 3.10, 3.11, and 3.12, no changes needed.
+* Dropped support for Python 3.5, 3.6, and 3.7.
+* Binary wheels are now available for all supported Python versions.
+
2.1
---
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siphashc-2.1/LICENSE.md new/siphashc-2.3/LICENSE.md
--- old/siphashc-2.1/LICENSE.md 2020-09-02 09:57:52.000000000 +0200
+++ new/siphashc-2.3/LICENSE.md 2023-10-09 17:20:23.000000000 +0200
@@ -2,7 +2,7 @@
Copyright (c) 2014 Carlo Pires (python3 support)
-Copyright (c) 2017 - 2019 Michal Čihař (additional cleanups)
+Copyright © 2017–2023 Michal Čihař (additional cleanups)
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siphashc-2.1/MANIFEST.in new/siphashc-2.3/MANIFEST.in
--- old/siphashc-2.1/MANIFEST.in 2020-09-02 09:57:52.000000000 +0200
+++ new/siphashc-2.3/MANIFEST.in 2023-10-09 17:20:23.000000000 +0200
@@ -3,3 +3,4 @@
include LICENSE.md
include README.rst
include CHANGES.rst
+include pyproject.toml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siphashc-2.1/PKG-INFO new/siphashc-2.3/PKG-INFO
--- old/siphashc-2.1/PKG-INFO 2020-09-02 09:58:02.000000000 +0200
+++ new/siphashc-2.3/PKG-INFO 2023-10-09 17:21:02.413396100 +0200
@@ -1,79 +1,82 @@
Metadata-Version: 2.1
Name: siphashc
-Version: 2.1
+Version: 2.3
Summary: Python module (in c) for siphash-2-4
-Home-page: https://github.com/WeblateOrg/siphashc
-Author: Michal Čihař
-Author-email: michal(a)cihar.com
+Author-email: Michal Čihař <michal(a)cihar.com>
License: ISC
+Project-URL: Funding, https://weblate.org/donate/
+Project-URL: Homepage, https://github.com/WeblateOrg/siphashc
Project-URL: Issue Tracker, https://github.com/WeblateOrg/siphashc/issues
Project-URL: Source Code, https://github.com/WeblateOrg/siphashc
Project-URL: Twitter, https://twitter.com/WeblateOrg
-Description: .. image:: https://s.weblate.org/cdn/Logo-Darktext-borders.png
- :alt: Weblate
- :target: https://weblate.org/
- :height: 80px
-
- **Weblate is a copylefted libre software web-based continuous localization system,
- used by over 1150 libre projects and companies in more than 115 countries.**
-
- siphashc is a Python module (in c) for siphash-2-4
-
- .. image:: https://img.shields.io/pypi/v/siphashc.svg
- :target: https://pypi.python.org/pypi/siphashc
- :alt: PyPI package
-
- Installation
- ~~~~~~~~~~~~
-
- Install using pip:
-
- .. code-block:: sh
-
- pip install siphashc
-
- Sources are available at <https://github.com/WeblateOrg/siphashc>.
-
- Introduction
- ~~~~~~~~~~~~
-
- siphashc is a python c-module for
- `siphash <https://131002.net/siphash/>`__, based on `floodberry's
- version <https://github.com/floodyberry/siphash>`__.
-
- It was merged from two versions of the module:
-
- - https://github.com/cactus/siphashc
- - https://github.com/carlopires/siphashc3
-
- Usage
- ~~~~~
-
- .. code:: python
-
- >>> from siphashc import siphash
- >>> siphash('sixteencharstrng', 'i need a hash of this')
- 10796923698683394048
-
- License
- ~~~~~~~
-
- Released under the `ISC
- license <https://choosealicense.com/licenses/isc/>`__. See
- ``LICENSE.md`` file for details.
-
-Keywords: siphash siphash-2-4
-Platform: UNKNOWN
+Keywords: siphash,siphash-2-4
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Programming Language :: Python :: 3.6
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: ISC License (ISCL)
-Requires-Python: >=3.5
+Requires-Python: >=3.8
Description-Content-Type: text/x-rst
+License-File: LICENSE.md
+Provides-Extra: test
+Requires-Dist: pytest; extra == "test"
+
+.. image:: https://s.weblate.org/cdn/Logo-Darktext-borders.png
+ :alt: Weblate
+ :target: https://weblate.org/
+ :height: 80px
+
+**Weblate is libre software web-based continuous localization system,
+used by over 2500 libre projects and companies in more than 165 countries.**
+
+siphashc is a Python module (in c) for siphash-2-4
+
+.. image:: https://img.shields.io/pypi/v/siphashc.svg
+ :target: https://pypi.python.org/pypi/siphashc
+ :alt: PyPI package
+
+Installation
+~~~~~~~~~~~~
+
+Install using pip:
+
+.. code-block:: sh
+
+ pip install siphashc
+
+Sources are available at <https://github.com/WeblateOrg/siphashc>.
+
+Introduction
+~~~~~~~~~~~~
+
+siphashc is a python c-module for
+`siphash <https://131002.net/siphash/>`__, based on `floodberry's
+version <https://github.com/floodyberry/siphash>`__.
+
+It was merged from two versions of the module:
+
+- https://github.com/cactus/siphashc
+- https://github.com/carlopires/siphashc3
+
+Usage
+~~~~~
+
+.. code:: pycon
+
+ >>> from siphashc import siphash
+ >>> siphash("sixteencharstrng", "i need a hash of this")
+ 10796923698683394048
+
+License
+~~~~~~~
+
+Released under the `ISC
+license <https://choosealicense.com/licenses/isc/>`__. See
+``LICENSE.md`` file for details.
+
+Contributing
+~~~~~~~~~~~~
+
+Contributions are welcome! See `documentation <https://docs.weblate.org/en/latest/contributing/modules.html>`__ for more information.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siphashc-2.1/README.rst new/siphashc-2.3/README.rst
--- old/siphashc-2.1/README.rst 2020-09-02 09:57:52.000000000 +0200
+++ new/siphashc-2.3/README.rst 2023-10-09 17:20:23.000000000 +0200
@@ -3,8 +3,8 @@
:target: https://weblate.org/
:height: 80px
-**Weblate is a copylefted libre software web-based continuous localization system,
-used by over 1150 libre projects and companies in more than 115 countries.**
+**Weblate is libre software web-based continuous localization system,
+used by over 2500 libre projects and companies in more than 165 countries.**
siphashc is a Python module (in c) for siphash-2-4
@@ -38,10 +38,10 @@
Usage
~~~~~
-.. code:: python
+.. code:: pycon
>>> from siphashc import siphash
- >>> siphash('sixteencharstrng', 'i need a hash of this')
+ >>> siphash("sixteencharstrng", "i need a hash of this")
10796923698683394048
License
@@ -50,3 +50,8 @@
Released under the `ISC
license <https://choosealicense.com/licenses/isc/>`__. See
``LICENSE.md`` file for details.
+
+Contributing
+~~~~~~~~~~~~
+
+Contributions are welcome! See `documentation <https://docs.weblate.org/en/latest/contributing/modules.html>`__ for more information.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siphashc-2.1/pyproject.toml new/siphashc-2.3/pyproject.toml
--- old/siphashc-2.1/pyproject.toml 1970-01-01 01:00:00.000000000 +0100
+++ new/siphashc-2.3/pyproject.toml 2023-10-09 17:20:23.000000000 +0200
@@ -0,0 +1,68 @@
+[build-system]
+build-backend = "setuptools.build_meta"
+requires = ["setuptools>=61.2"]
+
+[project]
+classifiers = [
+ "Development Status :: 5 - Production/Stable",
+ "Intended Audience :: Developers",
+ "Operating System :: OS Independent",
+ "Programming Language :: Python",
+ "Programming Language :: Python :: 3",
+ "Topic :: Software Development :: Libraries :: Python Modules",
+ "License :: OSI Approved :: ISC License (ISCL)"
+]
+description = "Python module (in c) for siphash-2-4"
+keywords = ["siphash", "siphash-2-4"]
+name = "siphashc"
+requires-python = ">=3.8"
+version = "2.3"
+
+[[project.authors]]
+email = "michal(a)cihar.com"
+name = "Michal Čihař"
+
+[project.license]
+text = "ISC"
+
+[project.optional-dependencies]
+test = ["pytest"]
+
+[project.readme]
+content-type = "text/x-rst"
+file = "README.rst"
+
+[project.urls]
+Funding = "https://weblate.org/donate/"
+Homepage = "https://github.com/WeblateOrg/siphashc"
+"Issue Tracker" = "https://github.com/WeblateOrg/siphashc/issues"
+"Source Code" = "https://github.com/WeblateOrg/siphashc"
+Twitter = "https://twitter.com/WeblateOrg"
+
+[tool.cibuildwheel]
+test-command = "pytest {project}/test_siphashc.py {project}/README.rst"
+test-extras = "test"
+
+[tool.isort]
+profile = "black"
+
+[tool.ruff]
+ignore = [
+ "ANN", # TODO: missing type annotations
+ "PLR2004", # TODO: Magic value used in comparison
+ "PT011", # TODO: `pytest.raises(ValueError)` is too broad
+ "S101", # CONFIG: using pytest
+ "D203", # CONFIG: incompatible with D211
+ "D212", # CONFIG: incompatible with D213
+ "T201" # WONTFIX: using print() (maybe add noqa)
+]
+output-format = "github"
+select = ["ALL"]
+
+[tool.ruff.mccabe]
+max-complexity = 16
+
+[tool.setuptools]
+include-package-data = false
+py-modules = []
+zip-safe = true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siphashc-2.1/setup.cfg new/siphashc-2.3/setup.cfg
--- old/siphashc-2.1/setup.cfg 2020-09-02 09:58:02.000000000 +0200
+++ new/siphashc-2.3/setup.cfg 2023-10-09 17:21:02.417396300 +0200
@@ -1,8 +1,3 @@
-[flake8]
-per-file-ignores =
- benchmark.py:T001
-max-line-length = 88
-
[egg_info]
tag_build =
tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siphashc-2.1/setup.py new/siphashc-2.3/setup.py
--- old/siphashc-2.1/setup.py 2020-09-02 09:57:52.000000000 +0200
+++ new/siphashc-2.3/setup.py 2023-10-09 17:20:23.000000000 +0200
@@ -1,51 +1,15 @@
#!/usr/bin/env python
"""Setup for the siphashc module."""
-import io
-import os.path
from setuptools import Extension, setup
-with io.open(
- os.path.join(os.path.dirname(__file__), "README.rst"), encoding="utf-8"
-) as readme:
- LONG_DESCRIPTION = readme.read()
-
setup(
- name="siphashc",
- version="2.1",
- author="Michal Čihař",
- author_email="michal(a)cihar.com",
- description="Python module (in c) for siphash-2-4",
- long_description=LONG_DESCRIPTION,
- long_description_content_type="text/x-rst",
- keywords="siphash siphash-2-4",
- url="https://github.com/WeblateOrg/siphashc",
- project_urls={
- "Issue Tracker": "https://github.com/WeblateOrg/siphashc/issues",
- "Source Code": "https://github.com/WeblateOrg/siphashc",
- "Twitter": "https://twitter.com/WeblateOrg",
- },
- license="ISC",
- python_requires=">=3.5",
ext_modules=[
Extension(
- name="siphashc", sources=["siphashc.c", "siphash/siphash.c"], language="c"
- )
- ],
- classifiers=[
- "Development Status :: 5 - Production/Stable",
- "Intended Audience :: Developers",
- "Operating System :: OS Independent",
- "Programming Language :: Python",
- "Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.5",
- "Programming Language :: Python :: 3.6",
- "Programming Language :: Python :: 3.7",
- "Programming Language :: Python :: 3.8",
- "Topic :: Software Development :: Libraries :: Python Modules",
- "License :: OSI Approved :: ISC License (ISCL)",
+ name="siphashc",
+ sources=["siphashc.c", "siphash/siphash.c"],
+ language="c",
+ ),
],
- test_suite="test_siphashc",
- zip_safe=True,
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siphashc-2.1/siphashc.c new/siphashc-2.3/siphashc.c
--- old/siphashc-2.1/siphashc.c 2020-09-02 09:57:52.000000000 +0200
+++ new/siphashc-2.3/siphashc.c 2023-10-09 17:20:23.000000000 +0200
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2013 Eli Janssen
* Copyright (c) 2014 Carlo Pires
- * Copyright (c) 2017 - 2020 Michal Čihař
+ * Copyright © 2017–2023 Michal Čihař
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siphashc-2.1/siphashc.egg-info/PKG-INFO new/siphashc-2.3/siphashc.egg-info/PKG-INFO
--- old/siphashc-2.1/siphashc.egg-info/PKG-INFO 2020-09-02 09:58:02.000000000 +0200
+++ new/siphashc-2.3/siphashc.egg-info/PKG-INFO 2023-10-09 17:21:02.000000000 +0200
@@ -1,79 +1,82 @@
Metadata-Version: 2.1
Name: siphashc
-Version: 2.1
+Version: 2.3
Summary: Python module (in c) for siphash-2-4
-Home-page: https://github.com/WeblateOrg/siphashc
-Author: Michal Čihař
-Author-email: michal(a)cihar.com
+Author-email: Michal Čihař <michal(a)cihar.com>
License: ISC
+Project-URL: Funding, https://weblate.org/donate/
+Project-URL: Homepage, https://github.com/WeblateOrg/siphashc
Project-URL: Issue Tracker, https://github.com/WeblateOrg/siphashc/issues
Project-URL: Source Code, https://github.com/WeblateOrg/siphashc
Project-URL: Twitter, https://twitter.com/WeblateOrg
-Description: .. image:: https://s.weblate.org/cdn/Logo-Darktext-borders.png
- :alt: Weblate
- :target: https://weblate.org/
- :height: 80px
-
- **Weblate is a copylefted libre software web-based continuous localization system,
- used by over 1150 libre projects and companies in more than 115 countries.**
-
- siphashc is a Python module (in c) for siphash-2-4
-
- .. image:: https://img.shields.io/pypi/v/siphashc.svg
- :target: https://pypi.python.org/pypi/siphashc
- :alt: PyPI package
-
- Installation
- ~~~~~~~~~~~~
-
- Install using pip:
-
- .. code-block:: sh
-
- pip install siphashc
-
- Sources are available at <https://github.com/WeblateOrg/siphashc>.
-
- Introduction
- ~~~~~~~~~~~~
-
- siphashc is a python c-module for
- `siphash <https://131002.net/siphash/>`__, based on `floodberry's
- version <https://github.com/floodyberry/siphash>`__.
-
- It was merged from two versions of the module:
-
- - https://github.com/cactus/siphashc
- - https://github.com/carlopires/siphashc3
-
- Usage
- ~~~~~
-
- .. code:: python
-
- >>> from siphashc import siphash
- >>> siphash('sixteencharstrng', 'i need a hash of this')
- 10796923698683394048
-
- License
- ~~~~~~~
-
- Released under the `ISC
- license <https://choosealicense.com/licenses/isc/>`__. See
- ``LICENSE.md`` file for details.
-
-Keywords: siphash siphash-2-4
-Platform: UNKNOWN
+Keywords: siphash,siphash-2-4
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Programming Language :: Python :: 3.6
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: ISC License (ISCL)
-Requires-Python: >=3.5
+Requires-Python: >=3.8
Description-Content-Type: text/x-rst
+License-File: LICENSE.md
+Provides-Extra: test
+Requires-Dist: pytest; extra == "test"
+
+.. image:: https://s.weblate.org/cdn/Logo-Darktext-borders.png
+ :alt: Weblate
+ :target: https://weblate.org/
+ :height: 80px
+
+**Weblate is libre software web-based continuous localization system,
+used by over 2500 libre projects and companies in more than 165 countries.**
+
+siphashc is a Python module (in c) for siphash-2-4
+
+.. image:: https://img.shields.io/pypi/v/siphashc.svg
+ :target: https://pypi.python.org/pypi/siphashc
+ :alt: PyPI package
+
+Installation
+~~~~~~~~~~~~
+
+Install using pip:
+
+.. code-block:: sh
+
+ pip install siphashc
+
+Sources are available at <https://github.com/WeblateOrg/siphashc>.
+
+Introduction
+~~~~~~~~~~~~
+
+siphashc is a python c-module for
+`siphash <https://131002.net/siphash/>`__, based on `floodberry's
+version <https://github.com/floodyberry/siphash>`__.
+
+It was merged from two versions of the module:
+
+- https://github.com/cactus/siphashc
+- https://github.com/carlopires/siphashc3
+
+Usage
+~~~~~
+
+.. code:: pycon
+
+ >>> from siphashc import siphash
+ >>> siphash("sixteencharstrng", "i need a hash of this")
+ 10796923698683394048
+
+License
+~~~~~~~
+
+Released under the `ISC
+license <https://choosealicense.com/licenses/isc/>`__. See
+``LICENSE.md`` file for details.
+
+Contributing
+~~~~~~~~~~~~
+
+Contributions are welcome! See `documentation <https://docs.weblate.org/en/latest/contributing/modules.html>`__ for more information.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siphashc-2.1/siphashc.egg-info/SOURCES.txt new/siphashc-2.3/siphashc.egg-info/SOURCES.txt
--- old/siphashc-2.1/siphashc.egg-info/SOURCES.txt 2020-09-02 09:58:02.000000000 +0200
+++ new/siphashc-2.3/siphashc.egg-info/SOURCES.txt 2023-10-09 17:21:02.000000000 +0200
@@ -2,7 +2,7 @@
LICENSE.md
MANIFEST.in
README.rst
-setup.cfg
+pyproject.toml
setup.py
siphashc.c
test_siphashc.py
@@ -12,5 +12,6 @@
siphashc.egg-info/PKG-INFO
siphashc.egg-info/SOURCES.txt
siphashc.egg-info/dependency_links.txt
+siphashc.egg-info/requires.txt
siphashc.egg-info/top_level.txt
siphashc.egg-info/zip-safe
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siphashc-2.1/siphashc.egg-info/requires.txt new/siphashc-2.3/siphashc.egg-info/requires.txt
--- old/siphashc-2.1/siphashc.egg-info/requires.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/siphashc-2.3/siphashc.egg-info/requires.txt 2023-10-09 17:21:02.000000000 +0200
@@ -0,0 +1,3 @@
+
+[test]
+pytest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/siphashc-2.1/test_siphashc.py new/siphashc-2.3/test_siphashc.py
--- old/siphashc-2.1/test_siphashc.py 2020-09-02 09:57:52.000000000 +0200
+++ new/siphashc-2.3/test_siphashc.py 2023-10-09 17:20:23.000000000 +0200
@@ -1,6 +1,7 @@
"""Test for siphashc module."""
import unittest
+import pytest
from siphashc import siphash
@@ -10,18 +11,18 @@
def test_hash(self):
"""Test simple hashing."""
result = siphash("sixteencharstrng", "i need a hash of this")
- self.assertEqual(10796923698683394048, result)
+ assert result == 10796923698683394048
result = siphash("0123456789ABCDEF", "a")
- self.assertEqual(12398370950267227270, result)
+ assert result == 12398370950267227270
def test_errors(self):
"""Test error handling."""
- with self.assertRaises(ValueError):
+ with pytest.raises(ValueError):
siphash("not long enough", "a")
- with self.assertRaises(ValueError):
+ with pytest.raises(ValueError):
siphash("toooooooooooooooooooooooo long", "a")
- with self.assertRaises(ValueError):
+ with pytest.raises(ValueError):
siphash("", "a")
def test_reference_vectors(self):
@@ -95,5 +96,5 @@
k = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
message = ""
for i in range(64):
- self.assertEqual(siphash(k, message), vectors[i])
+ assert siphash(k, message) == vectors[i]
message += chr(i)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-unicodedata2 for openSUSE:Factory checked in at 2023-12-28 23:02:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-unicodedata2 (Old)
and /work/SRC/openSUSE:Factory/.python-unicodedata2.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-unicodedata2"
Thu Dec 28 23:02:41 2023 rev:6 rq:1135349 version:15.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-unicodedata2/python-unicodedata2.changes 2022-11-12 17:41:33.190305160 +0100
+++ /work/SRC/openSUSE:Factory/.python-unicodedata2.new.28375/python-unicodedata2.changes 2023-12-28 23:04:26.588976604 +0100
@@ -1,0 +2,6 @@
+Wed Dec 27 16:12:34 UTC 2023 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 15.1.0:
+ * Updated to Unicode 15.1 and added support for Python 3.12
+
+-------------------------------------------------------------------
Old:
----
unicodedata2-15.0.0.tar.gz
New:
----
unicodedata2-15.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-unicodedata2.spec ++++++
--- /var/tmp/diff_new_pack.q2Rwz5/_old 2023-12-28 23:04:27.156997364 +0100
+++ /var/tmp/diff_new_pack.q2Rwz5/_new 2023-12-28 23:04:27.156997364 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-unicodedata2
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python3-%{**}}
%define skip_python2 1
Name: python-unicodedata2
-Version: 15.0.0
+Version: 15.1.0
Release: 0
Summary: Python unicodedata backport/updates
License: Apache-2.0 AND Python-2.0
++++++ unicodedata2-15.0.0.tar.gz -> unicodedata2-15.1.0.tar.gz ++++++
++++ 39241 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-vispy for openSUSE:Factory checked in at 2023-12-28 23:02:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-vispy (Old)
and /work/SRC/openSUSE:Factory/.python-vispy.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-vispy"
Thu Dec 28 23:02:39 2023 rev:12 rq:1135346 version:0.14.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-vispy/python-vispy.changes 2023-07-19 19:10:47.352620607 +0200
+++ /work/SRC/openSUSE:Factory/.python-vispy.new.28375/python-vispy.changes 2023-12-28 23:04:24.100885670 +0100
@@ -1,0 +2,11 @@
+Wed Dec 27 16:08:16 UTC 2023 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 0.14.1:
+ * Remove deprecated code from vispy.color.get\_colormap
+ * Cache make_pattern on DashAtlas
+ * Add push/pop gl_state for visuals
+ * Add primitive picking filters for Mesh and Markers visuals
+ * Fix spherical markers depth buffer with scaling='visual'
+ * Fix mesh shading with flipped normals
+
+-------------------------------------------------------------------
Old:
----
vispy-0.13.0.tar.gz
New:
----
vispy-0.14.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-vispy.spec ++++++
--- /var/tmp/diff_new_pack.wDeepg/_old 2023-12-28 23:04:24.732908769 +0100
+++ /var/tmp/diff_new_pack.wDeepg/_new 2023-12-28 23:04:24.732908769 +0100
@@ -18,7 +18,7 @@
%bcond_without ext_deps
Name: python-vispy
-Version: 0.13.0
+Version: 0.14.1
Release: 0
Summary: Interactive visualization in Python
License: BSD-3-Clause
++++++ vispy-0.13.0.tar.gz -> vispy-0.14.1.tar.gz ++++++
++++ 2008 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-zarr for openSUSE:Factory checked in at 2023-12-28 23:02:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-zarr (Old)
and /work/SRC/openSUSE:Factory/.python-zarr.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-zarr"
Thu Dec 28 23:02:36 2023 rev:10 rq:1135342 version:2.16.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-zarr/python-zarr.changes 2023-08-02 16:51:16.737802016 +0200
+++ /work/SRC/openSUSE:Factory/.python-zarr.new.28375/python-zarr.changes 2023-12-28 23:04:20.620758480 +0100
@@ -1,0 +2,8 @@
+Wed Dec 27 16:02:56 UTC 2023 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 2.16.1:
+ * Require ``setuptools_scm`` version ``1.5.4``\+
+ * Add ``docs`` requirements to ``pyproject.toml``
+ * Fixed caching issue in ``LRUStoreCache``.
+
+-------------------------------------------------------------------
Old:
----
zarr-2.16.0.tar.gz
New:
----
zarr-2.16.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-zarr.spec ++++++
--- /var/tmp/diff_new_pack.uR5mqH/_old 2023-12-28 23:04:21.428788012 +0100
+++ /var/tmp/diff_new_pack.uR5mqH/_new 2023-12-28 23:04:21.432788157 +0100
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-zarr
-Version: 2.16.0
+Version: 2.16.1
Release: 0
Summary: An implementation of chunked, compressed, N-dimensional arrays for Python
License: MIT
++++++ zarr-2.16.0.tar.gz -> zarr-2.16.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/.git-blame-ignore-revs new/zarr-2.16.1/.git-blame-ignore-revs
--- old/zarr-2.16.0/.git-blame-ignore-revs 2023-07-20 18:35:10.000000000 +0200
+++ new/zarr-2.16.1/.git-blame-ignore-revs 2023-08-18 16:28:45.000000000 +0200
@@ -1,2 +1,2 @@
# lint codebase with black and ruff
-4e348d6b80c96da461fd866576c971b8a659ba15
\ No newline at end of file
+4e348d6b80c96da461fd866576c971b8a659ba15
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/.github/workflows/releases.yml new/zarr-2.16.1/.github/workflows/releases.yml
--- old/zarr-2.16.0/.github/workflows/releases.yml 2023-07-20 18:35:10.000000000 +0200
+++ new/zarr-2.16.1/.github/workflows/releases.yml 2023-08-18 16:28:45.000000000 +0200
@@ -64,7 +64,7 @@
with:
name: releases
path: dist
- - uses: pypa/gh-action-pypi-publish(a)v1.8.7
+ - uses: pypa/gh-action-pypi-publish(a)v1.8.10
with:
user: __token__
password: ${{ secrets.pypi_password }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/.pyup.yml new/zarr-2.16.1/.pyup.yml
--- old/zarr-2.16.0/.pyup.yml 2023-07-20 18:35:10.000000000 +0200
+++ new/zarr-2.16.1/.pyup.yml 2023-08-18 16:28:45.000000000 +0200
@@ -13,6 +13,3 @@
- requirements_dev_optional.txt:
pin: True
update: all
- - requirements_rtfd.txt:
- pin: False
- update: False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/.readthedocs.yaml new/zarr-2.16.1/.readthedocs.yaml
--- old/zarr-2.16.0/.readthedocs.yaml 2023-07-20 18:35:10.000000000 +0200
+++ new/zarr-2.16.1/.readthedocs.yaml 2023-08-18 16:28:45.000000000 +0200
@@ -10,6 +10,7 @@
python:
install:
- - requirements: requirements_rtfd.txt
- method: pip
path: .
+ extra_requirements:
+ - docs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/PKG-INFO new/zarr-2.16.1/PKG-INFO
--- old/zarr-2.16.0/PKG-INFO 2023-07-20 18:35:26.758131500 +0200
+++ new/zarr-2.16.1/PKG-INFO 2023-08-18 16:29:04.402384500 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: zarr
-Version: 2.16.0
+Version: 2.16.1
Summary: An implementation of chunked, compressed, N-dimensional arrays for Python
Maintainer-email: Alistair Miles <alimanfoo(a)googlemail.com>
License: MIT
@@ -25,6 +25,7 @@
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Provides-Extra: jupyter
+Provides-Extra: docs
License-File: LICENSE.txt
<div align="center">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/docs/_static/custom.css new/zarr-2.16.1/docs/_static/custom.css
--- old/zarr-2.16.0/docs/_static/custom.css 2023-07-20 18:35:10.000000000 +0200
+++ new/zarr-2.16.1/docs/_static/custom.css 2023-08-18 16:28:45.000000000 +0200
@@ -120,4 +120,4 @@
html[data-theme=dark] h3 {
color: #0a6774;
-}
\ No newline at end of file
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/docs/acknowledgments.rst new/zarr-2.16.1/docs/acknowledgments.rst
--- old/zarr-2.16.0/docs/acknowledgments.rst 2023-07-20 18:35:10.000000000 +0200
+++ new/zarr-2.16.1/docs/acknowledgments.rst 2023-08-18 16:28:45.000000000 +0200
@@ -73,4 +73,4 @@
* :user:`gsakkis`
* :user:`hailiangzhang <hailiangzhang>`
* :user:`pmav99 <pmav99>`
-* :user:`sbalmer <sbalmer>`
\ No newline at end of file
+* :user:`sbalmer <sbalmer>`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/docs/contributing.rst new/zarr-2.16.1/docs/contributing.rst
--- old/zarr-2.16.0/docs/contributing.rst 2023-07-20 18:35:10.000000000 +0200
+++ new/zarr-2.16.1/docs/contributing.rst 2023-08-18 16:28:45.000000000 +0200
@@ -92,8 +92,8 @@
$ mkdir -p ~/pyenv/zarr-dev
$ python -m venv ~/pyenv/zarr-dev
$ source ~/pyenv/zarr-dev/bin/activate
- $ pip install -r requirements_dev_minimal.txt -r requirements_dev_numpy.txt -r requirements_rtfd.txt
- $ pip install -e .
+ $ pip install -r requirements_dev_minimal.txt -r requirements_dev_numpy.txt
+ $ pip install -e .[docs]
To verify that your development environment is working, you can run the unit tests::
@@ -213,9 +213,9 @@
Zarr maintains 100% test coverage under the latest Python stable release (currently
Python 3.8). Both unit tests and docstring doctests are included when computing
coverage. Running::
-
+
$ python -m pytest -v --cov=zarr --cov-config=pyproject.toml zarr
-
+
will automatically run the test suite with coverage and produce a coverage report.
This should be 100% before code can be accepted into the main code base.
@@ -379,6 +379,8 @@
replacing the correct version numbers. For pre-release versions,
the URL should omit the pre-release suffix, e.g. "a1" or "rc1".
+Click on "Generate release notes" to auto-file the description.
+
After creating the release, the documentation will be built on
https://readthedocs.io. Full releases will be available under
`/stable <https://zarr.readthedocs.io/en/stable>`_ while
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/docs/index.rst new/zarr-2.16.1/docs/index.rst
--- old/zarr-2.16.0/docs/index.rst 2023-07-20 18:35:10.000000000 +0200
+++ new/zarr-2.16.1/docs/index.rst 2023-08-18 16:28:45.000000000 +0200
@@ -20,7 +20,7 @@
**Version**: |version|
**Download documentation**: `Zipped HTML <https://zarr.readthedocs.io/_/downloads/en/stable/htmlzip/>`_
-
+
**Useful links**:
`Installation <installation.html>`_ |
`Source Repository <https://github.com/zarr-developers/zarr-python>`_ |
@@ -101,4 +101,4 @@
:color: dark
:click-parent:
- To the contributor's guide
\ No newline at end of file
+ To the contributor's guide
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/docs/release.rst new/zarr-2.16.1/docs/release.rst
--- old/zarr-2.16.0/docs/release.rst 2023-07-20 18:35:10.000000000 +0200
+++ new/zarr-2.16.1/docs/release.rst 2023-08-18 16:28:45.000000000 +0200
@@ -18,6 +18,23 @@
Unreleased
----------
+.. _release_2.16.1:
+
+2.16.1
+------
+
+Maintenance
+~~~~~~~~~~~
+
+* Require ``setuptools_scm`` version ``1.5.4``\+
+ By :user:`John A. Kirkham <jakirkham>` :issue:`1477`.
+
+* Add ``docs`` requirements to ``pyproject.toml``
+ By :user:`John A. Kirkham <jakirkham>` :issue:`1494`.
+
+* Fixed caching issue in ``LRUStoreCache``.
+ By :user:`Mads R. B. Kristensen <madsbk>` :issue:`1499`.
+
.. _release_2.16.0:
2.16.0
@@ -29,7 +46,7 @@
* Allow for partial codec specification in V3 array metadata.
By :user:`Joe Hamman <jhamman>` :issue:`1443`.
-* Add ``__contains__`` method to ``KVStore``.
+* Add ``__contains__`` method to ``KVStore``.
By :user:`Christoph Gohlke <cgohlke>` :issue:`1454`.
* **Block Indexing**: Implemented blockwise (chunk blocks) indexing to ``zarr.Array``.
@@ -44,6 +61,9 @@
* Style the codebase with ``ruff`` and ``black``.
By :user:`Davis Bennett` <d-v-b> :issue:`1459`
+* Ensure that chunks is tuple of ints upon array creation.
+ By :user:`Philipp Hanslovsky` <hanslovsky> :issue:`1461`
+
.. _release_2.15.0:
2.15.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/pyproject.toml new/zarr-2.16.1/pyproject.toml
--- old/zarr-2.16.0/pyproject.toml 2023-07-20 18:35:10.000000000 +0200
+++ new/zarr-2.16.1/pyproject.toml 2023-08-18 16:28:45.000000000 +0200
@@ -1,5 +1,5 @@
[build-system]
-requires = ["setuptools>=64.0.0", "setuptools-scm"]
+requires = ["setuptools>=64.0.0", "setuptools-scm>1.5.4"]
build-backend = "setuptools.build_meta"
@@ -13,7 +13,7 @@
requires-python = ">=3.8"
dependencies = [
'asciitree',
- 'numpy>=1.20',
+ 'numpy>=1.20,!=1.21.0',
'fasteners',
'numcodecs>=0.10.0',
]
@@ -43,6 +43,16 @@
'ipytree>=0.2.2',
'ipywidgets>=8.0.0',
]
+docs = [
+ 'sphinx',
+ 'sphinx_design',
+ 'sphinx-issues',
+ 'sphinx-copybutton',
+ 'sphinx-rtd-theme',
+ 'pydata-sphinx-theme',
+ 'numpydoc',
+ 'numcodecs[msgpack]',
+]
[project.urls]
"Bug Tracker" = "https://github.com/zarr-developers/zarr-python/issues"
@@ -116,7 +126,7 @@
[tool.pytest.ini_options]
doctest_optionflags = [
"NORMALIZE_WHITESPACE",
- "ELLIPSIS",
+ "ELLIPSIS",
"IGNORE_EXCEPTION_DETAIL",
]
addopts = [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/requirements_rtfd.txt new/zarr-2.16.1/requirements_rtfd.txt
--- old/zarr-2.16.0/requirements_rtfd.txt 2023-07-20 18:35:10.000000000 +0200
+++ new/zarr-2.16.1/requirements_rtfd.txt 1970-01-01 01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
-asciitree
-setuptools
-setuptools_scm
-sphinx
-sphinx_design
-sphinx-issues
-sphinx-copybutton
-sphinx-rtd-theme
-pydata-sphinx-theme
-numpydoc
-numpy!=1.21.0
-msgpack-python==0.5.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/zarr/_storage/v3.py new/zarr-2.16.1/zarr/_storage/v3.py
--- old/zarr-2.16.0/zarr/_storage/v3.py 2023-07-20 18:35:10.000000000 +0200
+++ new/zarr-2.16.1/zarr/_storage/v3.py 2023-08-18 16:28:45.000000000 +0200
@@ -509,7 +509,7 @@
self._max_size = max_size
self._current_size = 0
self._keys_cache = None
- self._contains_cache = None
+ self._contains_cache = {}
self._listdir_cache: Dict[Path, Any] = dict()
self._values_cache: Dict[Path, Any] = OrderedDict()
self._mutex = Lock()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/zarr/hierarchy.py new/zarr-2.16.1/zarr/hierarchy.py
--- old/zarr-2.16.0/zarr/hierarchy.py 2023-07-20 18:35:10.000000000 +0200
+++ new/zarr-2.16.1/zarr/hierarchy.py 2023-08-18 16:28:45.000000000 +0200
@@ -1360,7 +1360,8 @@
synchronizer=None,
path=None,
*,
- zarr_version=None
+ zarr_version=None,
+ meta_array=None
):
"""Create a group.
@@ -1382,6 +1383,11 @@
Array synchronizer.
path : string, optional
Group path within store.
+ meta_array : array-like, optional
+ An array instance to use for determining arrays to create and return
+ to users. Use `numpy.empty(())` by default.
+
+ .. versionadded:: 2.16.1
Returns
-------
@@ -1432,6 +1438,7 @@
synchronizer=synchronizer,
path=path,
zarr_version=zarr_version,
+ meta_array=meta_array,
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/zarr/storage.py new/zarr-2.16.1/zarr/storage.py
--- old/zarr-2.16.0/zarr/storage.py 2023-07-20 18:35:10.000000000 +0200
+++ new/zarr-2.16.1/zarr/storage.py 2023-08-18 16:28:45.000000000 +0200
@@ -2393,7 +2393,7 @@
self._max_size = max_size
self._current_size = 0
self._keys_cache = None
- self._contains_cache = None
+ self._contains_cache: Dict[Any, Any] = {}
self._listdir_cache: Dict[Path, Any] = dict()
self._values_cache: Dict[Path, Any] = OrderedDict()
self._mutex = Lock()
@@ -2434,9 +2434,9 @@
def __contains__(self, key):
with self._mutex:
- if self._contains_cache is None:
- self._contains_cache = set(self._keys())
- return key in self._contains_cache
+ if key not in self._contains_cache:
+ self._contains_cache[key] = key in self._store
+ return self._contains_cache[key]
def clear(self):
self._store.clear()
@@ -2506,7 +2506,7 @@
def _invalidate_keys(self):
self._keys_cache = None
- self._contains_cache = None
+ self._contains_cache.clear()
self._listdir_cache.clear()
def _invalidate_value(self, key):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/zarr/tests/test_creation.py new/zarr-2.16.1/zarr/tests/test_creation.py
--- old/zarr-2.16.0/zarr/tests/test_creation.py 2023-07-20 18:35:10.000000000 +0200
+++ new/zarr-2.16.1/zarr/tests/test_creation.py 2023-08-18 16:28:45.000000000 +0200
@@ -757,3 +757,27 @@
z = create(1000000000, chunks=True, storage_transformers=[transformer], **kwargs)
assert isinstance(z.chunk_store, DummyStorageTransfomer)
assert z.chunk_store.test_value == DummyStorageTransfomer.TEST_CONSTANT
+
+
+(a)pytest.mark.parametrize(
+ ("init_shape", "init_chunks", "shape", "chunks"),
+ (
+ ((1,), (1,), (1,), (1,)),
+ ((1.0,), (1.0,), (1,), (1,)),
+ ((1.0,), False, (1,), (1,)),
+ ((1.0,), True, (1,), (1,)),
+ ((1.0,), None, (1,), (1,)),
+ ),
+)
+def test_shape_chunk_ints(init_shape, init_chunks, shape, chunks):
+ g = open_group()
+ array = g.create_dataset("ds", shape=init_shape, chunks=init_chunks, dtype=np.uint8)
+
+ assert all(
+ isinstance(s, int) for s in array.shape
+ ), f"Expected shape to be all ints but found {array.shape=}."
+ assert all(
+ isinstance(c, int) for c in array.chunks
+ ), f"Expected chunks to be all ints but found {array.chunks=}."
+ assert array.shape == shape, f"Expected {shape=} but found {array.shape=}."
+ assert array.chunks == chunks, f"Expected {chunks=} but found {array.chunks=}."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/zarr/tests/test_meta_array.py new/zarr-2.16.1/zarr/tests/test_meta_array.py
--- old/zarr-2.16.0/zarr/tests/test_meta_array.py 2023-07-20 18:35:10.000000000 +0200
+++ new/zarr-2.16.1/zarr/tests/test_meta_array.py 2023-08-18 16:28:45.000000000 +0200
@@ -9,7 +9,7 @@
import zarr.codecs
from zarr.core import Array
from zarr.creation import array, empty, full, ones, open_array, zeros
-from zarr.hierarchy import open_group
+from zarr.hierarchy import open_group, group
from zarr.storage import DirectoryStore, MemoryStore, Store, ZipStore
@@ -234,12 +234,13 @@
assert np.all(np.isnan(z[:]))
+(a)pytest.mark.parametrize("group_create_function", [group, open_group])
@pytest.mark.parametrize("module, compressor", param_module_and_compressor)
@pytest.mark.parametrize("store_type", [None, DirectoryStore, MemoryStore, ZipStore])
-def test_group(tmp_path, module, compressor, store_type):
+def test_group(tmp_path, group_create_function, module, compressor, store_type):
xp = ensure_module(module)
store = init_store(tmp_path, store_type)
- g = open_group(store, meta_array=xp.empty(()))
+ g = group_create_function(store, meta_array=xp.empty(()))
g.ones("data", shape=(10, 11), dtype=int, compressor=compressor)
a = g["data"]
assert a.shape == (10, 11)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/zarr/tests/test_storage.py new/zarr-2.16.1/zarr/tests/test_storage.py
--- old/zarr-2.16.0/zarr/tests/test_storage.py 2023-07-20 18:35:10.000000000 +0200
+++ new/zarr-2.16.1/zarr/tests/test_storage.py 2023-08-18 16:28:45.000000000 +0200
@@ -2196,7 +2196,10 @@
assert keys == sorted(cache.keys())
assert 1 == store.counter["keys"]
assert foo_key in cache
- assert 0 == store.counter["__contains__", foo_key]
+ assert 1 == store.counter["__contains__", foo_key]
+ # the next check for `foo_key` is cached
+ assert foo_key in cache
+ assert 1 == store.counter["__contains__", foo_key]
assert keys == sorted(cache)
assert 0 == store.counter["__iter__"]
assert 1 == store.counter["keys"]
@@ -2215,23 +2218,23 @@
keys = sorted(cache.keys())
assert keys == [bar_key, baz_key, foo_key]
assert 3 == store.counter["keys"]
- assert 0 == store.counter["__contains__", foo_key]
+ assert 1 == store.counter["__contains__", foo_key]
assert 0 == store.counter["__iter__"]
cache.invalidate_keys()
keys = sorted(cache)
assert keys == [bar_key, baz_key, foo_key]
assert 4 == store.counter["keys"]
- assert 0 == store.counter["__contains__", foo_key]
+ assert 1 == store.counter["__contains__", foo_key]
assert 0 == store.counter["__iter__"]
cache.invalidate_keys()
assert foo_key in cache
- assert 5 == store.counter["keys"]
- assert 0 == store.counter["__contains__", foo_key]
+ assert 4 == store.counter["keys"]
+ assert 2 == store.counter["__contains__", foo_key]
assert 0 == store.counter["__iter__"]
# check these would get counted if called directly
assert foo_key in store
- assert 1 == store.counter["__contains__", foo_key]
+ assert 3 == store.counter["__contains__", foo_key]
assert keys == sorted(store)
assert 1 == store.counter["__iter__"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/zarr/util.py new/zarr-2.16.1/zarr/util.py
--- old/zarr-2.16.0/zarr/util.py 2023-07-20 18:35:10.000000000 +0200
+++ new/zarr-2.16.1/zarr/util.py 2023-08-18 16:28:45.000000000 +0200
@@ -175,7 +175,8 @@
if -1 in chunks or None in chunks:
chunks = tuple(s if c == -1 or c is None else int(c) for s, c in zip(shape, chunks))
- return tuple(chunks)
+ chunks = tuple(int(c) for c in chunks)
+ return chunks
def normalize_dtype(dtype: Union[str, np.dtype], object_codec) -> Tuple[np.dtype, Any]:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/zarr/version.py new/zarr-2.16.1/zarr/version.py
--- old/zarr-2.16.0/zarr/version.py 2023-07-20 18:35:24.000000000 +0200
+++ new/zarr-2.16.1/zarr/version.py 2023-08-18 16:29:01.000000000 +0200
@@ -1,4 +1,4 @@
# file generated by setuptools_scm
# don't change, don't track in version control
-__version__ = version = '2.16.0'
-__version_tuple__ = version_tuple = (2, 16, 0)
+__version__ = version = '2.16.1'
+__version_tuple__ = version_tuple = (2, 16, 1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/zarr.egg-info/PKG-INFO new/zarr-2.16.1/zarr.egg-info/PKG-INFO
--- old/zarr-2.16.0/zarr.egg-info/PKG-INFO 2023-07-20 18:35:24.000000000 +0200
+++ new/zarr-2.16.1/zarr.egg-info/PKG-INFO 2023-08-18 16:29:01.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: zarr
-Version: 2.16.0
+Version: 2.16.1
Summary: An implementation of chunked, compressed, N-dimensional arrays for Python
Maintainer-email: Alistair Miles <alimanfoo(a)googlemail.com>
License: MIT
@@ -25,6 +25,7 @@
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Provides-Extra: jupyter
+Provides-Extra: docs
License-File: LICENSE.txt
<div align="center">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/zarr.egg-info/SOURCES.txt new/zarr-2.16.1/zarr.egg-info/SOURCES.txt
--- old/zarr-2.16.0/zarr.egg-info/SOURCES.txt 2023-07-20 18:35:25.000000000 +0200
+++ new/zarr-2.16.1/zarr.egg-info/SOURCES.txt 2023-08-18 16:29:02.000000000 +0200
@@ -16,7 +16,6 @@
requirements_dev_minimal.txt
requirements_dev_numpy.txt
requirements_dev_optional.txt
-requirements_rtfd.txt
.github/CODEOWNERS
.github/CONTRIBUTING.md
.github/PULL_REQUEST_TEMPLATE.md
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zarr-2.16.0/zarr.egg-info/requires.txt new/zarr-2.16.1/zarr.egg-info/requires.txt
--- old/zarr-2.16.0/zarr.egg-info/requires.txt 2023-07-20 18:35:24.000000000 +0200
+++ new/zarr-2.16.1/zarr.egg-info/requires.txt 2023-08-18 16:29:01.000000000 +0200
@@ -1,8 +1,18 @@
asciitree
-numpy>=1.20
+numpy!=1.21.0,>=1.20
fasteners
numcodecs>=0.10.0
+[docs]
+sphinx
+sphinx_design
+sphinx-issues
+sphinx-copybutton
+sphinx-rtd-theme
+pydata-sphinx-theme
+numpydoc
+numcodecs[msgpack]
+
[jupyter]
notebook
ipytree>=0.2.2
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-rapidfuzz for openSUSE:Factory checked in at 2023-12-28 23:02:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-rapidfuzz (Old)
and /work/SRC/openSUSE:Factory/.python-rapidfuzz.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-rapidfuzz"
Thu Dec 28 23:02:34 2023 rev:7 rq:1135345 version:3.5.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-rapidfuzz/python-rapidfuzz.changes 2023-12-02 17:13:43.190550323 +0100
+++ /work/SRC/openSUSE:Factory/.python-rapidfuzz.new.28375/python-rapidfuzz.changes 2023-12-28 23:04:18.200670032 +0100
@@ -1,0 +2,52 @@
+Wed Dec 27 16:06:20 UTC 2023 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 3.5.2:
+ * skip pandas ``pd.NA`` similar to ``None``
+ * add ``score_multiplier`` argument to ``process.cdist`` which
+ allows multiplying the end result scores
+ * with a constant factor.
+ * drop support for Python 3.7
+ * improve performance of simd implementation for ``LCS`` /
+ ``Indel`` / ``Jaro`` / ``JaroWinkler``
+ * improve performance of Jaro and Jaro Winkler for long
+ sequences
+ * implement ``process.extract`` with ``limit=1`` using
+ ``process.extractOne`` which can be faster
+ * the preprocessing function was always called through Python
+ due to a broken C-API version check
+ * fix wraparound issue in simd implementation of Jaro and Jaro
+ Winkler
+ * upgrade to ``Cython==3.0.3``
+ * add simd implementation for Jaro and Jaro Winkler
+ * add missing tag for python 3.12 support
+ * upgrade to ``Cython==3.0.2``
+ * implement the remaining missing features from the C++
+ implementation in the pure Python implementation
+ * added support for Python 3.12
+ * build x86 with sse2/avx2 runtime detection
+ * upgrade to ``taskflow==3.6``
+ * added keyword argument ``pad`` to Hamming distance. This
+ controls whether sequences of different
+ * length should be padded or lead to a ``ValueError``
+ * improve consistency of exception messages between the C++ and
+ pure Python implementation
+ * upgrade required Cython version to ``Cython==3.0.0b3``
+ * allow the usage of ``Hamming`` for different string lengths.
+ Length differences are handled as insertions / deletions
+ * remove support for boolean preprocessor functions in
+ ``rapidfuzz.fuzz`` and ``rapidfuzz.process``.
+ * The processor argument is now always a callable or ``None``.
+ * update defaults of the processor argument to be ``None``
+ everywhere. For affected functions this can change results,
+ since strings are no longer preprocessed.
+ * fix incorrect tag dispatching implementation leading to AVX2
+ instructions in the SSE2 code path
+ * add wheels for windows arm64
+ * allow the usage of finite generators as choices in
+ ``process.extract``
+ * fix handling of non symmetric scorers in pure python version
+ of ``process.cdist``
+ * fix default dtype handling when using ``process.cdist`` with
+ pure python scorers
+
+-------------------------------------------------------------------
Old:
----
rapidfuzz-2.13.7.tar.gz
New:
----
rapidfuzz-3.5.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-rapidfuzz.spec ++++++
--- /var/tmp/diff_new_pack.so29w8/_old 2023-12-28 23:04:18.764690645 +0100
+++ /var/tmp/diff_new_pack.so29w8/_new 2023-12-28 23:04:18.764690645 +0100
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-rapidfuzz
-Version: 2.13.7
+Version: 3.5.2
Release: 0
Summary: Rapid fuzzy string matching
License: MIT
@@ -45,7 +45,8 @@
%python_subpackages
%description
-RapidFuzz is a fast string matching library for Python and C++, which is using the string similarity calculations from FuzzyWuzzy.
+RapidFuzz is a fast string matching library for Python and C++, which is using
+the string similarity calculations from FuzzyWuzzy.
%prep
%autosetup -p1 -n rapidfuzz-%{version}
++++++ rapidfuzz-2.13.7.tar.gz -> rapidfuzz-3.5.2.tar.gz ++++++
++++ 272026 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-precis-i18n for openSUSE:Factory checked in at 2023-12-28 23:02:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-precis-i18n (Old)
and /work/SRC/openSUSE:Factory/.python-precis-i18n.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-precis-i18n"
Thu Dec 28 23:02:28 2023 rev:7 rq:1135333 version:1.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-precis-i18n/python-precis-i18n.changes 2023-01-05 15:01:03.369084569 +0100
+++ /work/SRC/openSUSE:Factory/.python-precis-i18n.new.28375/python-precis-i18n.changes 2023-12-28 23:04:14.996552929 +0100
@@ -1,0 +2,21 @@
+Wed Dec 27 15:12:17 UTC 2023 - Ben Greiner <code(a)bnavigator.de>
+
+- Update specfile for PEP517 and python packaging best practices
+
+-------------------------------------------------------------------
+Wed Dec 27 14:54:32 UTC 2023 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 1.1.0:
+ * Fixed an issue in the Nickname profile implementation that
+ trimmed extra leading/trailing white space beyond the `Zs`
+ category prescribed in RFC 8266. Python treats certain
+ Unicode control characters as white space. If these appeared
+ as leading/trailing spaces in a Nickname string, they
+ were stripped. With this release, the Nickname profile will
+ raise a UnicodeEncodeError `DISALLOWED/controls` if any control
+ characters are encountered. (Issue #29)
+ * Update internal tables for Unicode 15.1.
+ * Change format of README and CHANGELOG files to Markdown.
+ * Drop support for Python 3.3 and 3.4.
+
+-------------------------------------------------------------------
Old:
----
precis_i18n-1.0.5.tar.gz
New:
----
precis_i18n-1.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-precis-i18n.spec ++++++
--- /var/tmp/diff_new_pack.0FmHNP/_old 2023-12-28 23:04:15.640576467 +0100
+++ /var/tmp/diff_new_pack.0FmHNP/_new 2023-12-28 23:04:15.640576467 +0100
@@ -16,22 +16,23 @@
#
-%{?!python_module:%define python_module() python3-%{**}}
-%define skip_python2 1
%define _name precis_i18n
Name: python-precis-i18n
-Version: 1.0.5
+Version: 1.1.0
Release: 0
Summary: Internationalised Usernames and Passwords
License: MIT
Group: Development/Languages/Python
URL: https://github.com/byllyfish/precis_i18n
Source: https://github.com/byllyfish/precis_i18n/archive/v%{version}.tar.gz#/%{_nam…
+BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
+BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Suggests: python-unicodedata2
BuildArch: noarch
+Provides: python-%{_name} = %{version}-%{release}
%python_subpackages
%description
@@ -51,10 +52,10 @@
%autosetup -n %{_name}-%{version} -p1
%build
-%python_build
+%pyproject_wheel
%install
-%python_install
+%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}/
%check
@@ -62,7 +63,7 @@
%files %{python_files}
%license LICENSE.txt
-%doc CHANGELOG.rst README.rst
+%doc CHANGELOG.md README.md
%{python_sitelib}/%{_name}/
-%{python_sitelib}/%{_name}-*
+%{python_sitelib}/%{_name}-%{version}.dist-info
++++++ precis_i18n-1.0.5.tar.gz -> precis_i18n-1.1.0.tar.gz ++++++
++++ 8165 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package naev for openSUSE:Factory checked in at 2023-12-28 23:02:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/naev (Old)
and /work/SRC/openSUSE:Factory/.naev.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "naev"
Thu Dec 28 23:02:16 2023 rev:14 rq:1135322 version:0.11.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/naev/naev.changes 2023-07-12 17:27:44.526665106 +0200
+++ /work/SRC/openSUSE:Factory/.naev.new.28375/naev.changes 2023-12-28 23:04:07.992296941 +0100
@@ -1,0 +2,19 @@
+Wed Dec 27 08:50:24 UTC 2023 - Carsten Ziepke <kieltux(a)gmail.com>
+
+- Update to 0.11.0
+ * Reworked universe map to fit existing lore
+ * House Sirius completely reworked
+ * Improved autonav that uses lanes and is configurable
+ * Reworked structural outfits and number of ship slots
+ * Weapon sets are more simple with no distinction between
+ weapons and non-weapons
+ * Possible to legally obtain all "standard" factional ships
+ and outfits
+ * Point defense weapons that automatically fire at fighters
+ and missiles
+ * A lot more content
+ * Significant engine speed-ups
+ * Full changelog:
+ https://github.com/naev/naev/releases/tag/v0.11.0
+
+-------------------------------------------------------------------
Old:
----
naev-0.10.6-source.tar.xz
New:
----
naev-0.11.0-source.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ naev.spec ++++++
--- /var/tmp/diff_new_pack.DRiJC4/_old 2023-12-28 23:04:12.996479832 +0100
+++ /var/tmp/diff_new_pack.DRiJC4/_new 2023-12-28 23:04:13.000479977 +0100
@@ -17,7 +17,7 @@
Name: naev
-Version: 0.10.6
+Version: 0.11.0
Release: 0
Summary: 2D action RPG space game
License: GPL-3.0-only
++++++ naev-0.10.6-source.tar.xz -> naev-0.11.0-source.tar.xz ++++++
/work/SRC/openSUSE:Factory/naev/naev-0.10.6-source.tar.xz /work/SRC/openSUSE:Factory/.naev.new.28375/naev-0.11.0-source.tar.xz differ: char 26, line 1
1
0