Skip to content

Commit 0866c3f

Browse files
authored
chore(deps): Bumping ChromaGo client version (#2402)
* chore: Bumping ChromaGo client version * feat: Added GetClient utility method - Updated/Added a few examples * feat: Added GetClient utility method - Updated/Added a few examples - Updated docs * fix: Fixing docs built * fix: Removing GetClient from ChromaContainer
1 parent c83b93c commit 0866c3f

File tree

6 files changed

+102
-49
lines changed

6 files changed

+102
-49
lines changed

docs/modules/chroma.md

+10-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ Since testcontainers-go <a href="https://github.com/testcontainers/testcontainer
66

77
The Testcontainers module for Chroma.
88

9+
## Resources
10+
11+
- [Chroma Docs](https://docs.trychroma.com/getting-started) - Chroma official documentation.
12+
- [Chroma Cookbook](http://cookbook.chromadb.dev) - Community-driven Chroma cookbook.
13+
914
## Adding this module to your project dependencies
1015

1116
Please run the following command to add the Chroma module to your Go dependencies:
@@ -38,7 +43,7 @@ When starting the Chroma container, you can pass options in a variadic way to co
3843
#### Image
3944

4045
If you need to set a different Chroma Docker image, you can use `testcontainers.WithImage` with a valid Docker image
41-
for Chroma. E.g. `testcontainers.WithImage("chromadb/chroma:0.4.22.dev44")`.
46+
for Chroma. E.g. `testcontainers.WithImage("chromadb/chroma:0.4.24")`.
4247

4348
{% include "../features/common_functional_options.md" %}
4449

@@ -65,20 +70,22 @@ First of all, you need to import the Chroma module and the Swagger client:
6570
```golang
6671
import (
6772
chromago "github.com/amikos-tech/chroma-go"
68-
chromaopenapi "github.com/amikos-tech/chroma-go/swagger"
73+
"github.com/amikos-tech/chroma-go/types"
6974
)
7075
```
7176

7277
Then, you can create a Chroma client using the Chroma module:
7378

7479
<!--codeinclude-->
75-
[Get the client](../../modules/chroma/examples_test.go) inside_block:createClient
80+
[Get the client](../../modules/chroma/examples_test.go) inside_block:getClient
7681
<!--/codeinclude-->
7782

7883
### Working with Collections
7984

8085
<!--codeinclude-->
8186
[Create Collection](../../modules/chroma/examples_test.go) inside_block:createCollection
8287
[List Collections](../../modules/chroma/examples_test.go) inside_block:listCollections
88+
[Add Data to Collection](../../modules/chroma/examples_test.go) inside_block:addData
89+
[Query Collection](../../modules/chroma/examples_test.go) inside_block:queryCollection
8390
[Delete Collection](../../modules/chroma/examples_test.go) inside_block:deleteCollection
8491
<!--/codeinclude-->

modules/chroma/chroma.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ type ChromaContainer struct {
1616
// RunContainer creates an instance of the Chroma container type
1717
func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*ChromaContainer, error) {
1818
req := testcontainers.ContainerRequest{
19-
Image: "chromadb/chroma:0.4.22",
19+
Image: "chromadb/chroma:0.4.24",
2020
ExposedPorts: []string{"8000/tcp"},
2121
WaitingFor: wait.ForAll(
2222
wait.ForListeningPort("8000/tcp"),

modules/chroma/chroma_test.go

+21-1
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,17 @@ import (
55
"net/http"
66
"testing"
77

8+
chromago "github.com/amikos-tech/chroma-go"
9+
"github.com/stretchr/testify/require"
10+
811
"github.com/testcontainers/testcontainers-go"
912
"github.com/testcontainers/testcontainers-go/modules/chroma"
1013
)
1114

1215
func TestChroma(t *testing.T) {
1316
ctx := context.Background()
1417

15-
container, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.22.dev44"))
18+
container, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.24"))
1619
if err != nil {
1720
t.Fatal(err)
1821
}
@@ -43,4 +46,21 @@ func TestChroma(t *testing.T) {
4346
tt.Fatalf("unexpected status code: %d", resp.StatusCode)
4447
}
4548
})
49+
50+
t.Run("GetClient", func(tt *testing.T) {
51+
// restEndpoint {
52+
endpoint, err := container.RESTEndpoint(context.Background())
53+
if err != nil {
54+
tt.Fatalf("failed to get REST endpoint: %s", err) // nolint:gocritic
55+
}
56+
chromaClient, err := chromago.NewClient(endpoint)
57+
// }
58+
if err != nil {
59+
tt.Fatalf("failed to create client: %s", err)
60+
}
61+
62+
hb, err := chromaClient.Heartbeat(context.TODO())
63+
require.NoError(tt, err)
64+
require.NotNil(tt, hb["nanosecond heartbeat"])
65+
})
4666
}

modules/chroma/examples_test.go

+46-39
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,9 @@ import (
44
"context"
55
"fmt"
66
"log"
7-
"os"
87

98
chromago "github.com/amikos-tech/chroma-go"
10-
"github.com/amikos-tech/chroma-go/openai"
11-
chromaopenapi "github.com/amikos-tech/chroma-go/swagger"
9+
"github.com/amikos-tech/chroma-go/types"
1210

1311
"github.com/testcontainers/testcontainers-go"
1412
"github.com/testcontainers/testcontainers-go/modules/chroma"
@@ -18,7 +16,7 @@ func ExampleRunContainer() {
1816
// runChromaContainer {
1917
ctx := context.Background()
2018

21-
chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.22"))
19+
chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.24"))
2220
if err != nil {
2321
log.Fatalf("failed to start container: %s", err)
2422
}
@@ -46,7 +44,7 @@ func ExampleChromaContainer_connectWithClient() {
4644
// createClient {
4745
ctx := context.Background()
4846

49-
chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.22"))
47+
chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.24"))
5048
if err != nil {
5149
log.Fatalf("failed to start container: %s", err)
5250
}
@@ -58,21 +56,13 @@ func ExampleChromaContainer_connectWithClient() {
5856
}
5957
}()
6058

61-
connectionStr, err := chromaContainer.RESTEndpoint(ctx)
59+
endpoint, err := chromaContainer.RESTEndpoint(context.Background())
6260
if err != nil {
6361
log.Fatalf("failed to get REST endpoint: %s", err) // nolint:gocritic
6462
}
65-
66-
// create the client connection and confirm that we can access the server with it
67-
configuration := chromaopenapi.NewConfiguration()
68-
configuration.Servers = chromaopenapi.ServerConfigurations{
69-
{
70-
URL: connectionStr,
71-
Description: "Chromadb server url for this store",
72-
},
73-
}
74-
chromaClient := &chromago.Client{
75-
ApiClient: chromaopenapi.NewAPIClient(configuration),
63+
chromaClient, err := chromago.NewClient(endpoint)
64+
if err != nil {
65+
log.Fatalf("failed to get client: %s", err) // nolint:gocritic
7666
}
7767

7868
hbs, errHb := chromaClient.Heartbeat(context.Background())
@@ -91,7 +81,7 @@ func ExampleChromaContainer_connectWithClient() {
9181
func ExampleChromaContainer_collections() {
9282
ctx := context.Background()
9383

94-
chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.22"))
84+
chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.24"), testcontainers.WithEnv(map[string]string{"ALLOW_RESET": "true"}))
9585
if err != nil {
9686
log.Fatalf("failed to start container: %s", err)
9787
}
@@ -102,51 +92,66 @@ func ExampleChromaContainer_collections() {
10292
}
10393
}()
10494

105-
connectionStr, err := chromaContainer.RESTEndpoint(ctx)
95+
// getClient {
96+
// create the client connection and confirm that we can access the server with it
97+
endpoint, err := chromaContainer.RESTEndpoint(context.Background())
10698
if err != nil {
10799
log.Fatalf("failed to get REST endpoint: %s", err) // nolint:gocritic
108100
}
109-
110-
// create the client connection and confirm that we can access the server with it
111-
configuration := chromaopenapi.NewConfiguration()
112-
configuration.Servers = chromaopenapi.ServerConfigurations{
113-
{
114-
URL: connectionStr,
115-
Description: "Chromadb server url for this store",
116-
},
101+
chromaClient, err := chromago.NewClient(endpoint)
102+
// }
103+
if err != nil {
104+
log.Fatalf("failed to get client: %s", err) // nolint:gocritic
117105
}
118-
chromaClient := &chromago.Client{
119-
ApiClient: chromaopenapi.NewAPIClient(configuration),
106+
// reset {
107+
reset, err := chromaClient.Reset(context.Background())
108+
// }
109+
if err != nil {
110+
log.Fatalf("failed to reset: %s", err) // nolint:gocritic
120111
}
112+
fmt.Printf("Reset successful: %v\n", reset)
121113

122114
// createCollection {
123-
// for testing purposes, the OPENAI_API_KEY environment variable can be empty
124-
// therefore this test is expected to succeed even though the API key is not set.
125-
embeddingFunction := openai.NewOpenAIEmbeddingFunction(os.Getenv("OPENAI_API_KEY"))
126-
distanceFunction := chromago.L2
127-
128-
col, err := chromaClient.CreateCollection(context.Background(), "test-collection", map[string]any{}, true, embeddingFunction, distanceFunction)
115+
// for testing we use a dummy hashing function NewConsistentHashEmbeddingFunction
116+
col, err := chromaClient.CreateCollection(context.Background(), "test-collection", map[string]any{}, true, types.NewConsistentHashEmbeddingFunction(), types.L2)
129117
// }
130118
if err != nil {
131119
log.Fatalf("failed to create collection: %s", err) // nolint:gocritic
132120
}
133121

134122
fmt.Println("Collection created:", col.Name)
135123

124+
// addData {
136125
// verify it's possible to add data to the collection
137126
col1, err := col.Add(
138127
context.Background(),
139-
[][]float32{{1, 2, 3}, {4, 5, 6}},
140-
[]map[string]interface{}{},
141-
[]string{"test-doc-1", "test-doc-2"},
142-
[]string{"test-label-1", "test-label-2"},
128+
nil, // embeddings
129+
[]map[string]interface{}{}, // metadata
130+
[]string{"test-doc-1", "test-doc-2"}, // documents
131+
[]string{"test-label-1", "test-label-2"}, // ids
143132
)
133+
// }
144134
if err != nil {
145135
log.Fatalf("failed to add data to collection: %s", err) // nolint:gocritic
146136
}
147137

148138
fmt.Println(col1.Count(context.Background()))
149139

140+
// queryCollection {
141+
// verify it's possible to query the collection
142+
queryResults, err := col1.QueryWithOptions(
143+
context.Background(),
144+
types.WithQueryTexts([]string{"test-doc-1"}),
145+
types.WithInclude(types.IDocuments, types.IEmbeddings, types.IMetadatas),
146+
types.WithNResults(1),
147+
)
148+
// }
149+
if err != nil {
150+
log.Fatalf("failed to query collection: %s", err) // nolint:gocritic
151+
}
152+
153+
fmt.Printf("Result of query: %v\n", queryResults)
154+
150155
// listCollections {
151156
cols, err := chromaClient.ListCollections(context.Background())
152157
// }
@@ -166,8 +171,10 @@ func ExampleChromaContainer_collections() {
166171
fmt.Println(err)
167172

168173
// Output:
174+
// Reset successful: true
169175
// Collection created: test-collection
170176
// 2 <nil>
177+
// Result of query: &{[[test-doc-1]] [[test-label-1]] [[map[]]] []}
171178
// 1
172179
// <nil>
173180
}

modules/chroma/go.mod

+8-1
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,22 @@ module github.com/testcontainers/testcontainers-go/modules/chroma
33
go 1.21
44

55
require (
6-
github.com/amikos-tech/chroma-go v0.0.1
6+
github.com/amikos-tech/chroma-go v0.1.2
7+
github.com/stretchr/testify v1.9.0
78
github.com/testcontainers/testcontainers-go v0.29.1
89
)
910

1011
require (
1112
dario.cat/mergo v1.0.0 // indirect
1213
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
14+
github.com/Masterminds/semver v1.5.0 // indirect
1315
github.com/Microsoft/go-winio v0.6.1 // indirect
1416
github.com/Microsoft/hcsshim v0.11.4 // indirect
1517
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
1618
github.com/containerd/containerd v1.7.12 // indirect
1719
github.com/containerd/log v0.1.0 // indirect
1820
github.com/cpuguy83/dockercfg v0.3.1 // indirect
21+
github.com/davecgh/go-spew v1.1.1 // indirect
1922
github.com/distribution/reference v0.5.0 // indirect
2023
github.com/docker/docker v25.0.5+incompatible // indirect
2124
github.com/docker/go-connections v0.5.0 // indirect
@@ -28,16 +31,19 @@ require (
2831
github.com/golang/protobuf v1.5.3 // indirect
2932
github.com/google/uuid v1.6.0 // indirect
3033
github.com/klauspost/compress v1.16.0 // indirect
34+
github.com/kr/pretty v0.3.1 // indirect
3135
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
3236
github.com/magiconair/properties v1.8.7 // indirect
3337
github.com/moby/patternmatcher v0.6.0 // indirect
3438
github.com/moby/sys/sequential v0.5.0 // indirect
3539
github.com/moby/sys/user v0.1.0 // indirect
3640
github.com/moby/term v0.5.0 // indirect
3741
github.com/morikuni/aec v1.0.0 // indirect
42+
github.com/oklog/ulid v1.3.1 // indirect
3843
github.com/opencontainers/go-digest v1.0.0 // indirect
3944
github.com/opencontainers/image-spec v1.1.0 // indirect
4045
github.com/pkg/errors v0.9.1 // indirect
46+
github.com/pmezard/go-difflib v1.0.0 // indirect
4147
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
4248
github.com/shirou/gopsutil/v3 v3.23.12 // indirect
4349
github.com/shoenig/go-m1cpu v0.1.6 // indirect
@@ -56,6 +62,7 @@ require (
5662
google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect
5763
google.golang.org/grpc v1.58.3 // indirect
5864
google.golang.org/protobuf v1.33.0 // indirect
65+
gopkg.in/yaml.v3 v3.0.1 // indirect
5966
)
6067

6168
replace github.com/testcontainers/testcontainers-go => ../..

modules/chroma/go.sum

+16-4
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@ github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9
44
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8=
55
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=
66
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
7+
github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
8+
github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
79
github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
810
github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
911
github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8=
1012
github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w=
11-
github.com/amikos-tech/chroma-go v0.0.1 h1:yWgl6YUhM+kXuH82DR9Q8dWddcjgaFuFPk+MtWNreqE=
12-
github.com/amikos-tech/chroma-go v0.0.1/go.mod h1:uJwgGN4rBUTMI88Rn68Xia+cTRogOo0/elcPvJYFtBU=
13+
github.com/amikos-tech/chroma-go v0.1.2 h1:ECiJ4Gn0AuJaj/jLo+FiqrKRHBVDkrDaUQVRBsEMmEQ=
14+
github.com/amikos-tech/chroma-go v0.1.2/go.mod h1:R/RUp0aaqCWdSXWyIUTfjuNymwqBGLYFgXNZEmisphY=
1315
github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM=
1416
github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
1517
github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0=
@@ -18,6 +20,7 @@ github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
1820
github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
1921
github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E=
2022
github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc=
23+
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
2124
github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
2225
github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
2326
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -54,12 +57,14 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
5457
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
5558
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms=
5659
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg=
57-
github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
58-
github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
5960
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
6061
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
6162
github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4=
6263
github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
64+
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
65+
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
66+
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
67+
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
6368
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4=
6469
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I=
6570
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
@@ -74,16 +79,21 @@ github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=
7479
github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
7580
github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
7681
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
82+
github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4=
83+
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
7784
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
7885
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
7986
github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug=
8087
github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM=
88+
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
8189
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
8290
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
8391
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
8492
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
8593
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw=
8694
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
95+
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
96+
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
8797
github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4=
8898
github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM=
8999
github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM=
@@ -185,6 +195,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ
185195
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
186196
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
187197
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
198+
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
199+
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
188200
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
189201
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
190202
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

0 commit comments

Comments
 (0)