Skip to content

Commit f66d6ba

Browse files
committed
Finalize base package: simplify to arcadedb-embedded with gRPC exclusion only
- Package renamed from arcadedb-embedded-minimal to arcadedb-embedded - Simplified JAR filtering: exclude only gRPC wire protocol (38MB savings) - Final package size: 123MB (down from 160MB, 23% reduction) - All 43 tests passing with full functionality (SQL, Cypher, Gremlin, Studio, etc.) - PyPI packages created: arcadedb-embedded and arcadedb-embedded-jre (dummy 0.0.1) - GitHub Actions workflows updated for new package structure - Trusted publisher OIDC configured and activated - Documentation fully updated to remove old minimal/headless/full terminology - Version extraction enhanced with dev/release mode support - Build scripts updated to support future base/jre variants - Implementation plan updated: JRE bundling now priority before release
1 parent 8ab6d68 commit f66d6ba

23 files changed

Lines changed: 784 additions & 496 deletions

.github/workflows/release-python-packages.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ jobs:
6666
retention-days: 5
6767

6868
publish-base:
69-
name: Publish arcadedb-embed to PyPI
69+
name: Publish arcadedb-embedded to PyPI
7070
needs: [check-release, build]
7171
if: needs.check-release.outputs.is-python-release == 'true'
7272
runs-on: ubuntu-latest

.github/workflows/test-python-bindings.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,8 @@ jobs:
131131
132132
echo "### Expected Behavior:" >> $GITHUB_STEP_SUMMARY
133133
echo "" >> $GITHUB_STEP_SUMMARY
134-
echo "- **Base package**: All 43 tests should pass (includes SQL, Cypher, Gremlin, Studio)" >> $GITHUB_STEP_SUMMARY
135-
echo "- **JRE package**: Same as base but with bundled JRE (coming soon)" >> $GITHUB_STEP_SUMMARY
134+
echo "- **Main package**: All 43 tests should pass (includes SQL, Cypher, Gremlin, Studio)" >> $GITHUB_STEP_SUMMARY
135+
echo "- **JRE package**: Same as main but with bundled JRE (coming soon)" >> $GITHUB_STEP_SUMMARY
136136
137137
- name: Upload test results
138138
if: always()
@@ -166,7 +166,7 @@ jobs:
166166
if [ "${{ needs.test.result }}" = "success" ]; then
167167
echo "✅ **All variants passed testing!**" >> $GITHUB_STEP_SUMMARY
168168
echo "" >> $GITHUB_STEP_SUMMARY
169-
echo "The ArcadeDB Python package (base variant) has been successfully built and tested." >> $GITHUB_STEP_SUMMARY
169+
echo "The ArcadeDB Python package (current variant) has been successfully built and tested." >> $GITHUB_STEP_SUMMARY
170170
else
171171
echo "❌ **Some variants failed testing**" >> $GITHUB_STEP_SUMMARY
172172
echo "" >> $GITHUB_STEP_SUMMARY

