chroma-haystack 2.0.2__tar.gz → 2.0.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/CHANGELOG.md +136 -0
  2. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/PKG-INFO +2 -2
  3. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/pyproject.toml +1 -1
  4. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/src/haystack_integrations/components/retrievers/chroma/__init__.py +4 -0
  5. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/src/haystack_integrations/components/retrievers/chroma/retriever.py +2 -1
  6. chroma_haystack-2.0.3/src/haystack_integrations/document_stores/chroma/__init__.py +7 -0
  7. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/src/haystack_integrations/document_stores/chroma/document_store.py +4 -2
  8. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/src/haystack_integrations/document_stores/chroma/errors.py +2 -1
  9. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/src/haystack_integrations/document_stores/chroma/filters.py +4 -0
  10. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/src/haystack_integrations/document_stores/chroma/utils.py +2 -1
  11. chroma_haystack-2.0.3/tests/__init__.py +3 -0
  12. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/tests/test_document_store.py +3 -3
  13. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/tests/test_retriever.py +1 -0
  14. chroma_haystack-2.0.2/src/haystack_integrations/document_stores/chroma/__init__.py +0 -3
  15. chroma_haystack-2.0.2/tests/__init__.py +0 -3
  16. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/.gitignore +0 -0
  17. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/LICENSE +0 -0
  18. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/README.md +0 -0
  19. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_01.txt +0 -0
  20. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_02.txt +0 -0
  21. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_03.txt +0 -0
  22. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_04.txt +0 -0
  23. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_05.txt +0 -0
  24. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_06.txt +0 -0
  25. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_07.txt +0 -0
  26. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_08.txt +0 -0
  27. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_09.txt +0 -0
  28. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_10.txt +0 -0
  29. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_11.txt +0 -0
  30. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_12.txt +0 -0
  31. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_20.txt +0 -0
  32. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_21.txt +0 -0
  33. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_22.txt +0 -0
  34. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_23.txt +0 -0
  35. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_24.txt +0 -0
  36. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_25.txt +0 -0
  37. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_26.txt +0 -0
  38. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_27.txt +0 -0
  39. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_28.txt +0 -0
  40. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_29.txt +0 -0
  41. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_30.txt +0 -0
  42. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_31.txt +0 -0
  43. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_32.txt +0 -0
  44. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_40.txt +0 -0
  45. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_41.txt +0 -0
  46. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_42.txt +0 -0
  47. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_43.txt +0 -0
  48. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_44.txt +0 -0
  49. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_45.txt +0 -0
  50. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_46.txt +0 -0
  51. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_50.txt +0 -0
  52. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_51.txt +0 -0
  53. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_52.txt +0 -0
  54. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/data/usr_90.txt +0 -0
  55. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/example/example.py +0 -0
  56. {chroma_haystack-2.0.2 → chroma_haystack-2.0.3}/pydoc/config.yml +0 -0
@@ -1,239 +1,375 @@
1
1
  # Changelog
2
2
 
