Skip to content

Commit 253cd61

Browse files
committed
feat: add GitHub Pages PyPI simple index for wheel distribution
- Add update-pypi-index job to auto-generate PyPI-compatible index on gh-pages - Users can install with: pip install arcadedb-embedded --index-url https://humemai.github.io/arcadedb-embedded-python/simple/ - Update README with GitHub Pages installation instructions (temporary until PyPI size limit approved) - Index lists all wheels from all releases, pip auto-selects correct platform
1 parent 7208162 commit 253cd61

3 files changed

Lines changed: 79 additions & 2 deletions

File tree

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

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,3 +282,68 @@ jobs:
282282
283283
---
284284
**Based on ArcadeDB v${{ needs.validate-version.outputs.base-version }}**
285+
286+
update-pypi-index:
287+
name: Update PyPI simple index on GitHub Pages
288+
needs: [validate-version, github-release]
289+
runs-on: ubuntu-latest
290+
permissions:
291+
contents: write
292+
env:
293+
GH_TOKEN: ${{ github.token }}
294+
steps:
295+
- name: Checkout gh-pages branch
296+
uses: actions/checkout@v4
297+
with:
298+
ref: gh-pages
299+
300+
- name: Generate PyPI simple index
301+
shell: bash
302+
env:
303+
VERSION: ${{ needs.validate-version.outputs.python-version }}
304+
REPO: ${{ github.repository }}
305+
run: |
306+
# Create simple index directory structure
307+
mkdir -p simple/arcadedb-embedded
308+
309+
# Get all releases
310+
echo "📋 Fetching all releases..."
311+
gh release list --limit 100 --json tagName,isPrerelease,assets > releases.json
312+
313+
# Generate index.html
314+
cat > simple/arcadedb-embedded/index.html <<'EOF'
315+
<!DOCTYPE html>
316+
<html>
317+
<head>
318+
<title>Links for arcadedb-embedded</title>
319+
<meta name="pypi:repository-version" content="1.0">
320+
</head>
321+
<body>
322+
<h1>Links for arcadedb-embedded</h1>
323+
EOF
324+
325+
# Add links for each wheel from each release
326+
jq -r '.[] | select(.assets | length > 0) |
327+
.tagName as $tag |
328+
.assets[] |
329+
select(.name | endswith(".whl")) |
330+
"<a href=\"https://github.com/${{ github.repository }}/releases/download/\($tag)/\(.name)\">\(.name)</a><br/>"' \
331+
releases.json >> simple/arcadedb-embedded/index.html
332+
333+
# Close HTML
334+
cat >> simple/arcadedb-embedded/index.html <<'EOF'
335+
</body>
336+
</html>
337+
EOF
338+
339+
echo "✅ Generated PyPI simple index:"
340+
cat simple/arcadedb-embedded/index.html
341+
342+
- name: Commit and push index
343+
shell: bash
344+
run: |
345+
git config user.name "github-actions[bot]"
346+
git config user.email "github-actions[bot]@users.noreply.github.com"
347+
git add simple/
348+
git commit -m "Update PyPI simple index for v${{ needs.validate-version.outputs.python-version }}" || echo "No changes to commit"
349+
git push

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,15 @@
1717
### Installation
1818

1919
```bash
20+
# Install from GitHub (recommended until PyPI size limit is approved)
21+
pip install arcadedb-embedded --index-url https://humemai.github.io/arcadedb-embedded-python/simple/
22+
23+
# Or install from PyPI (once size limit is approved)
2024
pip install arcadedb-embedded
2125
```
2226

27+
> **Note:** We're temporarily using GitHub Pages while awaiting PyPI size limit approval (~160MB wheels, default limit 100MB).
28+
2329
**Requirements:**
2430

2531
- **Python 3.8+** only - No Java installation required! (JRE is bundled)

bindings/python/README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,19 @@ Quick links:
2525
### Installation
2626

2727
```bash
28-
# Install arcadedb-embedded with bundled JRE - No Java installation required!
28+
# Install from GitHub (recommended until PyPI size limit is approved)
29+
pip install arcadedb-embedded --index-url https://humemai.github.io/arcadedb-embedded-python/simple/
30+
31+
# Or install from PyPI (once size limit is approved)
2932
pip install arcadedb-embedded
3033

3134
# Development version (latest features, may be unstable)
32-
pip install --pre arcadedb-embedded
35+
pip install --pre arcadedb-embedded --index-url https://humemai.github.io/arcadedb-embedded-python/simple/
3336
```
3437

38+
!!! note "PyPI Size Limit"
39+
We're temporarily hosting wheels on GitHub Pages while awaiting PyPI size limit approval (our wheels are ~160MB, default limit is 100MB). The `--index-url` flag tells pip to use our GitHub Pages index instead of PyPI.
40+
3541
**Requirements:**
3642

3743
- **Python 3.8+ only** - No Java installation required!

0 commit comments

Comments
 (0)