Skip to content

Commit ea529dd

Browse files
committed
🐛 Don't truncate large int64s in MergePatch
This change bumps https://github.com/evanphx/json-patch in order to pick up a bugfix that made it truncate large int64s because it internally treated them as float64s.
1 parent 48d9a7b commit ea529dd

File tree

5 files changed

+33
-6
lines changed

5 files changed

+33
-6
lines changed

examples/scratch-env/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ require (
1515
github.com/cespare/xxhash/v2 v2.2.0 // indirect
1616
github.com/davecgh/go-spew v1.1.1 // indirect
1717
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
18-
github.com/evanphx/json-patch/v5 v5.7.0 // indirect
18+
github.com/evanphx/json-patch/v5 v5.8.0 // indirect
1919
github.com/fsnotify/fsnotify v1.7.0 // indirect
2020
github.com/go-logr/logr v1.4.1 // indirect
2121
github.com/go-logr/zapr v1.3.0 // indirect

examples/scratch-env/go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxER
1010
github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
1111
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
1212
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
13-
github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0nW9SYGc=
14-
github.com/evanphx/json-patch/v5 v5.7.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ=
13+
github.com/evanphx/json-patch/v5 v5.8.0 h1:lRj6N9Nci7MvzrXuX6HFzU8XjmhPiXPlsKEy1u0KQro=
14+
github.com/evanphx/json-patch/v5 v5.8.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ=
1515
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
1616
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
1717
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ toolchain go1.21.0
66

77
require (
88
github.com/evanphx/json-patch v4.12.0+incompatible // Using v4 to match upstream
9-
github.com/evanphx/json-patch/v5 v5.7.0
9+
github.com/evanphx/json-patch/v5 v5.8.0
1010
github.com/fsnotify/fsnotify v1.7.0
1111
github.com/go-logr/logr v1.4.1
1212
github.com/go-logr/zapr v1.3.0

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxER
1919
github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
2020
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
2121
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
22-
github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0nW9SYGc=
23-
github.com/evanphx/json-patch/v5 v5.7.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ=
22+
github.com/evanphx/json-patch/v5 v5.8.0 h1:lRj6N9Nci7MvzrXuX6HFzU8XjmhPiXPlsKEy1u0KQro=
23+
github.com/evanphx/json-patch/v5 v5.8.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ=
2424
github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk=
2525
github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
2626
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=

pkg/client/patch_test.go

+27
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,13 @@ package client
1919
import (
2020
"testing"
2121

22+
. "github.com/onsi/ginkgo/v2"
23+
. "github.com/onsi/gomega"
2224
appsv1 "k8s.io/api/apps/v1"
25+
batchv1 "k8s.io/api/batch/v1"
2326
corev1 "k8s.io/api/core/v1"
2427
"k8s.io/apimachinery/pkg/api/resource"
28+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2529
)
2630

2731
func BenchmarkMergeFrom(b *testing.B) {
@@ -93,3 +97,26 @@ func BenchmarkMergeFrom(b *testing.B) {
9397
}
9498
})
9599
}
100+
101+
var _ = Describe("MergeFrom", func() {
102+
It("should successfully create a patch for two large and similar in64s", func() {
103+
var largeInt64 int64 = 9223372036854775807
104+
var similarLargeInt64 int64 = 9223372036854775800
105+
j := batchv1.Job{
106+
ObjectMeta: metav1.ObjectMeta{
107+
Namespace: "test",
108+
Name: "test",
109+
},
110+
Spec: batchv1.JobSpec{
111+
ActiveDeadlineSeconds: &largeInt64,
112+
},
113+
}
114+
patch := MergeFrom(j.DeepCopy())
115+
116+
j.Spec.ActiveDeadlineSeconds = &similarLargeInt64
117+
118+
data, err := patch.Data(&j)
119+
Expect(err).NotTo(HaveOccurred())
120+
Expect(data).To(Equal([]byte(`{"spec":{"activeDeadlineSeconds":9223372036854775800}}`)))
121+
})
122+
})

0 commit comments

Comments
 (0)