Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
126885d
docs(store): update guidance for store module (#2894)
JisoLya Oct 31, 2025
f92c5a4
docs(pd): update test commands and improve documentation clarity (#2893)
koi2000 Oct 31, 2025
e66accc
fix(store): improve some potential lock & type cast issues (#2895)
JisoLya Oct 31, 2025
d7697f4
chore(server): bump rocksdb version from 7.2.2 to 8.10.2 (#2896)
syslucas Oct 31, 2025
00e040b
fix(store): handle NPE in getVersion for file (#2897)
JisoLya Nov 3, 2025
2e0cffe
feat(server): add path filter for graphspace (#2898)
Tsukilc Nov 4, 2025
ca5fc0c
fix(server): support GraphAPI for rocksdb & add tests (#2900)
Tsukilc Nov 4, 2025
b7998c1
refactor(server): remove graph param in auth api path (#2899)
Tsukilc Nov 4, 2025
de0360b
fix: migrate to LTS jdk11 in all Dockerfile (#2901)
Pengzna Nov 4, 2025
496b150
feat: init serena memory system & add memories (#2902)
imbajin Nov 6, 2025
41d0dbc
fix(server): fix reflect bug in init-store.sh (#2905)
Tsukilc Nov 12, 2025
b12425c
fix: add missing license and remove binary license.txt & fix tinkerpo…
Pengzna Nov 16, 2025
9a3daf8
refactor(store): fix reflection parameter error and extract duplicate…
contrueCT Nov 27, 2025
18569c4
docs: migrate 1.5.0 in readme to 1.7.0 (#2914)
Pengzna Nov 28, 2025
534c81e
fix: use slim docker image (#2903)
Pengzna Dec 15, 2025
c6d94b4
feat: add slack channel (#2920)
zyxxoo Dec 17, 2025
d28526e
fix(pd): pd raft-follower failed to get leader address due to npe (#2…
JisoLya Dec 17, 2025
eec3871
chore: update the status of distributed modules (#2916)
imbajin Dec 26, 2025
2432603
fix(server): fix npe in non-auth mode (#2912)
Tsukilc Jan 4, 2026
423ede0
fix: optimize code and update risky deps (#2918)
kenssa4eedfd Jan 4, 2026
d641fdb
docs: fix Cypher documentation link in README (#2925)
bitflicker64 Jan 4, 2026
a93cc21
chore(server): remove outdated ConfigAuthenticator (#2927)
ChoHee15 Jan 4, 2026
37be6cd
test(cluster-test): bump ct to version 1.7.0 (#2921)
JisoLya Jan 6, 2026
e0f572b
refactor(server): support update TTL in labels & enhance configs (#2938)
imbajin Jan 22, 2026
99baf2b
docs: fix some typos in comments (#2943)
slightsharp Jan 23, 2026
fc391a7
fix(server): prevent await deadlock on ContextCallable failure (#2941)
bitflicker64 Jan 26, 2026
9babe49
test(server): enable run single unit test (#2940)
JisoLya Jan 29, 2026
88ad859
doc: update Quick Start & Architecture in README (#2947)
imbajin Feb 2, 2026
6ffdd9c
refactor(server): unify URL configs when scheme is missing (#2944)
bitflicker64 Feb 3, 2026
ef2db2c
feat(server): add gs profile api (#2950)
Tsukilc Feb 14, 2026
0505810
docs: remove references to removed hugegraph-style.xml (#2949)
bitflicker64 Feb 14, 2026
94c03a9
refactor: remove 'incubating' branding, update docs & packaging (#2965)
imbajin Mar 14, 2026
5578b79
refactor: add the desc of the vars in swagger-ui (#2969)
lokidundun Mar 16, 2026
1f40f05
doc: add comment for historical package names (#2970)
imbajin Mar 16, 2026
5adf14c
fix(pd): resolve hostname entries in IpAuthHandler allowlist (#2962)
bitflicker64 Mar 17, 2026
ab12b35
fix(pd): add timeout and null-safety to getLeaderGrpcAddress() (#2961)
bitflicker64 Mar 20, 2026
62bcdc5
fix(dist): use HTTPS for Travis download URLs (#2973)
pjfanning Mar 20, 2026
0154c06
refactor(docker): migrate single-node compose from host to bridge net…
bitflicker64 Mar 20, 2026
5f91d8b
refactor(server): disable GraphSpaceAPI and ManagerAPI in standalone …
contrueCT Mar 20, 2026
8d758d5
chore(docker): remove tmp volume mounts after image update (#2976)
bitflicker64 Mar 22, 2026
9126c80
docs: update Docker deployment docs for bridge networking migration (…
bitflicker64 Mar 23, 2026
c0a2b93
fix(docker): enable docker logs for pd/store/server containers (#2980)
bitflicker64 Apr 5, 2026
06097c8
refactor(server): allow TinkerPop exceptions in Gremlin resp (#2987)
utafrali Apr 10, 2026
28c39b6
chore(ci): add automatic rerun controller for flaky workflows (#2984)
contrueCT Apr 11, 2026
4704354
fix(query): handle conflicting edge label conditions safely (#2990)
contrueCT Apr 13, 2026
9336b5e
fix(server): guard count strategy on negative bounds (#2993)
contrueCT Apr 17, 2026
6a983f9
fix: enable CI badges displaying normally (#2996)
lokidundun Apr 18, 2026
a8ae76b
fix(docker): skip partition wait for standalone rocksdb mode (#3000)
imbajin Apr 20, 2026
7afce9d
fix(pd): populate memberSize in GET / endpoint response (#3003)
caglareker Apr 21, 2026
bcaa5f1
fix(server): fix check_port port extraction for schemeless URLs (#3005)
bitflicker64 Apr 25, 2026
68dd29b
refactor(server): add logs for load-based request rejection (#2972)
contrueCT Apr 25, 2026
836b348
fix(server): auto-recover session after Cassandra restart (#2997)
dpol1 Apr 25, 2026
ee177a0
fix(server): sync hstore schema cache clears (#3011)
dpol1 May 6, 2026
06c52e4
chore: update project memories with latest codebase state(1.8.0) (#2998)
imbajin May 7, 2026
de8781e
chore(ci): optimize rerun workflow and add macOS RocksDB coverage (#3…
contrueCT May 8, 2026
e108076
fix(server): normalize bool range predicates in gremlin filters (#2991)
contrueCT May 9, 2026
f69ca66
fix(server): align cache event actions in legacy EventHub path (#3017)
dpol1 May 15, 2026
66e5339
fix(server): different graph name share the same backend (#3027)
JisoLya May 17, 2026
8d095e1
perf(docker): improve all images build cache efficiency (#3025)
bitflicker64 May 18, 2026
454dd3d
fix(server): keep schema ~create_time as Date after reload (#3026)
dpol1 May 19, 2026
f56462a
feat(server): use HBase 2.6 to replace hbase-shaded & support docker-…
vaijosh May 22, 2026
31e8268
docs: update "Build from Source" instructions in README (#3022)
vaijosh May 27, 2026
b9a3dd9
chore(ci): enable hugegraph-struct tests (#3038)
contrueCT May 27, 2026
beb30ee
fix(server): avoid extracting text range filters (#3034)
LegendPei Jun 2, 2026
a49bf66
docs(server): add Docker with HBase validation runbook
vaijosh Jun 3, 2026
3405832
fix(server): normalize typed DEFAULT_VALUE after JSON reload (#3035)
dpol1 Jun 3, 2026
d6e6216
fix(server): fix foreground mode exit code propagation in startup scr…
bitflicker64 Jun 3, 2026
7f0a44a
fix(server): handle match() in no index case (#3039)
LegendPei Jun 4, 2026
16382cc
fix(pd,store): fg mode exit code propagation in startup scripts (#3047)
bitflicker64 Jun 4, 2026
1f61c48
refactor(server): optimize rockdb batch query perf (#2982)
lokidundun Jun 5, 2026
c5f9ebb
feat(server): Add the vector index type and the detection of related …
hahahahbenny Aug 20, 2025
f6833b4
fix code format
hahahahbenny Aug 21, 2025
c27ead8
add annsearch API
hahahahbenny Aug 27, 2025
8dc2408
add doc to explain the plan
hahahahbenny Oct 31, 2025
67d56ba
feat: add RocksDB CF for vector index with serialize/deserialize support
hahahahbenny Nov 23, 2025
e7c4afd
fix master merge conflict
hahahahbenny Nov 23, 2025
5e0016c
feat(server): support vector index in graphdb (#2856)
hahahahbenny Oct 31, 2025
41d7c81
# This is a combination of 2 commits.
hahahahbenny Nov 23, 2025
68e0877
delete redundant method
hahahahbenny Nov 23, 2025
f0f806d
introduce VectorIndexManager runtime framework with incremental sync,…
hahahahbenny Dec 19, 2025
2a3122f
Move vector-related components under hugegraph-struct and Add the Seq…
hahahahbenny Dec 30, 2025
d7cd4ad
add license to vector Sequence allocator and vectorId allocator
hahahahbenny Dec 30, 2025
e8013fb
Add unit tests for vector index and integrate vector index operations…
hahahahbenny Feb 7, 2026
de256a7
add vector index end to end test and fix bug
hahahahbenny Jun 6, 2026
b1b464d
Merge branch 'vector-index' into vector-manager
hahahahbenny Jun 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 4 additions & 4 deletions .asf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,8 @@
github:
features:
issues: true
# Enable wiki for documentation
wiki: true
# Enable projects for project management boards
# Enable projects for project (task)management boards
projects: true
discussions: true
description: A graph database that supports more than 100+ billion data, high performance and scalability (Include OLTP Engine & REST-API & Backends)
Expand All @@ -46,11 +45,12 @@ github:
required_pull_request_reviews:
dismiss_stale_reviews: true
require_code_owner_reviews: false
required_approving_review_count: 2
required_approving_review_count: 1
# (for non-committer): assign/edit/close issues & PR, without write access to the code
collaborators:
- Pengzna
- haohao0103
- kenssa4eedfd
- Tsukilc

# refer https://cwiki.apache.org/confluence/display/INFRA/Git+-+.asf.yaml+features#Git.asf.yamlfeatures-Notificationsettingsforrepositories
notifications:
Expand Down
51 changes: 39 additions & 12 deletions ...pendency/regenerate_known_dependencies.sh → .dockerignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
Expand All @@ -16,18 +15,46 @@
# limitations under the License.
#

BASE_PATH=$(cd "$(dirname "$0")" || exit; pwd)
DEP_PATH=$BASE_PATH/all_dependencies
FILE_NAME=${1:-known-dependencies.txt}
# IMPORTANT: .dockerignore does NOT inherit .gitignore — patterns must be restated.

if [[ -d $DEP_PATH ]]; then
echo "rm -r -f DEP_PATH"
rm -r -f "$DEP_PATH"
fi
# Build output
**/target/

cd "$BASE_PATH"/../../../ || exit
# Pre-extracted release dirs / archives
apache-hugegraph-*/
**/*.tar
**/*.tar.gz
**/*.zip
**/*.war

mvn dependency:copy-dependencies -DincludeScope=runtime -DoutputDirectory="$DEP_PATH"
# IDE / OS
.idea/
.vscode/
**/*.iml
**/*.iws
**/.DS_Store

ls "$DEP_PATH" | egrep -v "^hugegraph|hubble" | sort -n > "$BASE_PATH"/"$FILE_NAME"
rm -r -f "$DEP_PATH"
# Build / runtime artifacts
**/logs/
**/*.log
**/*.class
**/gen-java/
**/upload-files/
**/build/
**/node_modules/

# Env files
.env.local
.env.*.local

# Git internals
.git
.gitignore
.gitattributes
.github

# Compose / docs not needed in build context
**/docker-compose*.yml
**/docker-compose*.yaml
**/*.md
docs/
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
Expand All @@ -16,17 +15,34 @@
# limitations under the License.
#

BASE_PATH=$(cd "$(dirname "$0")" || exit; pwd)
name: "Docker Build CI"

# check whether there are new third-party dependencies by diff command,
# diff generated 'current-dependencies.txt' file with 'known-dependencies.txt' file.
diff -w -B -U0 <(sort < "${BASE_PATH}"/known-dependencies.txt) \
<(sort < "${BASE_PATH}"/current-dependencies.txt) > "${BASE_PATH}"/result.txt
on:
push:
branches:
- master
- 'release-*'
pull_request:
paths:
- '**/Dockerfile*'
- '.dockerignore'

# if has new third-party,the Action will fail and print diff
if [ -s "${BASE_PATH}"/result.txt ]; then
cat "${BASE_PATH}"/result.txt
exit 1
else
echo 'All third dependencies is known!'
fi
jobs:
docker-build:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
dockerfile:
- hugegraph-pd/Dockerfile
- hugegraph-store/Dockerfile
- hugegraph-server/Dockerfile
- hugegraph-server/Dockerfile-hstore

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Build ${{ matrix.dockerfile }}
run: |
docker build -f ${{ matrix.dockerfile }} .
17 changes: 17 additions & 0 deletions .github/workflows/pd-store-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ jobs:
mvn -U -ntp dependency:get -Dartifact=org.apache.hugegraph:hugegraph-struct:$REVISION
fi

- name: Run hugegraph-struct test
if: ${{ hashFiles('hugegraph-struct/pom.xml') != '' }}
run: |
mvn -U -ntp -pl hugegraph-struct test

pd:
needs: struct
runs-on: ubuntu-latest
Expand Down Expand Up @@ -102,6 +107,12 @@ jobs:
run: |
mvn clean package -U -Dmaven.javadoc.skip=true -Dmaven.test.skip=true -ntp --fail-at-end

- name: Run start-hugegraph-pd.sh foreground mode tests
run: |
VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
PD_DIR=hugegraph-pd/apache-hugegraph-pd-$VERSION/
$TRAVIS_DIR/test-start-hugegraph-pd.sh $PD_DIR

- name: Prepare env and service
run: |
$TRAVIS_DIR/start-pd.sh
Expand Down Expand Up @@ -158,6 +169,12 @@ jobs:
run: |
mvn clean package -U -Dmaven.javadoc.skip=true -Dmaven.test.skip=true -ntp --fail-at-end

- name: Run start-hugegraph-store.sh foreground mode tests
run: |
VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
STORE_DIR=hugegraph-store/apache-hugegraph-store-$VERSION/
$TRAVIS_DIR/test-start-hugegraph-store.sh $STORE_DIR

- name: Prepare env and service
run: |
$TRAVIS_DIR/start-pd.sh
Expand Down
85 changes: 85 additions & 0 deletions .github/workflows/rerun-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: "Rerun CI"

on:
workflow_run:
workflows:
- "HugeGraph-Server CI"
- "HugeGraph-Commons CI"
- "HugeGraph-PD & Store & Hstore CI"
- "Cluster Test CI"
types:
- completed

permissions: {}

env:
MAX_RERUNS: '2'
RETRY_DELAY_SECONDS: '180'

jobs:
decide-rerun-action:
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
runs-on: ubuntu-latest
outputs:
action: ${{ steps.decision.outputs.action }}
steps:
- name: Decide rerun action
id: decision
env:
WORKFLOW_NAME: ${{ github.event.workflow_run.name }}
RUN_ID: ${{ github.event.workflow_run.id }}
RUN_ATTEMPT: ${{ github.event.workflow_run.run_attempt }}
EVENT_NAME: ${{ github.event.workflow_run.event }}
HEAD_BRANCH: ${{ github.event.workflow_run.head_branch }}
run: |
set -euo pipefail

action="skip"
reason="unsupported event: $EVENT_NAME"

if [[ "$EVENT_NAME" == "push" || "$EVENT_NAME" == "pull_request" ]]; then
if (( RUN_ATTEMPT > MAX_RERUNS )); then
reason="retry limit reached"
else
action="rerun"
reason="within retry limit"
fi
fi

{
echo "action=$action"
echo "reason=$reason"
} >> "$GITHUB_OUTPUT"

{
echo "### Rerun CI decision"
echo ""
echo "- Workflow: $WORKFLOW_NAME"
echo "- Source event: $EVENT_NAME"
echo "- Head branch: $HEAD_BRANCH"
echo "- Run ID: $RUN_ID"
echo "- Current attempt: $RUN_ATTEMPT"
echo "- Max automatic reruns: $MAX_RERUNS"
echo "- Delay seconds: $RETRY_DELAY_SECONDS"
echo "- Action: $action"
echo "- Reason: $reason"
} >> "$GITHUB_STEP_SUMMARY"

rerun-failed-jobs:
needs: decide-rerun-action
if: needs.decide-rerun-action.outputs.action == 'rerun'
permissions:
actions: write
contents: read
runs-on: ubuntu-latest
steps:
- name: Wait before rerun
run: |
sleep "$RETRY_DELAY_SECONDS"

- name: Rerun failed jobs
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}
run: |
gh run rerun ${{ github.event.workflow_run.id }} --failed
81 changes: 81 additions & 0 deletions .github/workflows/server-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,14 @@ jobs:
run: |
mvn clean compile -U -Dmaven.javadoc.skip=true -ntp

- name: Run start-hugegraph.sh foreground mode tests
if: ${{ env.BACKEND == 'rocksdb' }}
run: |
mvn package -Dmaven.test.skip=true -pl hugegraph-server/hugegraph-dist -am -ntp
VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
SERVER_DIR=hugegraph-server/apache-hugegraph-server-$VERSION/
$TRAVIS_DIR/test-start-hugegraph.sh $SERVER_DIR

- name: Run unit test
run: |
$TRAVIS_DIR/run-unit-test.sh $BACKEND
Expand Down Expand Up @@ -100,3 +108,76 @@ jobs:
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ${{ env.REPORT_DIR }}/*.xml

build-server-macos-rocksdb:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: macos-15-intel
server_java_options: ''
- os: macos-15
server_java_options: '-Xms512m -Xmx2g'
env:
USE_STAGE: 'false' # Whether to include the stage repository.
TRAVIS_DIR: hugegraph-server/hugegraph-dist/src/assembly/travis
REPORT_DIR: target/site/jacoco
BACKEND: rocksdb
JAVA_VERSION: '11'
SERVER_JAVA_OPTIONS: ${{ matrix.server_java_options }}

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 5

- name: Install Java ${{ env.JAVA_VERSION }}
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: 'zulu'

- name: Cache Maven packages
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2

- name: Use staged maven repo settings
if: ${{ env.USE_STAGE == 'true' }}
run: |
cp $HOME/.m2/settings.xml /tmp/settings.xml
cp -vf .github/configs/settings.xml $HOME/.m2/settings.xml && cat $HOME/.m2/settings.xml

- name: Compile
run: |
mvn clean compile -pl hugegraph-server/hugegraph-test -am -U -Dmaven.javadoc.skip=true -ntp

- name: Run RocksDB core test
run: |
$TRAVIS_DIR/run-core-test.sh $BACKEND

- name: Run RocksDB API test
run: |
$TRAVIS_DIR/run-api-test.sh $BACKEND $REPORT_DIR

- name: Show server log on failure
if: failure()
run: |
VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
SERVER_DIR=hugegraph-server/apache-hugegraph-server-$VERSION/
if [ -f "$SERVER_DIR/logs/hugegraph-server.log" ]; then
tail -n 200 "$SERVER_DIR/logs/hugegraph-server.log"
fi

- name: Stop RocksDB server
if: always()
run: |
VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
SERVER_DIR=hugegraph-server/apache-hugegraph-server-$VERSION/
if [ -f "$SERVER_DIR/bin/pid" ]; then
$TRAVIS_DIR/stop-server.sh $SERVER_DIR || true
fi
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,11 @@ hs_err_pid*
hugegraph-server/hugegraph-dist/docker/data/

# AI-IDE prompt files (We only keep AGENTS.md, other files could soft-linked it when needed)
# Serena MCP memories
.serena/*
!.serena/project.yml
!.serena/memories/
.mcp.json
# Claude Projects
CLAUDE.md
CLAUDE_*.md
Expand All @@ -112,3 +117,4 @@ codeium-instructions.md
.ai-instructions.md
*.ai-prompt.md
WARP.md
.mcp.json
1 change: 1 addition & 0 deletions .licenserc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ header: # `header` section is configurations for source codes license header.
- 'LICENSE'
- 'NOTICE'
- 'DISCLAIMER'
- '.serena/**'
- '**/*.versionsBackup'
- '**/*.versionsBackup'
- '**/*.proto'
Expand Down
1 change: 1 addition & 0 deletions .serena/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/cache
Loading
Loading