Skip to content

Commit d5647f2

Browse files
committed
fix: update GitHub Actions artifact actions from v3 to v4
- Update all workflow files to use actions/upload-artifact@v4 - Update all workflow files to use actions/download-artifact@v4 - Fixes CI pipeline failures due to deprecated v3 artifact actions - Affects: v2-api-tests.yml, v2-api-pr-validation.yml, v2-api-nightly.yml, v2-api-release.yml
1 parent 2121660 commit d5647f2

File tree

13 files changed

+5132
-14
lines changed

13 files changed

+5132
-14
lines changed

.DS_Store

6 KB
Binary file not shown.

.github/workflows/v2-api-nightly.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ jobs:
9797
9898
- name: Upload test artifacts
9999
if: always()
100-
uses: actions/upload-artifact@v3
100+
uses: actions/upload-artifact@v4
101101
with:
102102
name: nightly-v2-chroma-${{ matrix.chroma-version }}-java-${{ matrix.java-version }}
103103
path: |
@@ -287,7 +287,7 @@ jobs:
287287

288288
- name: Upload stress test results
289289
if: always()
290-
uses: actions/upload-artifact@v3
290+
uses: actions/upload-artifact@v4
291291
with:
292292
name: stress-test-results-v2
293293
path: |
@@ -302,7 +302,7 @@ jobs:
302302

303303
steps:
304304
- name: Download all artifacts
305-
uses: actions/download-artifact@v3
305+
uses: actions/download-artifact@v4
306306
with:
307307
path: test-artifacts
308308

.github/workflows/v2-api-pr-validation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ jobs:
258258
259259
- name: Upload quality reports
260260
if: always()
261-
uses: actions/upload-artifact@v3
261+
uses: actions/upload-artifact@v4
262262
with:
263263
name: quality-reports-v2
264264
path: |

.github/workflows/v2-api-release.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ jobs:
139139
cat release-notes.md >> $GITHUB_STEP_SUMMARY
140140
141141
- name: Upload release artifacts
142-
uses: actions/upload-artifact@v3
142+
uses: actions/upload-artifact@v4
143143
with:
144144
name: release-artifacts-v2
145145
path: |
@@ -197,7 +197,7 @@ jobs:
197197
198198
- name: Upload compatibility results
199199
if: always()
200-
uses: actions/upload-artifact@v3
200+
uses: actions/upload-artifact@v4
201201
with:
202202
name: compatibility-chroma-${{ matrix.chroma-version }}-java-${{ matrix.java-version }}
203203
path: compatibility-results.txt
@@ -224,7 +224,7 @@ jobs:
224224
gpg-passphrase: MAVEN_GPG_PASSPHRASE
225225

226226
- name: Download release artifacts
227-
uses: actions/download-artifact@v3
227+
uses: actions/download-artifact@v4
228228
with:
229229
name: release-artifacts-v2
230230
path: ./release

.github/workflows/v2-api-tests.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ jobs:
159159
160160
- name: Upload test results
161161
if: always()
162-
uses: actions/upload-artifact@v3
162+
uses: actions/upload-artifact@v4
163163
with:
164164
name: test-results-v2-chroma-${{ matrix.chroma-version }}-java-${{ matrix.java-version }}
165165
path: |
@@ -168,7 +168,7 @@ jobs:
168168
169169
- name: Upload coverage reports
170170
if: success()
171-
uses: actions/upload-artifact@v3
171+
uses: actions/upload-artifact@v4
172172
with:
173173
name: coverage-v2-chroma-${{ matrix.chroma-version }}-java-${{ matrix.java-version }}
174174
path: target/site/jacoco/
@@ -197,7 +197,7 @@ jobs:
197197

198198
steps:
199199
- name: Download all test results
200-
uses: actions/download-artifact@v3
200+
uses: actions/download-artifact@v4
201201
with:
202202
path: test-artifacts
203203

@@ -292,7 +292,7 @@ jobs:
292292
CHROMA_URL: http://localhost:8000
293293

294294
- name: Upload performance results
295-
uses: actions/upload-artifact@v3
295+
uses: actions/upload-artifact@v4
296296
with:
297297
name: performance-results-v2
298298
path: target/performance-reports/

CLAUDE.md

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,21 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
2828
- `HF_API_KEY` - Required for HuggingFace embedding tests
2929
- `CHROMA_VERSION` - Specifies ChromaDB version for integration tests
3030

31-
## Architecture Overview
31+
## API Design Principles (V2)
3232

33-
### Core Client Structure
34-
The client follows a standard Swagger/OpenAPI generated client pattern with custom enhancements:
33+
### Radical Simplicity
34+
The V2 API follows principles of radical simplicity based on successful Java libraries like OkHttp, Retrofit, and Jedis:
35+
36+
1. **Single Configuration Pattern**: Use ONLY fluent builders, NEVER Consumer<Builder> patterns
37+
2. **Flat Package Structure**: All public API classes in `tech.amikos.chromadb.v2` package (no sub-packages)
38+
3. **One Way to Do Things**: Each task has exactly one idiomatic approach
39+
4. **Minimal Public API Surface**: ~20-25 classes total (following OkHttp's model)
40+
5. **Concrete Over Abstract**: Prefer concrete classes over interfaces where possible
41+
42+
### Architecture Overview
43+
44+
#### V1 Client (Legacy - Maintained for Compatibility)
45+
The V1 client (`tech.amikos.chromadb`) follows a standard Swagger/OpenAPI generated client pattern:
3546

3647
1. **Generated API Layer** (`target/generated-sources/swagger/`)
3748
- Auto-generated from OpenAPI specifications
@@ -48,6 +59,31 @@ The client follows a standard Swagger/OpenAPI generated client pattern with cust
4859
- Each implements `EmbeddingFunction` interface
4960
- Default embedding uses ONNX Runtime for local inference
5061

62+
#### V2 Client (Recommended - Radical Simplicity)
63+
The V2 client (`tech.amikos.chromadb.v2`) implements radical simplicity:
64+
65+
1. **Single Flat Package** - All classes in `tech.amikos.chromadb.v2`
66+
- No sub-packages for auth, model, client, etc.
67+
- Everything discoverable in one location
68+
69+
2. **Core Classes** (~20 total)
70+
- `ChromaClient` - Single client class with builder
71+
- `Collection` - Concrete collection class (not interface)
72+
- `Metadata` - Strongly-typed metadata with builder
73+
- Query builders: `QueryBuilder`, `AddBuilder`, etc.
74+
- Model classes: `Where`, `WhereDocument`, `Include`
75+
- Auth: `AuthProvider` interface with implementations
76+
- Exceptions: Strongly-typed exception hierarchy
77+
78+
3. **Builder-Only Pattern**
79+
```java
80+
// Only way to query - no Consumer<Builder> alternative
81+
collection.query()
82+
.where(Where.eq("type", "article"))
83+
.nResults(10)
84+
.execute();
85+
```
86+
5187
### Key Design Patterns
5288

5389
1. **Authentication Handling**

0 commit comments

Comments
 (0)