README.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
> **Python bindings for [ArcadeDB](https://github.com/ArcadeData/arcadedb)** - A multi-model database supporting Graph, Document, Key/Value, Vector, and Time Series models with extreme performance.
44
5-
[![PyPI - Base](https://img.shields.io/badge/PyPI-arcadedb--embed-blue)](https://pypi.org/project/arcadedb-embed/)
6-
[![PyPI - JRE](https://img.shields.io/badge/PyPI-arcadedb--embed--jre-blue)](https://pypi.org/project/arcadedb-embed-jre/)
5+
[![PyPI - Base](https://img.shields.io/badge/PyPI-arcadedb--embedded-blue)](https://pypi.org/project/arcadedb-embedded/)
6+
[![PyPI - JRE](https://img.shields.io/badge/PyPI-arcadedb--embedded--jre-blue)](https://pypi.org/project/arcadedb-embedded-jre/)
77
[![Tests](https://img.shields.io/badge/tests-43%2F43%20passing-brightgreen)](https://github.com/humemai/arcadedb-embedded-python/actions)
88
[![License](https://img.shields.io/badge/License-Apache%202.0-green.svg)](LICENSE)
99

@@ -16,13 +16,12 @@
1616
### Installation
1717

1818
```bash
19-
pip install arcadedb-embed # Base package (requires Java 21+)
20-
pip install arcadedb-embed-jre # With bundled JRE (coming soon)
21-
```
19+
pip install arcadedb-embedded # Requires Java 21+
20+
pip install arcadedb-embedded-jre # With bundled JRE (coming soon)
2221

2322
**Requirements:**
2423

25-
- **Base package:** Python 3.8+ and [Java 21+](https://adoptium.net/) (JRE)
24+
- **Main package:** Python 3.8+ and [Java 21+](https://adoptium.net/) (JRE)
2625
- **JRE package:** Python 3.8+ only (JRE bundled)
2726

2827
**💡 Tip:** See "JVMCI is not enabled" warnings? Install [GraalVM](https://humemai.github.io/arcadedb-embedded-python/latest/getting-started/installation/#eliminate-polyglot-warnings-optional) to fix them
@@ -126,8 +125,8 @@ result = db.query("sql", """
126125
✅ **Query Languages** - SQL, Cypher, Gremlin, MongoDB (all included)
127126
✅ **ACID Transactions** - Full transactional support
128127
✅ **Vector Search** - HNSW indexing for embeddings
129-
**Studio UI** - Web-based database browser (base package)
130-
**Self-Contained** - All JARs bundled, no external dependencies
128+
✅ **Studio UI** - Web-based database browser (included)
129+
✅ **Self-Contained** - All dependencies bundled (123MB, gRPC excluded)
131130
✅ **Production Ready** - 43/43 tests passing, actively maintained
132131
133132
---
@@ -136,10 +135,10 @@ result = db.query("sql", """
136135
137136
| Package | Size | Java Required | Studio UI | Use Case |
138137
|---------|------|---------------|-----------|----------|
139-
| **arcadedb-embed** | ~97MB | Java 21+ | | Development & Production |
140-
| **arcadedb-embed-jre** | ~170MB | None || Simplified deployment |
138+
| **arcadedb-embedded** | ~123MB | Java 21+ | | Optimized deployment |
139+
| **arcadedb-embedded-jre** | ~170MB | None | ✅ | Simplified deployment |
141140
142-
Both packages include the same features: SQL, Cypher, Gremlin, Studio UI, and all core functionality.
141+
Both packages include the same features: SQL, Cypher, Gremlin, Studio UI, and all core functionality except gRPC wire protocol.
143142
The only difference is Java runtime dependency.
144143
145144
All packages use the same import: `import arcadedb_embedded as arcadedb`

bindings/python/Dockerfile.build

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
# Docker build for ArcadeDB Python package
2-
# Builds arcadedb-embed package variants (base and jre) from minimal distribution
2+
# Builds arcadedb-embedded package variants (base and jre) with custom JAR filtering
3+
# Uses original ArcadeDB distribution but excludes gRPC wire protocol to optimize size
34
#
45
# REQUIRED BUILD ARGS (passed from build-all.sh):
56
# VARIANT - one of: base, jre
6-
# PACKAGE_NAME - e.g., arcadedb-embed, arcadedb-embed-jre
7+
# PACKAGE_NAME - e.g., arcadedb-embedded, arcadedb-embedded-jre
78
# PACKAGE_DESCRIPTION - package description
89
# ARCADEDB_TAG - version tag from pom.xml (e.g., 25.10.1-SNAPSHOT)
10+
# Default below is fallback; build-all.sh extracts and passes actual version
911

1012
ARG VARIANT=base
11-
ARG PACKAGE_NAME=arcadedb-embed
13+
ARG PACKAGE_NAME=arcadedb-embedded
1214
ARG PACKAGE_DESCRIPTION="ArcadeDB embedded Python package"
13-
ARG ARCADEDB_TAG=24.11.1
15+
ARG ARCADEDB_TAG=25.10.1-SNAPSHOT
1416

15-
# Stage 1: Use prebuilt ArcadeDB minimal image to obtain compiled JARs
16-
# We only use the minimal distribution now (includes Studio, core database)
17-
FROM arcadedata/arcadedb-minimal:${ARCADEDB_TAG} AS java-builder
17+
# Stage 1: Use prebuilt ArcadeDB image to obtain compiled JARs
18+
# We use the original distribution and selectively exclude only gRPC for Python use cases
19+
FROM arcadedata/arcadedb:${ARCADEDB_TAG} AS java-builder
1820

1921
# nothing to do here; jars will be copied from /home/arcadedb/lib in the python-builder stage
2022

0 commit comments

Comments
 (0)