@@ -123,10 +123,10 @@ jobs:
123123
124124** Steps:**
125125
126- 1 . Download 84 JARs from ArcadeDB Docker image
126+ 1 . Download the ArcadeDB JAR set from the upstream Docker image
1271272 . Read ` jar_exclusions.txt ` (single source of truth)
128- 3 . Filter out excluded JARs (currently: ` arcadedb-grpcw-*.jar ` )
129- 4 . Result: 83 JARs (167.4M)
128+ 3 . Filter out excluded JARs (for example ` arcadedb-grpcw-*.jar ` , ` arcadedb-ha-raft -*.jar` )
129+ 4 . Result: a smaller filtered JAR set used by native builds
1301305 . Upload as artifact for native builds
131131
132132** Why Ubuntu?** Bash filtering works reliably and avoids cross-platform glob differences.
@@ -169,8 +169,10 @@ jobs:
169169** Location:** ` bindings/python/scripts/jar_exclusions.txt `
170170
171171** Format:** One glob pattern per line
172- ```
172+
173+ ``` text
173174arcadedb-grpcw-*.jar
175+ arcadedb-ha-raft-*.jar
174176```
175177
176178** Used by:**
@@ -179,7 +181,7 @@ arcadedb-grpcw-*.jar
1791812 . ` bindings/python/scripts/Dockerfile.build ` (Docker builds)
1801823 . ` bindings/python/scripts/setup_jars.py ` (documentation/validation)
181183
182- ** Result:** ~ 40MB savings per wheel (gRPC is ~ 38MB)
184+ ** Result:** The wheel excludes optional Java components that are not part of the default Python distribution.
183185
184186### Implementation
185187
@@ -195,7 +197,7 @@ arcadedb-grpcw-*.jar
195197- ` download-jars ` job: Filters once on Ubuntu (reliable bash)
196198- Native builds: Use pre-filtered JARs from artifact
197199- Docker builds: Filter independently (different source)
198- - ** Result:** Consistent 83 JARs across all platforms
200+ - ** Result:** Consistent filtered JAR contents across all platforms
199201
200202## Test Parsing
201203
@@ -228,13 +230,13 @@ errors=$(grep -oE 'errors="[0-9]+"' test-results.xml | grep -oE '[0-9]+')
228230``` dockerfile
229231# Stage 1: java-builder (downloads JARs from ArcadeDB image)
230232FROM arcadedb/arcadedb:24.11.1 AS java-builder
231- # Downloads 84 JARs to /jars
233+ # Downloads the upstream JAR set to /jars
232234
233235# Stage 2: jre-builder (filters JARs, creates JRE)
234236FROM amazoncorretto:25 AS jre-builder
235237COPY --from=java-builder /jars/*.jar /jars/
236238# Reads jar_exclusions.txt
237- # Filters to 83 JARs (167.4M)
239+ # Filters out excluded JARs before packaging
238240# Runs jlink → creates /jre (platform-specific!)
239241
240242# Stage 3: python-builder (builds wheel)
@@ -246,8 +248,8 @@ COPY --from=jre-builder /jre /jre
246248
247249### Key Fix: Copy from jre-builder, not java-builder
248250
249- ** Bug:** Originally copied from ` java-builder ` → got 84 JARs (unfiltered)
250- ** Fix:** Copy from ` jre-builder ` → gets 83 JARs ( filtered)
251+ ** Bug:** Originally copied from ` java-builder ` → got unfiltered JARs
252+ ** Fix:** Copy from ` jre-builder ` → gets the filtered JAR set
251253
252254## Native Build Script
253255
@@ -311,7 +313,7 @@ Since the runner itself is ARM64, Docker builds run natively without emulation.
311313
312314# # File Structure
313315
314- ```
316+ ` ` ` text
315317bindings/python/
316318├── scripts/build.sh # Main build entrypoint
317319├── scripts/build-native.sh # Native builds (macOS)
@@ -360,7 +362,7 @@ bindings/python/
360362
361363# ## Issue 3: Docker Copied Unfiltered JARs
362364
363- **Problem:** `python-builder` copied from `java-builder` (84 JARs) instead of `jre-builder` (83 JARs).
365+ **Problem:** `python-builder` copied from `java-builder` (unfiltered JARs) instead of `jre-builder` (filtered JARs).
364366
365367**Solution:** Change `COPY --from=java-builder` to `COPY --from=jre-builder`.
366368
0 commit comments