diff options
author | Bjørn Erik Pedersen <[email protected]> | 2024-07-30 10:08:19 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2024-07-31 16:44:06 +0200 |
commit | 78db8aebcaeb34730c3db60a666c5a319a13d233 (patch) | |
tree | e09e0ad102ce1bb31905a4d90b31990d0d9f981a | |
parent | 3140e0b994e4108220afedc3de8eaf42ff216904 (diff) | |
download | hugo-78db8aebcaeb34730c3db60a666c5a319a13d233.tar.gz hugo-78db8aebcaeb34730c3db60a666c5a319a13d233.zip |
identity: Upgrade to github.com/mitchellh/hashstructure/v2 v2.0.2
```
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
-rw-r--r-- | config/namespace_test.go | 2 | ||||
-rw-r--r-- | go.mod | 2 | ||||
-rw-r--r-- | go.sum | 4 | ||||
-rw-r--r-- | identity/identityhash.go | 4 | ||||
-rw-r--r-- | resources/internal/key_test.go | 2 | ||||
-rw-r--r-- | resources/resource_factories/create/remote_test.go | 13 | ||||
-rw-r--r-- | resources/resource_transformers/js/options_test.go | 2 | ||||
-rw-r--r-- | resources/resources_integration_test.go | 6 | ||||
-rw-r--r-- | tpl/collections/reflect_helpers.go | 9 |
9 files changed, 20 insertions, 24 deletions
diff --git a/config/namespace_test.go b/config/namespace_test.go index 9bd23e08e..3bbb28259 100644 --- a/config/namespace_test.go +++ b/config/namespace_test.go @@ -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)) } @@ -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 @@ -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= diff --git a/identity/identityhash.go b/identity/identityhash.go index 8760ff64d..70371e567 100644 --- a/identity/identityhash.go +++ b/identity/identityhash.go @@ -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) } diff --git a/resources/internal/key_test.go b/resources/internal/key_test.go index 38286333d..b3f54eebd 100644 --- a/resources/internal/key_test.go +++ b/resources/internal/key_test.go @@ -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") } diff --git a/resources/resource_factories/create/remote_test.go b/resources/resource_factories/create/remote_test.go index 49d0b1541..5284c4d19 100644 --- a/resources/resource_factories/create/remote_test.go +++ b/resources/resource_factories/create/remote_test.go @@ -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") } diff --git a/resources/resource_transformers/js/options_test.go b/resources/resource_transformers/js/options_test.go index de20cbd05..d2821c552 100644 --- a/resources/resource_transformers/js/options_test.go +++ b/resources/resource_transformers/js/options_test.go @@ -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) { diff --git a/resources/resources_integration_test.go b/resources/resources_integration_test.go index ba580b4dc..df489c9e5 100644 --- a/resources/resources_integration_test.go +++ b/resources/resources_integration_test.go @@ -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|", ) } diff --git a/tpl/collections/reflect_helpers.go b/tpl/collections/reflect_helpers.go index 4687acdde..b1966841d 100644 --- a/tpl/collections/reflect_helpers.go +++ b/tpl/collections/reflect_helpers.go @@ -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 { |