]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
identity: Upgrade to github.com/mitchellh/hashstructure/v2 v2.0.2
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 30 Jul 2024 08:08:19 +0000 (10:08 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 31 Jul 2024 14:44:06 +0000 (16:44 +0200)
```
name                 old time/op    new time/op    delta
HashString/n28-10       131ns ± 7%     133ns ±19%   ~     (p=0.343 n=4+4)
HashString/n112-10      237ns ± 5%     241ns ± 3%   ~     (p=0.229 n=4+4)
HashString/n448-10      688ns ± 3%     687ns ± 1%   ~     (p=0.886 n=4+4)
HashString/n1792-10    2.51µs ± 3%    2.56µs ± 3%   ~     (p=0.200 n=4+4)
HashString/n7168-10    10.1µs ± 2%    10.0µs ± 4%   ~     (p=0.686 n=4+4)

name                 old alloc/op   new alloc/op   delta
HashString/n28-10       80.0B ± 0%     80.0B ± 0%   ~     (all equal)
HashString/n112-10       160B ± 0%      160B ± 0%   ~     (all equal)
HashString/n448-10       496B ± 0%      496B ± 0%   ~     (all equal)
HashString/n1792-10    1.84kB ± 0%    1.84kB ± 0%   ~     (all equal)
HashString/n7168-10    8.24kB ± 0%    8.24kB ± 0%   ~     (all equal)

name                 old allocs/op  new allocs/op  delta
HashString/n28-10        4.00 ± 0%      4.00 ± 0%   ~     (all equal)
HashString/n112-10       4.00 ± 0%      4.00 ± 0%   ~     (all equal)
HashString/n448-10       4.00 ± 0%      4.00 ± 0%   ~     (all equal)
HashString/n1792-10      4.00 ± 0%      4.00 ± 0%   ~     (all equal)
HashString/n7168-10      4.00 ± 0%      4.00 ± 0%   ~     (all equal)
```

Closes #11644

config/namespace_test.go
go.mod
go.sum
identity/identityhash.go
resources/internal/key_test.go
resources/resource_factories/create/remote_test.go
resources/resource_transformers/js/options_test.go
resources/resources_integration_test.go
tpl/collections/reflect_helpers.go

index 9bd23e08e577e3b65f61c789a8ef568d28879ad0..3bbb282592b79b3ebe33e8501147b53eb24aa2d3 100644 (file)
@@ -43,7 +43,7 @@ func TestNamespace(t *testing.T) {
        c.Assert(err, qt.IsNil)
        c.Assert(ns, qt.Not(qt.IsNil))
        c.Assert(ns.SourceStructure, qt.DeepEquals, map[string]interface{}{"foo": "bar"})
-       c.Assert(ns.SourceHash, qt.Equals, "14368731254619220105")
+       c.Assert(ns.SourceHash, qt.Equals, "5334326627423288605")
        c.Assert(ns.Config, qt.DeepEquals, &tstNsExt{Foo: "bar"})
        c.Assert(ns.Signature(), qt.DeepEquals, []*tstNsExt(nil))
 }
diff --git a/go.mod b/go.mod
index c77f4278345bf325a1b1f0dd93e4646de22cb384..4467afd594f2b82eb479d60cd8a09f6d12c5f741 100644 (file)
--- a/go.mod
+++ b/go.mod
@@ -53,7 +53,7 @@ require (
        github.com/makeworld-the-better-one/dither/v2 v2.4.0
        github.com/marekm4/color-extractor v1.2.1
        github.com/mattn/go-isatty v0.0.20
-       github.com/mitchellh/hashstructure v1.1.0
+       github.com/mitchellh/hashstructure/v2 v2.0.2
        github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c
        github.com/muesli/smartcrop v0.3.0
        github.com/niklasfasching/go-org v1.7.0
diff --git a/go.sum b/go.sum
index f535465cf50390256f8dd4aedb56d5d8ee2ad526..2bcb46b91d9249f3f86928dedff10a6a335570e9 100644 (file)
--- a/go.sum
+++ b/go.sum
@@ -377,8 +377,8 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE
 github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
 github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
 github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
-github.com/mitchellh/hashstructure v1.1.0 h1:P6P1hdjqAAknpY/M1CGipelZgp+4y9ja9kmUZPXP+H0=
-github.com/mitchellh/hashstructure v1.1.0/go.mod h1:xUDAozZz0Wmdiufv0uyhnHkUTN6/6d8ulp4AwfLKrmA=
+github.com/mitchellh/hashstructure/v2 v2.0.2 h1:vGKWl0YJqUNxE8d+h8f6NJLcCJrgbhC4NcD46KavDd4=
+github.com/mitchellh/hashstructure/v2 v2.0.2/go.mod h1:MG3aRVU/N29oo/V/IhBX8GR/zz4kQkprJgF2EVszyDE=
 github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c h1:cqn374mizHuIWj+OSJCajGr/phAmuMug9qIX3l9CflE=
 github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
index 8760ff64d2dd38b4685b36ca41dd4e08d3ce3b89..70371e567824de21910fad8c39a45d57a76ac0e9 100644 (file)
@@ -16,7 +16,7 @@ package identity
 import (
        "strconv"
 
-       "github.com/mitchellh/hashstructure"
+       "github.com/mitchellh/hashstructure/v2"
 )
 
 // HashString returns a hash from the given elements.
@@ -44,7 +44,7 @@ func HashUint64(vs ...any) uint64 {
                o = elements
        }
 
-       hash, err := hashstructure.Hash(o, nil)
+       hash, err := hashstructure.Hash(o, hashstructure.FormatV2, nil)
        if err != nil {
                panic(err)
        }
index 38286333d4a0208d596b3b68bc98206bf5506181..b3f54eebd28d33257878dbe90166afcc8e9f068b 100644 (file)
@@ -32,5 +32,5 @@ func TestResourceTransformationKey(t *testing.T) {
        key := NewResourceTransformationKey("testing",
                testStruct{Name: "test", V1: int64(10), V2: int32(20), V3: 30, V4: uint64(40)})
        c := qt.New(t)
-       c.Assert(key.Value(), qt.Equals, "testing_518996646957295636")
+       c.Assert(key.Value(), qt.Equals, "testing_5850874845946291698")
 }
index 49d0b1541ae5937ecf87ed53f3a36496e0ba76e4..5284c4d1926419a8f031aa432053269feb54c8c3 100644 (file)
@@ -121,15 +121,16 @@ func TestRemoteResourceKeys(t *testing.T) {
        c := qt.New(t)
 
        check := func(uri string, optionsm map[string]any, expect1, expect2 string) {
+               c.Helper()
                got1, got2 := remoteResourceKeys(uri, optionsm)
                c.Assert(got1, qt.Equals, expect1)
                c.Assert(got2, qt.Equals, expect2)
        }
 
-       check("foo", nil, "5917621528921068675", "5917621528921068675")
-       check("foo", map[string]any{"bar": "baz"}, "7294498335241413323", "7294498335241413323")
-       check("foo", map[string]any{"key": "1234", "bar": "baz"}, "14904296279238663669", "7294498335241413323")
-       check("foo", map[string]any{"key": "12345", "bar": "baz"}, "12191037851845371770", "7294498335241413323")
-       check("asdf", map[string]any{"key": "1234", "bar": "asdf"}, "14904296279238663669", "3787889110563790121")
-       check("asdf", map[string]any{"key": "12345", "bar": "asdf"}, "12191037851845371770", "3787889110563790121")
+       check("foo", nil, "10276615683545312752", "10276615683545312752")
+       check("foo", map[string]any{"bar": "baz"}, "9898282343037894676", "9898282343037894676")
+       check("foo", map[string]any{"key": "1234", "bar": "baz"}, "14904296279238663669", "9898282343037894676")
+       check("foo", map[string]any{"key": "12345", "bar": "baz"}, "12191037851845371770", "9898282343037894676")
+       check("asdf", map[string]any{"key": "1234", "bar": "asdf"}, "14904296279238663669", "3005610248808565917")
+       check("asdf", map[string]any{"key": "12345", "bar": "asdf"}, "12191037851845371770", "3005610248808565917")
 }
index de20cbd05defe4de0287ce4c6ffb946e1b60ed68..d2821c55244f11df9b65c3c707b206bb4f334a9b 100644 (file)
@@ -44,7 +44,7 @@ func TestOptionKey(t *testing.T) {
 
        key := (&buildTransformation{optsm: opts}).Key()
 
-       c.Assert(key.Value(), qt.Equals, "jsbuild_7891849149754191852")
+       c.Assert(key.Value(), qt.Equals, "jsbuild_9458638411414195026")
 }
 
 func TestToBuildOptions(t *testing.T) {
index ba580b4dce1a9a265382903d491987e8ae06264b..df489c9e541ec6225a244df01a4101dc630c5168 100644 (file)
@@ -159,9 +159,9 @@ resize 2|RelPermalink: {{ $image.RelPermalink }}|MediaType: {{ $image.MediaType
        b := hugolib.Test(t, files)
 
        b.AssertFileContent("public/index.html",
-               "jpg|RelPermalink: /images/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_filter_17010532266664966692.jpg|MediaType: image/jpeg|Width: 1|Height: 1|",
-               "resize 1|RelPermalink: /images/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_filter_6707036659822075562.jpg|MediaType: image/jpeg|Width: 20|Height: 30|",
-               "resize 2|RelPermalink: /images/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_filter_6707036659822075562.jpg|MediaType: image/jpeg|Width: 20|Height: 30|",
+               "jpg|RelPermalink: /images/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_filter_14347832029652749901.jpg|MediaType: image/jpeg|Width: 1|Height: 1|",
+               "resize 1|RelPermalink: /images/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_filter_14038289290831899195.jpg|MediaType: image/jpeg|Width: 20|Height: 30|",
+               "resize 2|RelPermalink: /images/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_filter_14038289290831899195.jpg|MediaType: image/jpeg|Width: 20|Height: 30|",
        )
 }
 
index 4687acdde573687cef741f7577d2f7135c8bb9c8..b1966841dc2c696762512d18858efe9b4b752671 100644 (file)
@@ -19,7 +19,7 @@ import (
        "reflect"
 
        "github.com/gohugoio/hugo/common/types"
-       "github.com/mitchellh/hashstructure"
+       "github.com/gohugoio/hugo/identity"
 )
 
 var (
@@ -47,14 +47,9 @@ func numberToFloat(v reflect.Value) (float64, error) {
 // to make them comparable
 func normalize(v reflect.Value) any {
        k := v.Kind()
-
        switch {
        case !v.Type().Comparable():
-               h, err := hashstructure.Hash(v.Interface(), nil)
-               if err != nil {
-                       panic(err)
-               }
-               return h
+               return identity.HashUint64(v.Interface())
        case isNumber(k):
                f, err := numberToFloat(v)
                if err == nil {