Skip to content

Commit af75193

Browse files
committed
fix: correct RID instantiation in Database class
1 parent 96fde02 commit af75193

2 files changed

Lines changed: 15 additions & 13 deletions

File tree

bindings/python/docs/development/build-architecture.md

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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
127127
2. 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
130130
5. 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
173174
arcadedb-grpcw-*.jar
175+
arcadedb-ha-raft-*.jar
174176
```
175177

176178
**Used by:**
@@ -179,7 +181,7 @@ arcadedb-grpcw-*.jar
179181
2. `bindings/python/scripts/Dockerfile.build` (Docker builds)
180182
3. `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)
230232
FROM 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)
234236
FROM amazoncorretto:25 AS jre-builder
235237
COPY --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
315317
bindings/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

bindings/python/src/arcadedb_embedded/core.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ def to_java_rid(self, value):
260260
return value.getIdentity()
261261
if isinstance(value, str):
262262
RID = jpype.JClass("com.arcadedb.database.RID")
263-
return RID(self._java_db, value)
263+
return RID(value)
264264
if hasattr(value, "get_identity"):
265265
return value.get_identity()
266266
return value

0 commit comments

Comments
 (0)