Skip to content

Commit 9c6c0e3

Browse files
committed
docs: align Python platform support
1 parent 10c1ea0 commit 9c6c0e3

7 files changed

Lines changed: 42 additions & 77 deletions

File tree

bindings/python/README.md

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

33
Native Python bindings for ArcadeDB - the multi-model database that supports Graph, Document, Key/Value, Search Engine, Time Series, and Vector models.
44

5-
**Status**: ✅ Production Ready | **Tests**: 252 Passing | **Platforms**: 6 Supported
5+
**Status**: ✅ Production Ready | **Tests**: 252 Passing | **Platforms**: 3 Supported
66

77
---
88

@@ -31,10 +31,9 @@ uv pip install arcadedb-embedded
3131
**Requirements:**
3232

3333
- **Python 3.10–3.14** (packaged/tested on CPython 3.12) - No Java installation required!
34-
- **Supported Platforms**: Prebuilt wheels for **6 platforms**
34+
- **Supported Platforms**: Prebuilt wheels for **3 platforms**
3535
- Linux: x86_64, ARM64
36-
- macOS: Intel (x86_64), Apple Silicon (ARM64)
37-
- Windows: x86_64, ARM64
36+
- macOS: Apple Silicon (ARM64)
3837
- **Development version**: Use `--pre` flag to install `.devN` versions
3938

4039
!!! tip "Development Releases"
@@ -72,7 +71,7 @@ with arcadedb.create_database("./mydb") as db:
7271
## ✨ Features
7372

7473
-**No Java Installation Required**: Bundled JRE (~249MB uncompressed)
75-
- 🌍 **6 Platforms Supported**: Linux, macOS, Windows (x86_64 + ARM64)
74+
- 🌍 **3 Platforms Supported**: Linux (x86_64, ARM64), macOS (ARM64)
7675
- 🚀 **Embedded Mode**: Direct database access in Python process (no network)
7776
- 🌐 **Server Mode**: Optional HTTP server with Studio web interface
7877
- 📦 **Self-contained**: All dependencies bundled (~116MB wheel)
@@ -89,7 +88,7 @@ with arcadedb.create_database("./mydb") as db:
8988

9089
The `arcadedb-embedded` package is platform-specific and self-contained:
9190

92-
**Package Contents (all platforms, ballpark):**
91+
**Package Contents (all platforms):**
9392

9493
- **Wheel size (compressed)**: ~116MB
9594
- **ArcadeDB JARs (uncompressed)**: ~32MB
@@ -104,7 +103,7 @@ Import: `import arcadedb_embedded as arcadedb`
104103

105104
## 🧪 Testing
106105

107-
**Status**: 252 tests + 7 example scripts passing on all 6 platforms
106+
**Status**: 252 tests + example scripts passing on all 3 platforms
108107

109108
```bash
110109
# Run all tests
@@ -123,7 +122,7 @@ See [tests/README.md](tests/README.md) for detailed test documentation.
123122
**Requirements vary by platform:**
124123

125124
- **Linux**: Docker (handles all dependencies)
126-
- **macOS/Windows**: Java 25+ JDK with jlink (to build the bundled JRE)
125+
- **macOS**: Java 25+ JDK with jlink (to build the bundled JRE)
127126

128127
### Setup Virtual Environment
129128

@@ -156,7 +155,6 @@ uv pip install -e ".[test]"
156155
# Build for specific platform
157156
./build.sh linux/amd64 # Requires Docker
158157
./build.sh darwin/arm64 # Requires Java JDK (native build)
159-
./build.sh windows/arm64 # Requires Java JDK (native build)
160158
# etc.
161159
```
162160

