Skip to content

Commit fc89c45

Browse files
committed
fix: enhance sync-upstream script to backup and restore README during rebase
1 parent 6963012 commit fc89c45

2 files changed

Lines changed: 36 additions & 82 deletions

File tree

README.md

Lines changed: 17 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -2,94 +2,43 @@
22

33
Native Python bindings for ArcadeDB (forked from the official Java project).
44

5-
<p align="center">
6-
<a href="https://github.com/ArcadeData/arcadedb/releases"><img src="https://img.shields.io/github/v/release/arcadedata/arcadedb?color=%23ff00a0&include_prereleases&label=version&sort=semver"></a>
7-
&nbsp;
8-
<a href="https://opensource.org/licenses/Apache-2.0"><img src="https://img.shields.io/badge/License-Apache%202.0-green.svg"></a>
9-
&nbsp;
10-
<a href="https://docs.oracle.org/en/java/21/"><img src="https://img.shields.io/badge/Java-%3D21-green.svg"></a>
11-
&nbsp;
12-
<a href="https://docs.oracle.org/en/java/17/"><img src="https://img.shields.io/badge/Java-%3D17-green.svg"></a>
13-
&nbsp;
14-
<a href="https://api.reuse.software/info/github.com/ArcadeData/arcadedb"><img src="https://api.reuse.software/badge/github.com/ArcadeData/arcadedb"></a>
15-
&nbsp;
16-
<a href="https://hub.docker.com/repository/docker/arcadedata/arcadedb/general"><img src="https://img.shields.io/docker/pulls/arcadedata/arcadedb"></a>
17-
&nbsp;
18-
<a href="https://deepwiki.com/ArcadeData/arcadedb"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a>
19-
&nbsp;
20-
<a href="https://github.com/ArcadeData/arcadedb/actions/workflows/mvn-deploy.yml">
21-
<img src="https://github.com/ArcadeData/arcadedb/actions/workflows/mvn-deploy.yml/badge.svg">
22-
</a>
23-
&nbsp;
24-
<a href="https://codecov.io/github/ArcadeData/arcadedb">
25-
<img src="https://codecov.io/github/ArcadeData/arcadedb/graph/badge.svg?token=0690JAJHIO"/>
26-
</a>
27-
&nbsp;
28-
<a href="https://www.codacy.com/gh/ArcadeData/arcadedb/dashboard?utm_source=github.com&utm_medium=referral&utm_content=ArcadeData/arcadedb&utm_campaign=Badge_Coverage">
29-
<img src="https://app.codacy.com/project/badge/Coverage/1f971260db1e46638bd3fd91e3ebf668">
30-
</a>
31-
&nbsp;
32-
<a href="https://app.codacy.com/gh/ArcadeData/arcadedb?utm_source=github.com&utm_medium=referral&utm_content=ArcadeData/arcadedb&utm_campaign=Badge_Grade_Settings">
33-
<img src="https://api.codacy.com/project/badge/Grade/d40cc721f39b49eb81408307960f145b">
34-
</a>
35-
&nbsp;
36-
<a href="https://www.meterian.io/report/gh/ArcadeData/arcadedb">
37-
<img src="https://www.meterian.io/badge/gh/ArcadeData/arcadedb/security?branch=main">
38-
</a>
39-
&nbsp;
40-
<a href="https://www.meterian.io/report/gh/ArcadeData/arcadedb">
41-
<img src="https://www.meterian.io/badge/gh/ArcadeData/arcadedb/stability?branch=main">
42-
</a>
43-
</p>
5+
[![PyPI](https://img.shields.io/pypi/v/arcadedb-embedded)](https://pypi.org/project/arcadedb-embedded/)
6+
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/arcadedb-embedded)](https://pypi.org/project/arcadedb-embedded/)
7+
[![Docs](https://img.shields.io/badge/docs-humem.ai-blue)](https://docs.humem.ai/arcadedb/latest/)
8+
[![Test Python Bindings](https://github.com/humemai/arcadedb-embedded-python/actions/workflows/test-python-bindings.yml/badge.svg)](https://github.com/humemai/arcadedb-embedded-python/actions/workflows/test-python-bindings.yml)
9+
[![Test Python Examples](https://github.com/humemai/arcadedb-embedded-python/actions/workflows/test-python-examples.yml/badge.svg)](https://github.com/humemai/arcadedb-embedded-python/actions/workflows/test-python-examples.yml)
10+
[![Release to PyPI](https://github.com/humemai/arcadedb-embedded-python/actions/workflows/release-python-packages.yml/badge.svg)](https://github.com/humemai/arcadedb-embedded-python/actions/workflows/release-python-packages.yml)
11+
12+
---
4413

4514
## ✨ What this repo provides
4615

4716
- Native Python bindings for ArcadeDB with a bundled JRE (no local Java required).
48-
- Wheels for Linux x86_64, Linux ARM64, macOS Apple Silicon, and Windows x86_64.
17+
- Wheels for Linux x86_64, Linux ARM64, and macOS Apple Silicon.
4918
- Embedded usage (in-process) with optional server mode.
5019
- Tests and examples validated in CI across supported platforms.
5120

52-
ArcadeDB is a Multi-Model DBMS created by Luca Garulli, the same founder of [OrientDB](https://github.com/orientechnologies/orientdb),
53-
after SAP's acquisition. Written from scratch with a brand-new engine made of Alien Technology, ArcadeDB is able to crunch millions
54-
of records per second on common hardware with minimal resource usage. ArcadeDB reuses OrientDB's SQL engine (heavily modified) and
55-
some utility classes. It's written in LLJ: Low Level Java - still Java21+ but only using low level APIs to leverage advanced
56-
mechanical sympathy techniques and reduce Garbage Collector pressure. Highly optimized for extreme performance, it runs
57-
from a Raspberry Pi to multiple servers on the cloud.
21+
The Python bindings and packaging live under bindings/python. The upstream Java project remains the source of the core database.
5822

5923
## 🧱 What’s inside
6024

6125
- bindings/python: Python package source, build scripts, tests, and examples.
6226
- docs site: https://docs.humem.ai/arcadedb/
6327
- CI: Build/test workflows for bindings and examples (badges above).
6428

65-
- [Graph Database](https://docs.arcadedb.com#graph-model) (compatible with Neo4j Cypher, Apache Tinkerpop Gremlin and OrientDB SQL)
66-
- [Document Database](https://docs.arcadedb.com#document-model) (compatible with the MongoDB driver + MongoDB queries and OrientDB
67-
SQL)
68-
- [Key/Value](https://docs.arcadedb.com#keyvalue-model) (compatible with the Redis driver)
69-
- [Search Engine](https://docs.arcadedb.com/#searchengine-model)
70-
- [Time Series](https://docs.arcadedb.com#timeseries-model)
71-
- [Vector Embedding](https://docs.arcadedb.com/#vector-model)
29+
## ✅ Typical use cases
7230

7331
- Local embedded analytics without a separate server process.
7432
- Vector search and graph workloads from Python.
7533
- Running ArcadeDB in-process for testing or tooling.
7634

77-
- [SQL](https://docs.arcadedb.com#sql) (from OrientDB SQL)
78-
- Neo4j [Cypher (Open Cypher)](https://docs.arcadedb.com#cypher)
79-
- [Apache Gremlin (Apache Tinkerpop v3.7.x)](https://docs.arcadedb.com#gremlin-api)
80-
- [GraphQL Language](https://docs.arcadedb.com#graphql)
81-
- [MongoDB Query Language](https://docs.arcadedb.com#mongodb-query-language)
35+
## 🧠 ArcadeDB at a glance
8236

8337
- Multi-model database built for performance.
8438
- Document + Graph + Key/Value + Vector + Time Series in one engine.
8539
- Supports SQL, OpenCypher, and MongoDB query language.
8640

87-
- Embedded from any language on top of the Java Virtual Machine
88-
- Embedded from Python via bindings: [arcadedb-embedded-python](https://github.com/humemai/arcadedb-embedded-python)
89-
- Remotely by using [HTTP/JSON](https://docs.arcadedb.com#http-json-api)
90-
- Remotely by using a [Postgres driver](https://docs.arcadedb.com#postgres-driver) (ArcadeDB implements Postgres Wire protocol)
91-
- Remotely by using a [Redis driver](https://docs.arcadedb.com#redis-query-language) (only a subset of the operations are implemented)
92-
- Remotely by using a [MongoDB driver](https://docs.arcadedb.com#mongodb-query-language) (only a subset of the operations are implemented)
41+
## 📦 What the wheel includes
9342

9443
- Lightweight Java 25 runtime (jlink) bundled per platform.
9544
- ArcadeDB JARs required for the embedded engine.
@@ -107,12 +56,12 @@ from a Raspberry Pi to multiple servers on the cloud.
10756
uv pip install arcadedb-embedded
10857
```
10958

110-
Now open your browser on http://localhost:2480 and play with [ArcadeDB Studio](https://docs.arcadedb.com/#studio) and the
111-
imported `OpenBeer` database to find your favorite beer.
59+
See [the Python README](https://github.com/humemai/arcadedb-embedded-python/blob/main/bindings/python/README.md) for usage, examples, and build details.
11260

11361
## 🔗 Quick Links
11462

115-
ArcadeDB is cloud-ready with [Docker](https://docs.arcadedb.com/#docker) and [Kubernetes](https://docs.arcadedb.com/#kubernetes) support.
63+
- Python README: https://github.com/humemai/arcadedb-embedded-python/blob/main/bindings/python/README.md
64+
- PyPI: https://pypi.org/project/arcadedb-embedded/
11665

11766
## 🧭 Upstream ArcadeDB (Java)
11867

@@ -126,20 +75,6 @@ This repo is a fork of ArcadeDB Java. For the server, Java API, and core databas
12675
- Issues (Python bindings): https://github.com/humemai/arcadedb-embedded-python/issues
12776
- ArcadeDB Discord: https://discord.gg/w2Npx2B7hZ
12877

129-
## 🧾 Citing
130-
131-
If you use this project in scholarly work, please cite the version you used via Zenodo:
132-
133-
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.18399208.svg)](https://doi.org/10.5281/zenodo.18399208)
134-
135-
You can also get a version-specific DOI URL from the installed package:
136-
137-
```python
138-
import arcadedb_embedded as arcadedb
139-
140-
arcadedb.cite()
141-
```
142-
14378
## 📄 License
14479

145-
Both upstream ArcadeDB (Java) and this ArcadeDB Embedded Python project are licensed under Apache 2.0, which is fully open and free for everyone, including commercial use.
80+
Both upstream ArcadeDB (Java) and this ArcadeDB Embedded Python project are licensed under Apache 2.0, fully open and free for everyone, including commercial use.

sync-upstream.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,19 @@ echo -e "${YELLOW}📊 Checking current branch...${NC}"
157157
CURRENT_BRANCH=$(git branch --show-current)
158158
START_BRANCH="$CURRENT_BRANCH"
159159

160+
# 2b. Backup fork README so it never gets overwritten during rebase
161+
README_BACKUP=""
162+
cleanup() {
163+
if [ -n "$README_BACKUP" ] && [ -f "$README_BACKUP" ]; then
164+
rm -f "$README_BACKUP"
165+
fi
166+
}
167+
trap cleanup EXIT
168+
if git show "${START_BRANCH}:README.md" >/dev/null 2>&1; then
169+
README_BACKUP=$(mktemp -t arcadedb_readme.XXXXXX)
170+
git show "${START_BRANCH}:README.md" > "$README_BACKUP"
171+
fi
172+
160173
# 3. Check for uncommitted changes
161174
if ! git diff-index --quiet HEAD --; then
162175
echo -e "${RED}❌ You have uncommitted changes${NC}"
@@ -233,6 +246,12 @@ else
233246
fi
234247
fi
235248

249+
# 9b. Restore fork README regardless of conflicts
250+
if [ -n "$README_BACKUP" ] && [ -f "$README_BACKUP" ]; then
251+
cp "$README_BACKUP" README.md
252+
git add README.md
253+
fi
254+
236255
# 10. Return to original branch if needed
237256
if [ "$START_BRANCH" != "main" ] && [ "$START_BRANCH" != "upstream-main" ]; then
238257
git checkout "$START_BRANCH" >/dev/null 2>&1 || true

0 commit comments

Comments
 (0)