3
+ ## [integrations/chroma-v2.0.2] - 2025-04-04
4
+
5
+
6
+
7
+
8
+ ### ⚙️ CI
9
+
10
+
11
+ - Review testing workflows (#1541)
12
+
13
+
14
+ ### 🌀 Miscellaneous
15
+
16
+
17
+ - Fix: Pin chroma (#1608)
18
+
3
19
  ## [integrations/chroma-v3.0.0] - 2025-03-11
4
20
 
21
+
22
+
23
+
5
24
  ### 🧹 Chores
6
25
 
26
+
7
27
  - Use Haystack logging across integrations (#1484)
8
28
 
29
+
9
30
  ### 🌀 Miscellaneous
10
31
 
32
+
11
33
  - Fix: Chroma - relax dataframe/blob test (#1404)
34
+
12
35
  - Pin haystack and remove dataframe checks (#1501)
13
36
 
14
37
  ## [integrations/chroma-v2.0.1] - 2025-02-14
15
38
 
39
+
16
40
  ### 🌀 Miscellaneous
17
41
 
42
+
43
+
18
44
  - Better handle discarded fields (#1373)
19
45
 
20
46
  ## [integrations/chroma-v1.0.1] - 2025-02-14
21
47
 
48
+
22
49
  ### 🧹 Chores
23
50
 
51
+
24
52
  - Inherit from `FilterDocumentsTestWithDataframe` in Document Stores (#1290)
25
53
 
54
+
26
55
  ### 🌀 Miscellaneous
27
56
 
57
+
58
+
28
59
  - Fix: Chroma - make `filter_documents` method return embeddings (#1361)
29
60
 
30
61
  ## [integrations/chroma-v2.0.0] - 2025-01-02
31
62
 
63
+
32
64
  ### 🧹 Chores
33
65
 
66
+
34
67
  - Fix linting/isort (#1215)
68
+
35
69
  - Chroma - pin `tokenizers` (#1223)
36
70
 
71
+
37
72
  ### 🌀 Miscellaneous
38
73
 
74
+
75
+
39
76
  - Unpin tokenizers (#1233)
77
+
40
78
  - Fix: updates for Chroma 0.6.0 (#1270)
41
79
 
42
80
  ## [integrations/chroma-v1.0.0] - 2024-11-06
43
81
 
82
+
44
83
  ### 🐛 Bug Fixes
45
84
 
85
+
46
86
  - Fixing Chroma tests due `chromadb` update behaviour change (#1148)
87
+
47
88
  - Adapt our implementation to breaking changes in Chroma 0.5.17 (#1165)
48
89
 
90
+
49
91
  ### ⚙️ CI
50
92
 
93
+
51
94
  - Adopt uv as installer (#1142)
52
95
 
53
96
 
97
+
54
98
  ## [integrations/chroma-v0.22.1] - 2024-09-30
55
99
 
100
+
56
101
  ### 🌀 Miscellaneous
57
102
 
103
+
104
+
58
105
  - Empty filters should behave as no filters (#1117)
59
106
 
60
107
  ## [integrations/chroma-v0.22.0] - 2024-09-30
61
108
 
109
+
62
110
  ### 🚀 Features
63
111
 
112
+
64
113
  - Chroma - allow remote HTTP connection (#1094)
114
+
65
115
  - Chroma - defer the DB connection (#1107)
66
116
 
117
+
67
118
  ### 🐛 Bug Fixes
68
119
 
120
+
69
121
  - Refactor: fix chroma linting; do not use numpy (#1063)
122
+
70
123
  - Filters in chroma integration (#1072)
71
124
 
125
+
72
126
  ### 🧪 Testing
73
127
 
128
+
74
129
  - Do not retry tests in `hatch run test` command (#954)
75
130
 
131
+
76
132
  ### 🧹 Chores
77
133
 
134
+
78
135
  - Chroma - ruff update, don't ruff tests (#983)
136
+
79
137
  - Update ruff linting scripts and settings (#1105)
80
138
 
139
+
81
140
  ### 🌀 Miscellaneous
82
141
 
142
+
143
+
83
144
  - Chore: ChromaDocumentStore lint fix (#1065)
84
145
 
85
146
  ## [integrations/chroma-v0.21.1] - 2024-07-17
86
147
 
148
+
87
149
  ### 🐛 Bug Fixes
88
150
 
151
+
89
152
  - `ChromaDocumentStore` - discard `meta` items when the type of their value is not supported in Chroma (#907)
90
153
 
91
154
 
155
+
92
156
  ## [integrations/chroma-v0.21.0] - 2024-07-16
93
157
 
158
+
94
159
  ### 🚀 Features
95
160
 
161
+
96
162
  - Add metadata parameter to ChromaDocumentStore. (#906)
97
163
 
98
164
 
165
+
99
166
  ## [integrations/chroma-v0.20.1] - 2024-07-15
100
167
 
168
+
101
169
  ### 🚀 Features
102
170
 
171
+
103
172
  - Added distance_function property to ChromadocumentStore (#817)
173
+
104
174
  - Add filter_policy to chroma integration (#826)
105
175
 
176
+
106
177
  ### 🐛 Bug Fixes
107
178
 
179
+
108
180
  - Allow search in ChromaDocumentStore without metadata (#863)
181
+
109
182
  - `Chroma` - Fallback to default filter policy when deserializing retrievers without the init parameter (#897)
110
183
 
184
+
111
185
  ### ⚙️ CI
112
186
 
187
+
113
188
  - Retry tests to reduce flakyness (#836)
114
189
 
190
+
115
191
  ### 🧹 Chores
116
192
 
193
+
117
194
  - Update ruff invocation to include check parameter (#853)
118
195
 
196
+
119
197
  ### 🌀 Miscellaneous
120
198
 
199
+
200
+
121
201
  - Ci: install `pytest-rerunfailures` where needed; add retry config to `test-cov` script (#845)
202
+
122
203
  - Chore: Minor retriever pydoc fix (#884)
123
204
 
124
205
  ## [integrations/chroma-v0.18.0] - 2024-05-31
125
206
 
207
+
126
208
  ### 🌀 Miscellaneous
127
209
 
210
+
128
211
  - Chore: pin chromadb>=0.5.0 (#777)
129
212
 
130
213
  ## [integrations/chroma-v0.17.0] - 2024-05-10
131
214
 
215
+
132
216
  ### 🌀 Miscellaneous
133
217
 
218
+
134
219
  - Chore: change the pydoc renderer class (#718)
220
+
135
221
  - Implement filters for chromaQueryTextRetriever via existing haystack filters logic (#705)
136
222
 
137
223
  ## [integrations/chroma-v0.16.0] - 2024-05-02
138
224
 
225
+
139
226
  ### 📚 Documentation
140
227
 
228
+
141
229
  - Small consistency improvements (#536)
230
+
142
231
  - Disable-class-def (#556)
143
232
 
233
+
144
234
  ### 🌀 Miscellaneous
145
235
 
236
+
146
237
  - Make tests show coverage (#566)
238
+
147
239
  - Refactor tests (#574)
240
+
148
241
  - Remove references to Python 3.7 (#601)
242
+
149
243
  - Make Document Stores initially skip `SparseEmbedding` (#606)
244
+
150
245
  - Pin databind-core (#619)
246
+
151
247
  - Chore: add license classifiers (#680)
248
+
152
249
  - Feature/bump chromadb dep to 0.5.0 (#700)
153
250
 
154
251
  ## [integrations/chroma-v0.15.0] - 2024-03-01
155
252
 
253
+
156
254
  ### 🌀 Miscellaneous
157
255
 
256
+
158
257
  - Release chroma on python 3.8 (#512)
159
258
 
160
259
  ## [integrations/chroma-v0.14.0] - 2024-02-29
161
260
 
261
+
162
262
  ### 🐛 Bug Fixes
163
263
 
264
+
164
265
  - Fix order of API docs (#447)
266
+
165
267
  - Serialize the path to the local db (#506)
166
268
 
269
+
167
270
  ### 📚 Documentation
168
271
 
272
+
169
273
  - Update category slug (#442)
274
+
170
275
  - Review chroma integration (#501)
171
276
 
277
+
172
278
  ### 🌀 Miscellaneous
173
279
 
280
+
174
281
  - Small improvements (#443)
282
+
175
283
  - Fix: make write_documents compatible with the DocumentStore protocol (#505)
176
284
 
177
285
  ## [integrations/chroma-v0.13.0] - 2024-02-13
178
286
 
287
+
179
288
  ### 🌀 Miscellaneous
180
289
 
290
+
181
291
  - Chroma: rename retriever (#407)
182
292
 
183
293
  ## [integrations/chroma-v0.12.0] - 2024-02-06
184
294
 
295
+
185
296
  ### 🚀 Features
186
297
 
298
+
187
299
  - Generate API docs (#262)
188
300
 
301
+
189
302
  ### 🌀 Miscellaneous
190
303
 
304
+
191
305
  - Add typing_extensions pin to Chroma integration (#295)
306
+
192
307
  - Allows filters and persistent document stores for Chroma (#342)
193
308
 
194
309
  ## [integrations/chroma-v0.11.0] - 2024-01-18
195
310
 
311
+
196
312
  ### 🐛 Bug Fixes
197
313
 
314
+
198
315
  - Chroma DocumentStore creation for pre-existing collection name (#157)
199
316
 
317
+
200
318
  ### 🌀 Miscellaneous
201
319
 
320
+
202
321
  - Mount chroma integration under `haystack_integrations.*` (#193)
322
+
203
323
  - Remove ChromaSingleQueryRetriever (#240)
204
324
 
205
325
  ## [integrations/chroma-v0.9.0] - 2023-12-20
206
326
 
327
+
207
328
  ### 🐛 Bug Fixes
208
329
 
330
+
209
331
  - Fix project URLs (#96)
210
332
 
333
+
211
334
  ### 🚜 Refactor
212
335
 
336
+
213
337
  - Use `hatch_vcs` to manage integrations versioning (#103)
214
338
 
339
+
215
340
  ### 🌀 Miscellaneous
216
341
 
342
+
217
343
  - Chore: pin chroma version (#104)
344
+
218
345
  - Fix: update to the latest Document format (#127)
219
346
 
220
347
  ## [integrations/chroma-v0.8.1] - 2023-12-05
221
348
 
349
+
222
350
  ### 🐛 Bug Fixes
223
351
 
352
+
224
353
  - Document Stores: fix protocol import (#77)
225
354
 
226
355
  ## [integrations/chroma-v0.8.0] - 2023-12-04
227
356
 
357
+
228
358
  ### 🐛 Bug Fixes
229
359
 
360
+
230
361
  - Fix license headers
231
362
 
363
+
232
364
  ### 🌀 Miscellaneous
233
365
 
366
+
234
367
  - Reorganize repository (#62)
368
+
235
369
  - Update import paths (#64)
370
+
236
371
  - Patch chroma filters tests (#67)
372
+
237
373
  - Remove Document Store decorator (#76)
238
374
 
239
375
  <!-- generated by git-cliff -->
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: chroma-haystack
3
- Version: 2.0.2
3
+ Version: 2.0.3
4
4
  Project-URL: Documentation, https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/chroma#readme
5
5
  Project-URL: Issues, https://github.com/deepset-ai/haystack-core-integrations/issues
6
6
  Project-URL: Source, https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/chroma
@@ -18,7 +18,7 @@ Classifier: Programming Language :: Python :: 3.13
18
18
  Classifier: Programming Language :: Python :: Implementation :: CPython
19
19
  Classifier: Programming Language :: Python :: Implementation :: PyPy
20
20
  Requires-Python: >=3.9
21
- Requires-Dist: chromadb<1,>=0.6.0
21
+ Requires-Dist: chromadb>=1.0.0
22
22
  Requires-Dist: haystack-ai>=2.11.0
23
23
  Description-Content-Type: text/markdown
24
24
 
@@ -23,7 +23,7 @@ classifiers = [
23
23
  "Programming Language :: Python :: Implementation :: CPython",
24
24
  "Programming Language :: Python :: Implementation :: PyPy",
25
25
  ]
26
- dependencies = ["haystack-ai>=2.11.0", "chromadb>=0.6.0,<1"]
26
+ dependencies = ["haystack-ai>=2.11.0", "chromadb>=1.0.0"]
27
27
 
28
28
  [project.urls]
29
29
  Documentation = "https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/chroma#readme"
@@ -1,3 +1,7 @@
1
+ # SPDX-FileCopyrightText: 2023-present deepset GmbH <info@deepset.ai>
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
1
5
  from .retriever import ChromaEmbeddingRetriever, ChromaQueryTextRetriever
2
6
 
3
7
  __all__ = ["ChromaEmbeddingRetriever", "ChromaQueryTextRetriever"]
@@ -1,6 +1,7 @@
1
- # SPDX-FileCopyrightText: 2023-present John Doe <jd@example.com>
1
+ # SPDX-FileCopyrightText: 2023-present deepset GmbH <info@deepset.ai>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
+
4
5
  from typing import Any, Dict, List, Optional, Union
5
6
 
6
7
  from haystack import Document, component, default_from_dict, default_to_dict
@@ -0,0 +1,7 @@
1
+ # SPDX-FileCopyrightText: 2023-present deepset GmbH <info@deepset.ai>
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from .document_store import ChromaDocumentStore
6
+
7
+ __all__ = ["ChromaDocumentStore"]
@@ -1,6 +1,7 @@
1
- # SPDX-FileCopyrightText: 2023-present John Doe <jd@example.com>
1
+ # SPDX-FileCopyrightText: 2023-present deepset GmbH <info@deepset.ai>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
+
4
5
  from typing import Any, Dict, List, Literal, Optional
5
6
 
6
7
  import chromadb
@@ -116,7 +117,8 @@ class ChromaDocumentStore:
116
117
  if "hnsw:space" not in self._metadata:
117
118
  self._metadata["hnsw:space"] = self._distance_function
118
119
 
119
- if self._collection_name in client.list_collections():
120
+ existing_collection_names = [c.name for c in client.list_collections()]
121
+ if self._collection_name in existing_collection_names:
120
122
  self._collection = client.get_collection(self._collection_name, embedding_function=self._embedding_func)
121
123
 
122
124
  if self._metadata != self._collection.metadata:
@@ -1,6 +1,7 @@
1
- # SPDX-FileCopyrightText: 2023-present John Doe <jd@example.com>
1
+ # SPDX-FileCopyrightText: 2023-present deepset GmbH <info@deepset.ai>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
+
4
5
  from haystack.document_stores.errors import DocumentStoreError
5
6
  from haystack.errors import FilterError
6
7
 
@@ -1,3 +1,7 @@
1
+ # SPDX-FileCopyrightText: 2023-present deepset GmbH <info@deepset.ai>
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
1
5
  from collections import defaultdict
2
6
  from dataclasses import dataclass
3
7
  from typing import Any, Dict, List, Optional
@@ -1,6 +1,7 @@
1
- # SPDX-FileCopyrightText: 2023-present John Doe <jd@example.com>
1
+ # SPDX-FileCopyrightText: 2023-present deepset GmbH <info@deepset.ai>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
+
4
5
  from chromadb.api.types import EmbeddingFunction
5
6
  from chromadb.utils.embedding_functions import (
6
7
  CohereEmbeddingFunction,
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: 2023-present deepset GmbH <info@deepset.ai>
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -1,6 +1,7 @@
1
- # SPDX-FileCopyrightText: 2023-present John Doe <jd@example.com>
1
+ # SPDX-FileCopyrightText: 2023-present deepset GmbH <info@deepset.ai>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
+
4
5
  import logging
5
6
  import operator
6
7
  import sys
@@ -347,8 +348,7 @@ class TestDocumentStore(CountDocumentsTest, DeleteDocumentsTest, FilterDocuments
347
348
  "hnsw:M": 103,
348
349
  },
349
350
  )
350
-
351
- new_store._ensure_initialized()
351
+ new_store._ensure_initialized()
352
352
 
353
353
  assert (
354
354
  "Collection already exists. The `distance_function` and `metadata` parameters will be ignored."
@@ -1,6 +1,7 @@
1
1
  # SPDX-FileCopyrightText: 2023-present deepset GmbH <info@deepset.ai>
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
+
4
5
  import pytest
5
6
  from haystack.document_stores.types import FilterPolicy
6
7
 
@@ -1,3 +0,0 @@
1
- from .document_store import ChromaDocumentStore
2
-
3
- __all__ = ["ChromaDocumentStore"]
@@ -1,3 +0,0 @@
1
- # SPDX-FileCopyrightText: 2023-present John Doe <jd@example.com>
2
- #
3
- # SPDX-License-Identifier: Apache-2.0
File without changes