@@ -181,7 +179,7 @@ Built wheels will be in `dist/`. **[Build instructions](https://humemai.github.i
181179
- `windows/amd64` (Native build on Windows x64)
182180
- `windows/arm64` (Native build on Windows ARM64)
183181

184-
> **Developer Note:** See [docs/development/build-architecture.md](docs/development/build-architecture.md) for comprehensive documentation of the multi-platform build architecture, including how we achieve platform-specific JRE bundling across all 6 platforms on GitHub Actions.
182+
> **Developer Note:** See [docs/development/build-architecture.md](docs/development/build-architecture.md) for comprehensive documentation of the multi-platform build architecture, including how we achieve platform-specific JRE bundling across the supported platforms on GitHub Actions.
185183
186184
## Development
187185

bindings/python/build.sh

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,7 @@ print_usage() {
4343
echo " Auto-detected if not specified"
4444
echo " linux/amd64 Linux x86_64 (Docker build)"
4545
echo " linux/arm64 Linux ARM64 (Docker build, native ARM64 runner)"
46-
echo " darwin/amd64 macOS x86_64 (native build on macOS)"
4746
echo " darwin/arm64 macOS ARM64 Apple Silicon (native build on macOS)"
48-
echo " windows/amd64 Windows x86_64 (native build on Windows)"
49-
echo " windows/arm64 Windows ARM64 (native build on Windows)"
5047
echo ""
5148
echo "PYTHON_VERSION:"
5249
echo " Python version for wheel (default: 3.12)"
@@ -57,7 +54,7 @@ print_usage() {
5754
echo " If omitted, JARs are pulled from arcadedata/arcadedb:<version>"
5855
echo ""
5956
echo "Build Methods:"
60-
echo " Native: macOS and Windows build natively on their platforms"
57+
echo " Native: macOS builds natively on its platform"
6158
echo " Docker: Linux uses Docker for manylinux compliance"
6259
echo ""
6360
echo "Examples:"
@@ -70,7 +67,7 @@ print_usage() {
7067
echo "Package features:"
7168
echo " ✅ Bundled platform-specific JRE (no Java required)"
7269
echo " ✅ Optimized JAR selection (see jar_exclusions.txt)"
73-
echo " ✅ Multi-platform support (6 platforms)"
70+
echo " ✅ Multi-platform support (3 platforms)"
7471
echo " 📦 Size: ~215MB (compressed), ~289MB (installed)"
7572
echo ""
7673
}

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

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,19 @@ This document describes the build architecture for creating platform-specific Py
44

55
## Overview
66

7-
**Goal:** Distribute a single `arcadedb-embedded` package that works on 6 platforms with **zero Java installation required**.
7+
**Goal:** Distribute a single `arcadedb-embedded` package that works on 3 platforms with **zero Java installation required**.
88

9-
**Achievement:** 6 platform-specific wheels (~215MB each) with bundled platform-specific JRE, built and tested on GitHub Actions using native runners.
9+
**Achievement:** 3 platform-specific wheels (~215MB each) with bundled platform-specific JRE, built and tested on GitHub Actions using native runners.
1010

1111
## Supported Platforms
1212

1313
| Platform | Wheel Size | JRE Size | Runner | Build Method | Notes |
1414
|----------|-----------|----------|---------|--------------|-------|
1515
| **linux/amd64** | 215.0M | 62.7M | `ubuntu-24.04` | Docker native | Most common Linux platform |
1616
| **linux/arm64** | 214.1M | 61.8M | `ubuntu-24.04-arm` | Docker native | ARM64 servers, Raspberry Pi |
17-
| **darwin/amd64** | 211.9M | 55.3M | `macos-15-intel` | Native build | Intel Macs (2006-2020) |
1817
| **darwin/arm64** | 210.8M | 53.9M | `macos-15` | Native build | Apple Silicon Macs (2020+) |
19-
| **windows/amd64** | 211.6M | 51.6M | `windows-2025` | Native build | 64-bit Windows |
20-
| **windows/arm64** | 209.4M | 47.6M | `windows-11-arm` | Native build | ARM64 Windows (Surface, etc.) |
2118

22-
**All platforms:**
19+
**All supported platforms:**
2320

2421
- ✅ 252 tests passing
2522
- ✅ 226.0M JARs (83 files, identical across platforms)
@@ -37,10 +34,10 @@ We use a **hybrid build approach** to create platform-specific wheels:
3734
- linux/arm64: Native Docker on `ubuntu-24.04-arm` (GitHub ARM64 runner)
3835
- Builds platform-specific JRE via `jlink`
3936

40-
2. **macOS/Windows platforms:** Native builds
41-
- Uses platform-specific GitHub Actions runners
42-
- Native `jlink` creates correct JRE for each platform
43-
- Pre-filtered JARs from artifact (eliminates glob issues)
37+
2. **macOS platform:** Native builds
38+
- Uses platform-specific GitHub Actions runner
39+
- Native `jlink` creates correct JRE for the platform
40+
- Pre-filtered JARs from artifact (eliminates glob issues)
4441

4542
**Critical:** All wheels are **platform-specific** (not `py3-none-any`). This is achieved by:
4643

@@ -318,8 +315,8 @@ bindings/python/
318315
- Uploads artifact for native builds
319316
320317
2. **test job matrix** (lines 91-364)
321-
- Builds all 6 platforms
322-
- Platform-specific steps (native runners, artifact download, tests)
318+
- Builds 3 platforms
319+
- Platform-specific steps (native runners, artifact download, tests)
323320
324321
3. **Test parsing** (lines 200-237)
325322
- JUnit XML generation and parsing

bindings/python/docs/development/ci-setup.md

Lines changed: 17 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Overview
44

5-
The CI/CD workflows now support building and releasing across **6 platforms** for a total of **6 wheel packages** per release, all under the single `arcadedb-embedded` package.
5+
The CI/CD workflows now support building and releasing across **3 platforms** for a total of **15 wheel packages** per release (3 platforms × 5 Python versions), all under the single `arcadedb-embedded` package.
66

77
## Build Matrix
88

@@ -14,38 +14,29 @@ The CI/CD workflows now support building and releasing across **6 platforms** fo
1414

1515
- **linux/amd64**: Linux on x86_64 (ubuntu-24.04, Docker build)
1616
- **linux/arm64**: Linux on ARM64 (ubuntu-24.04-arm, Docker build)
17-
- **darwin/amd64**: macOS on Intel (macos-15-intel, native build)
1817
- **darwin/arm64**: macOS on Apple Silicon M1/M2/M3/M4 (macos-15, native build)
19-
- **windows/amd64**: Windows on x86_64 (windows-2025, native build)
20-
- **windows/arm64**: Windows on ARM64 (windows-11-arm, native build)
2118

2219
### Total Artifacts
2320

24-
**6 wheels per release**: 1 package × 6 platforms = 6 wheels
21+
**15 wheels per release**: 1 package × 3 platforms × 5 Python versions = 15 wheels
2522

2623
## Workflow Changes
2724

2825
### `test-python-bindings.yml`
2926

30-
- **Matrix**: `platform: [linux/amd64, linux/arm64, darwin/amd64, darwin/arm64, windows/amd64, windows/arm64]`
27+
- **Matrix**: `platform: [linux/amd64, linux/arm64, darwin/arm64]` and `python-version: [3.10, 3.11, 3.12, 3.13, 3.14]`
3128
- **Runners**: All native (no QEMU emulation)
3229
- ubuntu-24.04 (Linux x64)
3330
- ubuntu-24.04-arm (Linux ARM64)
34-
- macos-15-intel (macOS Intel)
3531
- macos-15 (macOS Apple Silicon)
36-
- windows-2025 (Windows x64)
37-
- windows-11-arm (Windows ARM64)
38-
- **Jobs**: 6 total (one per platform for testing)
39-
- **Artifacts**: `wheel-{platform}-test` (6 artifacts)
32+
- **Jobs**: 15 total (3 platforms × 5 Python versions)
33+
- **Artifacts**: `wheel-{platform}-py{version}` (15 artifacts)
4034

4135
### `release-python-packages.yml`
4236

43-
- **Matrix**: `platform: [linux/amd64, linux/arm64, darwin/amd64, darwin/arm64, windows/amd64, windows/arm64]`
44-
- **Runners**: All native (pinned versions for reproducibility)
45-
- **Jobs**: 6 build jobs + 1 publish job (7 total)
46-
- **Artifacts**: `wheel-{platform}` (6 artifacts)
37+
- **Artifacts**: `wheel-{platform}-py{version}` (15 artifacts)
4738
- **Publish Job**:
48-
- `publish-pypi`: Collects all 6 wheels and publishes to `arcadedb-embedded`
39+
- `publish-pypi`: Collects all 15 wheels and publishes to `arcadedb-embedded`
4940

5041
## GitHub Repository Setup Required
5142

@@ -93,34 +84,25 @@ You need to create one environment in GitHub repository settings:
9384
4. **Monitor the workflow**:
9485
- Go to Actions tab
9586
- Watch `Build and Release Python Packages to PyPI`
96-
- Check that 6 wheels are built and publish job succeeds
87+
- Check that 15 wheels are built and publish job succeeds
9788

9889
## Validation
9990

10091
### Expected Artifacts
10192

10293
After a successful release, you should see:
10394

104-
- **6 wheel files** on PyPI for `arcadedb-embedded` (one per platform):
105-
- linux/amd64: ~215MB wheel
106-
- linux/arm64: ~215MB wheel
107-
- darwin/amd64: ~215MB wheel
108-
- darwin/arm64: ~215MB wheel
109-
- windows/amd64: ~215MB wheel
110-
- windows/arm64: ~215MB wheel
95+
- **15 wheel files** on PyPI for `arcadedb-embedded` (3 platforms × 5 Python versions)
11196

11297
### Test Results (CI run #96)
11398

114-
All 6 platforms passing 252 tests and 7 example scripts:
99+
All 3 platforms passing 252 tests and example scripts:
115100

116101
| Platform | Wheel Size | JRE Size | Tests |
117102
|----------|-----------|----------|-------|
118103
| linux/amd64 | 215.0M | 62.7M | 252 passed ✅ |
119104
| linux/arm64 | 214.1M | 61.8M | 252 passed ✅ |
120-
| darwin/amd64 | 211.9M | 55.3M | 252 passed ✅ |
121105
| darwin/arm64 | 210.8M | 53.9M | 252 passed ✅ |
122-
| windows/amd64 | 211.6M | 51.6M | 252 passed ✅ |
123-
| windows/arm64 | 209.4M | 47.6M | 252 passed ✅ |
124106

125107
**All platforms include:**
126108

@@ -136,10 +118,7 @@ All platforms use native GitHub runners:
136118

137119
- **linux/amd64**: ubuntu-24.04 (Docker build)
138120
- **linux/arm64**: ubuntu-24.04-arm (Docker build, native ARM64)
139-
- **darwin/amd64**: macos-15-intel (native build)
140121
- **darwin/arm64**: macos-15 (native build)
141-
- **windows/amd64**: windows-2025 (native build)
142-
- **windows/arm64**: windows-11-arm (native build)
143122

144123
### Build Time Expectations
145124

@@ -164,7 +143,6 @@ cd bindings/python
164143
# Build for specific platform (requires Docker for Linux builds)
165144
./build.sh --platform linux/amd64
166145
./build.sh --platform darwin/arm64
167-
./build.sh --platform windows/amd64
168146
169147
# Check the wheels
170148
ls -lh dist/
@@ -175,13 +153,13 @@ ls -lh dist/
175153
```bash
176154
cd bindings/python
177155
178-
for platform in linux/amd64 linux/arm64 darwin/amd64 darwin/arm64 windows/amd64 windows/arm64; do
156+
for platform in linux/amd64 linux/arm64 darwin/arm64; do
179157
echo "Building $platform..."
180158
./build.sh --platform "$platform"
181159
done
182160
183-
# Should have 6 wheels
184-
ls -1 dist/*.whl | wc -l # Should output: 6
161+
# Should have 3 wheels
162+
ls -1 dist/*.whl | wc -l # Should output: 3
185163
```
186164

187165
## Troubleshooting
@@ -202,26 +180,23 @@ All platforms now use platform-specific JVM library paths:
202180
203181
### Wheel count mismatch
204182
205-
- The publish job validates that exactly 6 wheels exist
183+
- The publish job validates that exactly 15 wheels exist
206184
- If validation fails, check the build matrix jobs for failures
207-
- Ensure all 6 platform builds succeeded
185+
- Ensure all 3 platform builds succeeded
208186
209187
### Runner availability
210188
211189
All platforms use pinned runner versions for reproducibility:
212190
213191
- ubuntu-24.04 (guaranteed available)
214192
- ubuntu-24.04-arm (GitHub-hosted ARM64)
215-
- macos-15-intel (Intel Mac, pinned version)
216193
- macos-15 (Apple Silicon, pinned version)
217-
- windows-2025 (Windows x64, pinned version)
218-
- windows-11-arm (Windows ARM64, GitHub-hosted)
219194
220195
## Next Steps
221196
222197
1. **Create GitHub environment** (`pypi`)
223198
2. **Set up PyPI trusted publisher** for `arcadedb-embedded`
224199
3. **Test with a dev tag**: `git tag 25.10.1.dev0 && git push origin 25.10.1.dev0`
225-
4. **Verify 6 wheels are published** to PyPI (one per platform)
226-
5. **Test installation** on all 6 platforms
200+
4. **Verify 15 wheels are published** to PyPI (3 platforms × 5 Python versions)
201+
5. **Test installation** on the supported platforms
227202
6. **Verify no Java required** on end-user systems (JRE bundled)

bindings/python/docs/getting-started/distributions.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,18 @@ The package includes everything you need:
2323
- **ArcadeDB JARs** (~32MB, uncompressed): Core database with all features
2424
- **Bundled JRE** (~249MB, uncompressed): Platform-specific Java 25 runtime (via jlink)
2525

26-
**Total:** ~116MB compressed wheel, ~281MB uncompressed installed size (ballpark)
26+
**Total:** ~116MB compressed wheel, ~281MB uncompressed installed size
2727

2828
## Platform Support
2929

30-
Pre-built **platform-specific** wheels are available for **6 platforms**. Sizes vary slightly by platform, but the ballpark totals are consistent (see size breakdown below).
30+
Pre-built **platform-specific** wheels are available for **3 platforms**. Sizes vary slightly by platform, but the ballpark totals are consistent (see size breakdown below).
3131

3232
**Key Features:**
3333

3434
- ✅ All platforms use **platform-specific wheels** (not universal)
3535
- ✅ uv pip automatically selects the correct wheel for your system
3636
- ✅ Each platform has its own bundled JRE optimized for that architecture
37-
- ✅ All 6 platforms tested and verified (252/252 tests passing)
37+
- ✅ All supported platforms tested and verified (252/252 tests passing)
3838
- ✅ Built on native runners (no emulation) for optimal performance
3939

4040
## What's Included
@@ -141,7 +141,6 @@ uv pip automatically selects the correct platform-specific wheel:
141141
```bash
142142
# On Linux x64, installs: arcadedb_embedded-X.Y.Z-py3-none-manylinux_2_17_x86_64.whl
143143
# On macOS ARM64, installs: arcadedb_embedded-X.Y.Z-py3-none-macosx_11_0_arm64.whl
144-
# On Windows x64, installs: arcadedb_embedded-X.Y.Z-py3-none-win_amd64.whl
145144
# etc.
146145
```
147146

bindings/python/docs/getting-started/installation.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@ uv pip install arcadedb-embedded
1111
**Requirements:**
1212

1313
- **Python 3.10–3.14** (packaged; primary testing on 3.12) - No Java installation required!
14-
- **Supported Platforms**: Prebuilt wheels for **6 platforms**
14+
- **Supported Platforms**: Prebuilt wheels for **3 platforms**
1515
- Linux: x86_64, ARM64
16-
- macOS: Intel (x86_64), Apple Silicon (ARM64)
17-
- Windows: x86_64, ARM64
16+
- macOS: Apple Silicon (ARM64)
1817

1918
## What's Included
2019

bindings/python/tests/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,4 +98,4 @@ db = server.create_database("mydb")
9898

9999
- **Questions?** See the [Testing Guide](https://humemai.github.io/arcadedb-embedded-python/latest/development/testing/)
100100
- **Found a bug?** [Open an issue](https://github.com/humemai/arcadedb-embedded-python/issues)
101-
- **Contributing?** Read [Contributing Guide](https://github.com/humemai/arcadedb-embedded-python/blob/python-embedded/CONTRIBUTING.md)
101+
- **Contributing?** Read [Contributing Guide](https://github.com/humemai/arcadedb-embedded-python/blob/main/CONTRIBUTING.md)

0 commit comments

Comments
 (0)