This is an automated email from the ASF dual-hosted git repository.
liuxiaocs pushed a commit to branch docusaurus
in repository https://gitbox.apache.org/repos/asf/incubator-hugegraph-doc.git
The following commit(s) were added to refs/heads/docusaurus by this push:
new a56b9e0c feat: migrate changelog and guide pages
a56b9e0c is described below
commit a56b9e0c5a49343fa3d2652842f5b236518578c7
Author: liuxiao <[email protected]>
AuthorDate: Mon Apr 15 09:46:56 2024 +0800
feat: migrate changelog and guide pages
---
docs/changelog/_category_.json | 4 +
docs/changelog/hugegraph-1.0.0-release-notes.md | 176 +++++++++++
docs/changelog/hugegraph-1.2.0-release-notes.md | 245 +++++++++++++++
docs/changelog/hugegraph-1.3.0-release-notes.md | 163 ++++++++++
docs/contribution-guidelines/_category_.json | 4 +
.../committer-guidelines.md | 341 +++++++++++++++++++++
docs/contribution-guidelines/contribute.md | 178 +++++++++++
.../hugegraph-server-idea-setup.md | 168 ++++++++++
docs/contribution-guidelines/subscribe.md | 39 +++
docs/contribution-guidelines/validate-release.md | 218 +++++++++++++
10 files changed, 1536 insertions(+)
diff --git a/docs/changelog/_category_.json b/docs/changelog/_category_.json
new file mode 100644
index 00000000..31502faf
--- /dev/null
+++ b/docs/changelog/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Changelog",
+ "position": 9
+}
\ No newline at end of file
diff --git a/docs/changelog/hugegraph-1.0.0-release-notes.md
b/docs/changelog/hugegraph-1.0.0-release-notes.md
new file mode 100644
index 00000000..7d96e86e
--- /dev/null
+++ b/docs/changelog/hugegraph-1.0.0-release-notes.md
@@ -0,0 +1,176 @@
+---
+id: 'release-1.0.0'
+title: 'HugeGraph 1.0.0 Release Notes'
+sidebar_label: 'Release-1.0.0'
+sidebar_position: 1
+---
+
+### OLTP API & Client Changes
+
+#### API Changes
+
+- feat(api): support hot set trace through /exception/trace API.
+- feat(api): support query by Cypher language.
+- feat(api): support swagger UI to viewing API.
+
+#### Client Changes
+
+- feat(client) support Cypher query API.
+- refact(client): change 'limit' type from long to int.
+- feat(client): server bypass for hbase writing (Beta).
+
+### Core & Server
+
+#### Feature Changes
+
+- feat: support Java 11.
+- feat(core): support adamic-adar & resource-allocation algorithms.
+- feat(hbase): support hash rowkey & pre-init tables.
+- feat(core): support query by Cypher language.
+- feat(core): support automatic management and fail-over for cluster role.
+- feat(core): support 16 OLAP algorithms, like: LPA, Louvain, PageRank,
BetweennessCentrality, RingsDetect.
+- feat: prepare for Apache release.
+
+#### Bug Fix
+
+- fix(core): can't query edges by multi labels + properties.
+- fix(core): occasionally NoSuchMethodError Relations().
+- fix(core): limit max depth for cycle detection.
+- fix(core): traversal contains Tree step has different result.
+- fix edge batch update error.
+- fix unexpected task status.
+- fix(core): edge cache not clear when update or delete associated vertex.
+- fix(mysql): run g.V() is error when it's MySQL backend.
+- fix: close exception and server-info EXPIRED_INTERVAL.
+- fix: export ConditionP.
+- fix: query by within + Text.contains.
+- fix: schema label race condition of addIndexLabel/removeIndexLabel.
+- fix: limit admin role can drop graph.
+- fix: ProfileApi url check & add build package to ignore file.
+- fix: can't shut down when starting with exception.
+- fix: Traversal.graph is empty in StepStrategy.apply() with count().is(0).
+- fix: possible extra comma before where statement in MySQL backend.
+- fix: JNA UnsatisfiedLinkError for Apple M1.
+- fix: start RpcServer NPE & args count of ACTION_CLEARED error & example
error.
+- fix: rpc server not start.
+- fix: User-controlled data in numeric cast & remove word dependency.
+- fix: closing iterators on errors for Cassandra & Mysql.
+
+#### Option Changes
+
+- move `raft.endpoint` option from graph scope to server scope.
+
+#### Other Changes
+
+- refact(core): enhance schema job module.
+- refact(raft): improve raft module & test & install snapshot and add peer.
+- refact(core): remove early cycle detection & limit max depth.
+- cache: fix assert node.next==empty.
+- fix apache license conflicts: jnr-posix and jboss-logging.
+- chore: add logo in README & remove outdated log4j version.
+- refact(core): improve CachedGraphTransaction perf.
+- chore: update CI config & support ci robot & add codeQL SEC-check & graph
option.
+- refact: ignore security check api & fix some bugs & clean code.
+- doc: enhance CONTRIBUTING.md & README.md.
+- refact: add checkstyle plugin & clean/format the code.
+- refact(core): improve decode string empty bytes & avoid array-construct
columns in BackendEntry.
+- refact(cassandra): translate ipv4 to ipv6 metrics & update cassandra
dependency version.
+- chore: use .asf.yaml for apache workflow & replace APPLICATION_JSON with
TEXT_PLAIN.
+- feat: add system schema store.
+- refact(rocksdb): update rocksdb version to 6.22 & improve rocksdb code.
+- refact: update mysql scope to test & clean protobuf style/configs.
+- chore: upgrade Dockerfile server to 0.12.0 & add editorconfig & improve ci.
+- chore: upgrade grpc version.
+- feat: support updateIfPresent/updateIfAbsent operation.
+- chore: modify abnormal logs & upgrade netty-all to 4.1.44.
+- refact: upgrade dependencies & adopt new analyzer & clean code.
+- chore: improve .gitignore & update ci configs & add RAT/flatten plugin.
+- chore(license): add dependencies-check ci & 3rd-party dependency licenses.
+- refact: Shutdown log when shutdown process & fix tx leak & enhance the file
path.
+- refact: rename package to apache & dependency in all modules (Breaking
Change).
+- chore: add license checker & update antrun plugin & fix building problem in
windows.
+- feat: support one-step script for apache release v1.0.0 release.
+
+### Computer (OLAP)
+
+#### Algorithm Changes
+
+- feat: implement page-rank algorithm.
+- feat: implement wcc algorithm.
+- feat: implement degree centrality.
+- feat: implement triangle_count algorithm.
+- feat: implement rings-detection algorithm.
+- feat: implement LPA algorithm.
+- feat: implement kcore algorithm.
+- feat: implement closeness centrality algorithm.
+- feat: implement betweenness centrality algorithm.
+- feat: implement cluster coefficient algorithm.
+
+#### Platform Changes
+
+- feat: init module computer-core & computer-algorithm & etcd dependency.
+- feat: add Id as base type of vertex id.
+- feat: init Vertex/Edge/Properties & JsonStructGraphOutput.
+- feat: load data from hugegraph server.
+- feat: init basic combiner, Bsp4Worker, Bsp4Master.
+- feat: init sort & transport interface & basic FileInput/Output Stream.
+- feat: init computation & ComputerOutput/Driver interface.
+- feat: init Partitioner and HashPartitioner
+- feat: init Master/WorkerService module.
+- feat: init Heap/LoserTree sorting.
+- feat: init rpc module.
+- feat: init transport server, client, en/decode, flowControl, heartbeat.
+- feat: init DataDirManager & PointerCombiner.
+- feat: init aggregator module & add copy() and assign() methods to Value
class.
+- feat: add startAsync and finishAsync on client side, add onStarted and
onFinished on server side.
+- feat: init store/sort module.
+- feat: link managers in worker sending end.
+- feat: implement data receiver of worker.
+- feat: implement StreamGraphInput and EntryInput.
+- feat: add Sender and Receiver to process compute message.
+- feat: add seqfile fromat.
+- feat: add ComputeManager.
+- feat: add computer-k8s and computer-k8s-operator.
+- feat: add startup and make docker image code.
+- feat: sort different type of message use different combiner.
+- feat: add HDFS output format.
+- feat: mount config-map and secret to container.
+- feat: support java11.
+- feat: support partition concurrent compute.
+- refact: abstract computer-api from computer-core.
+- refact: optimize data receiving.
+- fix: release file descriptor after input and compute.
+- doc: add operator deploy readme.
+- feat: prepare for Apache release.
+
+### Toolchain (loader, tools, hubble)
+
+- feat(loader): support use SQL to construct graph.
+- feat(loader): support Spark-Loader mode(include jdbc source).
+- feat(loader): support Flink-CDC mode.
+- fix(loader): fix NPE when loading ORC data.
+- fix(loader): fix schema is not cached with Spark/Flink mode.
+- fix(loader): fix json deserialize error.
+- fix(loader): fix jackson conflicts & missing dependencies.
+- feat(hubble): supplementary algorithms UI.
+- feat(hubble): support highlighting and hints for Gremlin text.
+- feat(hubble): add docker-file for hubble.
+- feat(hubble): display packaging log output progress while building.
+- fix(hubble): fix port-input placeholder UI.
+- feat: prepare for Apache release.
+
+### Commons (common,rpc)
+
+- feat: support assert-throws method returning Future.
+- feat: add Cnm and Anm to CollectionUtil.
+- feat: support custom content-type.
+- feat: prepare for Apache release.
+
+### Release Details
+
+Please check the release details in each repository:
+
+- [Server Release
Notes](https://github.com/apache/incubator-hugegraph/releases/tag/1.0.0)
+- [Toolchain Release
Notes](https://github.com/apache/incubator-hugegraph-toolchain/releases/tag/1.0.0)
+- [Computer Release
Notes](https://github.com/apache/incubator-hugegraph-computer/releases/tag/1.0.0)
+- [Commons Release
Notes](https://github.com/apache/incubator-hugegraph-commons/releases/tag/1.0.0)
diff --git a/docs/changelog/hugegraph-1.2.0-release-notes.md
b/docs/changelog/hugegraph-1.2.0-release-notes.md
new file mode 100644
index 00000000..df6946ce
--- /dev/null
+++ b/docs/changelog/hugegraph-1.2.0-release-notes.md
@@ -0,0 +1,245 @@
+---
+id: 'release-1.2.0'
+title: 'HugeGraph 1.2.0 Release Notes'
+sidebar_label: 'Release-1.2.0'
+sidebar_position: 2
+---
+
+
+### Java version statement
+
+> In the future, we will gradually upgrade the java version, **Java 11** ->
**Java 17** -> **Java 21**.
+
+1. hugegraph, hugegraph-toolchain, hugegraph-commons consider use Java 11,
also compatible with Java 8 now.
+2. hugegraph-computer required to use Java 11, **not compatible with Java 8
now!**
+
+**v1.2.0 may be the last major version compatible with Java 8**, compatibility
with Java 8 will totally end in v1.5 when
[PD/Store](https://github.com/apache/incubator-hugegraph/issues/2265) merged
into master branch (Except for the `java-client`).
+
+### hugegraph
+
+#### API Changes
+
+- feat(api&core): in oltp apis, add statistics info and support full info
about vertices and edges
([#2262](https://github.com/apache/incubator-hugegraph/pull/2262))
+- feat(api): support embedded arthas agent in hugegraph-server
([#2278](https://github.com/apache/incubator-hugegraph/pull/2278),[#2337](https://github.com/apache/incubator-hugegraph/pull/2337))
+- feat(api): support metric API Prometheus format & add statistic metric api
([#2286](https://github.com/apache/incubator-hugegraph/pull/2286))
+- feat(api-core): support label & property filtering for both edge and vertex
& support kout dfs mode
([#2295](https://github.com/apache/incubator-hugegraph/pull/2295))
+- feat(api): support recording slow query log
([#2327](https://github.com/apache/incubator-hugegraph/pull/2327))
+
+
+#### Feature Changes
+
+- feat: support task auto manage by server role state machine
([#2130](https://github.com/apache/incubator-hugegraph/pull/2130))
+- feat: support parallel compress snapshot
([#2136](https://github.com/apache/incubator-hugegraph/pull/2136))
+- feat: use an enhanced CypherAPI to refactor it
([#2143](https://github.com/apache/incubator-hugegraph/pull/2143))
+- feat(perf): support JMH benchmark in HG-test module
([#2238](https://github.com/apache/incubator-hugegraph/pull/2238))
+- feat: optimising adjacency edge queries
([#2242](https://github.com/apache/incubator-hugegraph/pull/2242))
+- Feat: IP white list
([#2299](https://github.com/apache/incubator-hugegraph/pull/2299))
+- feat(cassandra): adapt cassandra from 3.11.12 to 4.0.10
([#2300](https://github.com/apache/incubator-hugegraph/pull/2300))
+- feat: support Cassandra with docker-compose in server
([#2307](https://github.com/apache/incubator-hugegraph/pull/2307))
+- feat(core): support batch+parallel edges traverse
([#2312](https://github.com/apache/incubator-hugegraph/pull/2312))
+- feat: adapt Dockerfile for new project structur
([#2344](https://github.com/apache/incubator-hugegraph/pull/2344))
+- feat(server):swagger support auth for standardAuth mode by
([#2360](https://github.com/apache/incubator-hugegraph/pull/2360))
+- feat(core): add IntMapByDynamicHash V1 implement
([#2377](https://github.com/apache/incubator-hugegraph/pull/2377))
+
+#### Bug Fix
+
+- fix: transfer add_peer/remove_peer command to leader
([#2112](https://github.com/apache/incubator-hugegraph/pull/2112))
+- fix query dirty edges of a vertex with cache
([#2166](https://github.com/apache/incubator-hugegraph/pull/2166))
+- fix exception of vertex-drop with index
([#2181](https://github.com/apache/incubator-hugegraph/pull/2181))
+- fix: remove dup 'From' in filterExpiredResultFromFromBackend
([#2207](https://github.com/apache/incubator-hugegraph/pull/2207))
+- fix: jdbc ssl mode parameter redundant
([#2224](https://github.com/apache/incubator-hugegraph/pull/2224))
+- fix: error when start gremlin-console with sample script
([#2231](https://github.com/apache/incubator-hugegraph/pull/2231))
+- fix(core): support order by id
([#2233](https://github.com/apache/incubator-hugegraph/pull/2233))
+- fix: update ssl_mode value
([#2235](https://github.com/apache/incubator-hugegraph/pull/2235))
+- fix: optimizing ClassNotFoundException error message for MYSQL
([#2246](https://github.com/apache/incubator-hugegraph/pull/2246))
+- fix: asf invalid notification scheme 'discussions_status'
([#2247](https://github.com/apache/incubator-hugegraph/pull/2247))
+- fix: asf invalid notification scheme 'discussions_comment'
([#2250](https://github.com/apache/incubator-hugegraph/pull/2250))
+- fix: incorrect use of 'NO_LIMIT' variable
([#2253](https://github.com/apache/incubator-hugegraph/pull/2253))
+- fix(core): close flat mapper iterator after usage
([#2281](https://github.com/apache/incubator-hugegraph/pull/2281))
+- fix(dist): avoid var PRELOAD cover environmnet vars
([#2302](https://github.com/apache/incubator-hugegraph/pull/2302))
+- fix: base-ref/head-ref missed in dependency-review on master
([#2308](https://github.com/apache/incubator-hugegraph/pull/2308))
+- fix(core): handle schema Cache expandCapacity concurrent problem
([#2332](https://github.com/apache/incubator-hugegraph/pull/2332))
+- fix: in wait-storage.sh, always wait for storage with default rocksdb
([#2333](https://github.com/apache/incubator-hugegraph/pull/2333))
+- fix(api): refactor/downgrade record logic for slow log
([#2347](https://github.com/apache/incubator-hugegraph/pull/2347))
+- fix(api): clean some code for release
([#2348](https://github.com/apache/incubator-hugegraph/pull/2348))
+- fix: remove redirect-to-master from synchronous Gremlin API
([#2356](https://github.com/apache/incubator-hugegraph/pull/2356))
+- fix HBase PrefixFilter bug
([#2364](https://github.com/apache/incubator-hugegraph/pull/2364))
+- chore: fix curl failed to request https urls
([#2378](https://github.com/apache/incubator-hugegraph/pull/2378))
+- fix(api): correct the vertex id in the edge-existence api
([#2380](https://github.com/apache/incubator-hugegraph/pull/2380))
+- fix: github action build docker image failed during the release 1.2 process
([#2386](https://github.com/apache/incubator-hugegraph/pull/2386))
+- fix: TinkerPop unit test lack some lables
([#2387](https://github.com/apache/incubator-hugegraph/pull/2387))
+
+#### Option Changes
+
+- feat(dist): support pre-load test graph data in docker container
([#2241](https://github.com/apache/incubator-hugegraph/pull/2241))
+
+#### Other Changes
+
+- refact: use standard UTF-8 charset & enhance CI configs
([#2095](https://github.com/apache/incubator-hugegraph/pull/2095))
+- move validate release to hugegraph-doc
([#2109](https://github.com/apache/incubator-hugegraph/pull/2109))
+- refact: use a slim way to build docker image on latest code & support zgc
([#2118](https://github.com/apache/incubator-hugegraph/pull/2118))
+- chore: remove stage-repo in pom due to release done & update mail rule
([#2128](https://github.com/apache/incubator-hugegraph/pull/2128))
+- doc: update issue template & README file
([#2131](https://github.com/apache/incubator-hugegraph/pull/2131))
+- chore: cmn algorithm optimization
([#2134](https://github.com/apache/incubator-hugegraph/pull/2134))
+- add github token for license check comment
([#2139](https://github.com/apache/incubator-hugegraph/pull/2139))
+- chore: disable PR up-to-date in branch
([#2150](https://github.com/apache/incubator-hugegraph/pull/2150))
+- refact(core): remove lock of globalMasterInfo to optimize perf
([#2151](https://github.com/apache/incubator-hugegraph/pull/2151))
+- chore: async remove left index shouldn't effect query
([#2199](https://github.com/apache/incubator-hugegraph/pull/2199))
+- refact(rocksdb): clean & reformat some code
([#2200](https://github.com/apache/incubator-hugegraph/pull/2200))
+- refact(core): optimized batch removal of remaining indices consumed by a
single consumer
([#2203](https://github.com/apache/incubator-hugegraph/pull/2203))
+- add com.janeluo.ikkanalyzer dependency to core model
([#2206](https://github.com/apache/incubator-hugegraph/pull/2206))
+- refact(core): early stop unnecessary loops in edge cache
([#2211](https://github.com/apache/incubator-hugegraph/pull/2211))
+- doc: update README & add QR code
([#2218](https://github.com/apache/incubator-hugegraph/pull/2218))
+- chore: update .asf.yaml for mail rule
([#2221](https://github.com/apache/incubator-hugegraph/pull/2221))
+- chore: improve the UI & content in README
([#2227](https://github.com/apache/incubator-hugegraph/pull/2227))
+- chore: add pr template
([#2234](https://github.com/apache/incubator-hugegraph/pull/2234))
+- doc: modify ASF and remove meaningless CLA
([#2237](https://github.com/apache/incubator-hugegraph/pull/2237))
+- chore(dist): replace wget to curl to download swagger-ui
([#2277](https://github.com/apache/incubator-hugegraph/pull/2277))
+- Update StandardStateMachineCallback.java
([#2290](https://github.com/apache/incubator-hugegraph/pull/2290))
+- doc: update README about start server with example graph
([#2315](https://github.com/apache/incubator-hugegraph/pull/2315))
+- README.md tiny improve
([#2320](https://github.com/apache/incubator-hugegraph/pull/2320))
+- doc: README.md tiny improve
([#2331](https://github.com/apache/incubator-hugegraph/pull/2331))
+- refact: adjust project structure for merge PD & Store[Breaking Change]
([#2338](https://github.com/apache/incubator-hugegraph/pull/2338))
+- chore: disable raft test in normal PR due to timeout problem
([#2349](https://github.com/apache/incubator-hugegraph/pull/2349))
+- chore(ci): add stage profile settings
([#2361](https://github.com/apache/incubator-hugegraph/pull/2361))
+- refact(api): update common 1.2 & fix jersey client code problem
([#2365](https://github.com/apache/incubator-hugegraph/pull/2365))
+- chore: move server info into GlobalMasterInfo
([#2370](https://github.com/apache/incubator-hugegraph/pull/2370))
+- chore: reset hugegraph version to 1.2.0
([#2382](https://github.com/apache/incubator-hugegraph/pull/2382))
+
+
+### hugegraph-computer
+#### Feature Changes
+* feat: implement fast-failover for MessageRecvManager and DataClientManager
([#243](https://github.com/apache/incubator-hugegraph-computer/pull/243))
+* feat: implement parallel send data in load graph step
([#248](https://github.com/apache/incubator-hugegraph-computer/pull/248))
+* feat(k8s): init operator project & add webhook
([#259](https://github.com/apache/incubator-hugegraph-computer/pull/259),
[#263](https://github.com/apache/incubator-hugegraph-computer/pull/263))
+* feat(core): support load vertex/edge snapshot
([#269](https://github.com/apache/incubator-hugegraph-computer/pull/269))
+* feat(k8s): Add MinIO as internal(default) storage
([#272](https://github.com/apache/incubator-hugegraph-computer/pull/272))
+* feat(algorithm): support random walk in computer
([#274](https://github.com/apache/incubator-hugegraph-computer/pull/274),
[#280](https://github.com/apache/incubator-hugegraph-computer/pull/280))
+* feat: use 'foreground' delete policy to cancel k8s job
([#290](https://github.com/apache/incubator-hugegraph-computer/pull/290))
+
+#### Bug Fix
+* fix: superstep not take effect
([#237](https://github.com/apache/incubator-hugegraph-computer/pull/237))
+* fix(k8s): modify inconsistent apiGroups
([#270](https://github.com/apache/incubator-hugegraph-computer/pull/270))
+* fix(algorithm): record loop is not copied
([#276](https://github.com/apache/incubator-hugegraph-computer/pull/276))
+* refact(core): adaptor for common 1.2 & fix a string of possible CI problem
([#286](https://github.com/apache/incubator-hugegraph-computer/pull/286))
+* fix: remove okhttp1 due to conflicts risk
([#294](https://github.com/apache/incubator-hugegraph-computer/pull/294))
+* fix(core): io.grpc.grpc-core dependency conflic
([#296](https://github.com/apache/incubator-hugegraph-computer/pull/296))
+
+#### Option Changes
+* feat(core): isolate namespace for different input data source
([#252](https://github.com/apache/incubator-hugegraph-computer/pull/252))
+* refact(core): support auth config for computer task
([#265](https://github.com/apache/incubator-hugegraph-computer/pull/265))
+
+#### Other Changes
+* remove apache stage repo & update notification rule
([#232](https://github.com/apache/incubator-hugegraph-computer/pull/232))
+* chore: fix empty license file
([#233](https://github.com/apache/incubator-hugegraph-computer/pull/233))
+* chore: enhance mailbox settings & enable require ci
([#235](https://github.com/apache/incubator-hugegraph-computer/pull/235))
+* fix: typo errors in start-computer.sh
([#238](https://github.com/apache/incubator-hugegraph-computer/pull/238))
+* [Feature-241] Add PULL_REQUEST_TEMPLATE
([#242](https://github.com/apache/incubator-hugegraph-computer/pull/242),
[#257](https://github.com/apache/incubator-hugegraph-computer/pull/257))
+* chore: change etcd url only for ci
([#245](https://github.com/apache/incubator-hugegraph-computer/pull/245))
+* doc: update readme & add QR code
([#249](https://github.com/apache/incubator-hugegraph-computer/pull/249))
+* doc(k8s): add building note for missing classes
([#254](https://github.com/apache/incubator-hugegraph-computer/pull/254))
+* chore: reduce mail to dev list
([#255](https://github.com/apache/incubator-hugegraph-computer/pull/255))
+* add: dependency-review
([#266](https://github.com/apache/incubator-hugegraph-computer/pull/266))
+* chore: correct incorrect comment
([#268](https://github.com/apache/incubator-hugegraph-computer/pull/268))
+* refactor(api): ListValue.getFirst() replaces ListValue.get(0)
([#282](https://github.com/apache/incubator-hugegraph-computer/pull/282))
+* Improve: Passing workerId to WorkerStat & Skip wait worker close if master
executes failed
([#292](https://github.com/apache/incubator-hugegraph-computer/pull/292))
+* chore: add check dependencies
([#293](https://github.com/apache/incubator-hugegraph-computer/pull/293))
+* chore(license): update license for 1.2.0
([#299](https://github.com/apache/incubator-hugegraph-computer/pull/299))
+
+### hugegraph-toolchain
+
+#### API Changes
+
+- feat(client): support edgeExistence api
([#544](https://github.com/apache/incubator-hugegraph-toolchain/pull/544))
+- refact(client): update tests for new OLTP traverser APIs
([#550](https://github.com/apache/incubator-hugegraph-toolchain/pull/550))
+
+
+#### Feature Changes
+
+- feat(spark): support spark-sink connector for loader
([#497](https://github.com/apache/incubator-hugegraph-toolchain/pull/497))
+- feat(loader): support kafka as datasource
([#506](https://github.com/apache/incubator-hugegraph-toolchain/pull/506))
+- feat(client): support go client for hugegraph
([#514](https://github.com/apache/incubator-hugegraph-toolchain/pull/514))
+- feat(loader): support docker for loader
([#530](https://github.com/apache/incubator-hugegraph-toolchain/pull/530))
+- feat: update common version and remove jersey code
([#538](https://github.com/apache/incubator-hugegraph-toolchain/pull/538))
+
+
+#### Bug Fix
+
+- fix: convert numbers to strings
([#465](https://github.com/apache/incubator-hugegraph-toolchain/pull/465))
+- fix: hugegraph-spark-loader shell string length limit
([#469](https://github.com/apache/incubator-hugegraph-toolchain/pull/469))
+- fix: spark loader meet Exception: Class is not registered
([#470](https://github.com/apache/incubator-hugegraph-toolchain/pull/470))
+- fix: spark loader Task not serializable
([#471](https://github.com/apache/incubator-hugegraph-toolchain/pull/471))
+- fix: spark with loader has dependency conflicts
([#480](https://github.com/apache/incubator-hugegraph-toolchain/pull/480))
+- fix: spark-loader example schema and struct mismatch
([#504](https://github.com/apache/incubator-hugegraph-toolchain/pull/504))
+- fix(loader): error log
([#499](https://github.com/apache/incubator-hugegraph-toolchain/pull/499))
+- fix: checkstyle && add suppressions.xml
([#500](https://github.com/apache/incubator-hugegraph-toolchain/pull/500))
+- fix(loader): resolve error in loader script
([#510](https://github.com/apache/incubator-hugegraph-toolchain/pull/510))
+- fix: base-ref/head-ref missed in dependency-check-ci on branch push
([#516](https://github.com/apache/incubator-hugegraph-toolchain/pull/516),
[#551](https://github.com/apache/incubator-hugegraph-toolchain/pull/551))
+- fix yarn network connection on linux/arm64 arch
([#519](https://github.com/apache/incubator-hugegraph-toolchain/pull/519))
+- fix(hubble): drop-down box could not display all options
([#535](https://github.com/apache/incubator-hugegraph-toolchain/pull/535))
+- fix(hubble): build with node and yarn
([#543](https://github.com/apache/incubator-hugegraph-toolchain/pull/543))
+- fix(loader): loader options
([#548](https://github.com/apache/incubator-hugegraph-toolchain/pull/548))
+- fix(hubble): parent override children dep version
([#549](https://github.com/apache/incubator-hugegraph-toolchain/pull/549))
+- fix: exclude okhttp1 which has different groupID with okhttp3
([#555](https://github.com/apache/incubator-hugegraph-toolchain/pull/555))
+- fix: github action build docker image failed
([#556](https://github.com/apache/incubator-hugegraph-toolchain/pull/556),
[#557](https://github.com/apache/incubator-hugegraph-toolchain/pull/557))
+- fix: build error with npm not exist & tiny improve
([#558](https://github.com/apache/incubator-hugegraph-toolchain/pull/558))
+
+
+#### Option Changes
+
+- set default data when create graph
([#447](https://github.com/apache/incubator-hugegraph-toolchain/pull/447))
+
+
+#### Other Changes
+
+- chore: remove apache stage repo & update mail rule
([#433](https://github.com/apache/incubator-hugegraph-toolchain/pull/433),
[#474](https://github.com/apache/incubator-hugegraph-toolchain/pull/474),
[#479](https://github.com/apache/incubator-hugegraph-toolchain/pull/479))
+- refact: clean extra store file in all modules
([#434](https://github.com/apache/incubator-hugegraph-toolchain/pull/434))
+- chore: use fixed node.js version 16 to avoid ci problem
([#437](https://github.com/apache/incubator-hugegraph-toolchain/pull/437),
[#441](https://github.com/apache/incubator-hugegraph-toolchain/pull/441))
+- chore(hubble): use latest code in Dockerfile
([#440](https://github.com/apache/incubator-hugegraph-toolchain/pull/440))
+- chore: remove maven plugin for docker build
([#443](https://github.com/apache/incubator-hugegraph-toolchain/pull/443))
+- chore: improve spark parallel
([#450](https://github.com/apache/incubator-hugegraph-toolchain/pull/450))
+- doc: fix build status badge link
([#455](https://github.com/apache/incubator-hugegraph-toolchain/pull/455))
+- chore: keep hadoop-hdfs-client and hadoop-common version consistent
([#457](https://github.com/apache/incubator-hugegraph-toolchain/pull/457))
+- doc: add basic contact info & QR code in README
([#462](https://github.com/apache/incubator-hugegraph-toolchain/pull/462),
[#475](https://github.com/apache/incubator-hugegraph-toolchain/pull/475))
+- chore: disable PR up-to-date in branch
([#473](https://github.com/apache/incubator-hugegraph-toolchain/pull/473))
+- chore: auto add pr auto label by path
([#466](https://github.com/apache/incubator-hugegraph-toolchain/pull/466),
[#528](https://github.com/apache/incubator-hugegraph-toolchain/pull/528))
+- chore: unify the dependencies versions of the entire project
([#478](https://github.com/apache/incubator-hugegraph-toolchain/pull/478))
+- chore(deps): bump async, semver, word-wrap, browserify-sign in hubble-fe
([#484](https://github.com/apache/incubator-hugegraph-toolchain/pull/484),
[#491](https://github.com/apache/incubator-hugegraph-toolchain/pull/491),
[#494](https://github.com/apache/incubator-hugegraph-toolchain/pull/494),
[#529](https://github.com/apache/incubator-hugegraph-toolchain/pull/529))
+- chore: add pr template
([#498](https://github.com/apache/incubator-hugegraph-toolchain/pull/498))
+- doc(hubble): add docker-compose to start with server
([#522](https://github.com/apache/incubator-hugegraph-toolchain/pull/522))
+- chore(ci): add stage profile settings
([#536](https://github.com/apache/incubator-hugegraph-toolchain/pull/536))
+- chore(client): increase the api num as the latest server commit + 10
([#546](https://github.com/apache/incubator-hugegraph-toolchain/pull/546))
+- chore(spark): install hugegraph from source
([#552](https://github.com/apache/incubator-hugegraph-toolchain/pull/552))
+- doc: adjust docker related desc in readme
([#559](https://github.com/apache/incubator-hugegraph-toolchain/pull/559))
+- chore(license): update license for 1.2
([#560](https://github.com/apache/incubator-hugegraph-toolchain/pull/560),
[#561](https://github.com/apache/incubator-hugegraph-toolchain/pull/561))
+
+
+
+### hugegraph-commons
+
+#### Feature Changes
+
+- feat(common): replace jersey dependencies with OkHttp (Breaking Change)
([#133](https://github.com/apache/incubator-hugegraph-commons/pull/133))
+
+#### Bug Fix
+
+- fix(common): handle spring-boot2/jersey dependency conflicts
([#131](https://github.com/apache/incubator-hugegraph-commons/pull/131))
+- fix: Assert.assertThrows() should check result of exceptionConsumer
([#135](https://github.com/apache/incubator-hugegraph-commons/pull/135))
+- fix(common): json param convert
([#137](https://github.com/apache/incubator-hugegraph-commons/pull/137))
+
+#### Other Changes
+
+- refact(common): add more construction methods for convenient
([#132](https://github.com/apache/incubator-hugegraph-commons/pull/132))
+- add: dependency-review
([#134](https://github.com/apache/incubator-hugegraph-commons/pull/134))
+- refact(common): rename jsonutil to avoid conflicts with server
([#136](https://github.com/apache/incubator-hugegraph-commons/pull/136))
+- doc: update README for release
([#138](https://github.com/apache/incubator-hugegraph-commons/pull/138))
+- update licence
([#139](https://github.com/apache/incubator-hugegraph-commons/pull/139))
+
+### Release Details
+
+Please check the release details in each repository:
+
+- [Server Release
Notes](https://github.com/apache/incubator-hugegraph/releases)
+- [Toolchain Release
Notes](https://github.com/apache/incubator-hugegraph-toolchain/releases)
+- [Computer Release
Notes](https://github.com/apache/incubator-hugegraph-computer/releases)
+- [Commons Release
Notes](https://github.com/apache/incubator-hugegraph-commons/releases)
diff --git a/docs/changelog/hugegraph-1.3.0-release-notes.md
b/docs/changelog/hugegraph-1.3.0-release-notes.md
new file mode 100644
index 00000000..9354133c
--- /dev/null
+++ b/docs/changelog/hugegraph-1.3.0-release-notes.md
@@ -0,0 +1,163 @@
+---
+id: 'release-1.3.0'
+title: 'HugeGraph 1.3.0 Release Notes'
+sidebar_label: 'Release-1.3.0'
+sidebar_position: 3
+---
+
+### Operating Environment / Version Description
+
+1. consider using Java 11 in `hugegraph/toolchain/commons`, also compatible
with Java 8 now.
+2. `hugegraph-computer` required to use Java 11, **not compatible with Java
8!**
+3. Using Java8 may loss some security ensured, we recommend using Java 11 in
**production env** with [AuthSystem](/docs/config/config-authentication/)
enabled.
+
+**1.3.0** is the **last major** version compatible with **Java 8**,
compatibility with Java 8 will end in
+next release(1.5.0) when
[PD/Store](https://github.com/apache/hugegraph/issues/2265) merged into
+master branch (Except for the `java-client`).
+
+PS: In the future, we will gradually upgrade the java version from `Java 11 ->
Java 17 -> Java 21.`
+
+> WIP: this doc is under construction, please wait for the final version
(BETA)
+
+### hugegraph
+
+> In this version, we have fixed some SEC-related issues. If used in an online
service or exposed to
+> the public, please upgrade to the latest version and enable authorization
authentication
+
+#### API Changes
+
+* feat(api): optimize adjacent-edges query
([#2408](https://github.com/apache/incubator-hugegraph/pull/2408))
+
+#### Feature Changes
+
+- feat: support docker use the auth when starting
([#2403](https://github.com/apache/incubator-hugegraph/pull/2403))
+- feat: added the OpenTelemetry trace support
([#2477](https://github.com/apache/incubator-hugegraph/pull/2477))
+
+#### Bug Fix
+
+- fix(core): task restore interrupt problem on restart server
([#2401](https://github.com/apache/incubator-hugegraph/pull/2401))
+- fix(server): reinitialize the progress to set up graph auth friendly
([#2411](https://github.com/apache/incubator-hugegraph/pull/2411))
+- fix(chore): remove zgc in dockerfile for ARM env
([#2421](https://github.com/apache/incubator-hugegraph/pull/2421))
+- fix(server): make CacheManager constructor private to satisfy the singleton
pattern ([#2432](https://github.com/apache/incubator-hugegraph/pull/2432))
+- fix(server): unify the license headers
([#2438](https://github.com/apache/incubator-hugegraph/pull/2438))
+- fix: format and clean code in dist and example modules
([#2441](https://github.com/apache/incubator-hugegraph/pull/2441))
+- fix: format and clean code in core module
([#2440](https://github.com/apache/incubator-hugegraph/pull/2440))
+- fix: format and clean code in modules
([#2439](https://github.com/apache/incubator-hugegraph/pull/2439))
+- fix(server): clean up the code
([#2456](https://github.com/apache/incubator-hugegraph/pull/2456))
+- fix(server): remove extra blank lines
([#2459](https://github.com/apache/incubator-hugegraph/pull/2459))
+- fix(server): add tip for gremlin api NPE with an empty query
([#2467](https://github.com/apache/incubator-hugegraph/pull/2467))
+- fix(server): fix the metric name when promthus collects hugegraph metric,
see issue ([#2462](https://github.com/apache/incubator-hugegraph/pull/2462))
+- fix(server): `serverStarted` error when execute gremlin example
([#2473](https://github.com/apache/incubator-hugegraph/pull/2473))
+- fix(auth): enhance the URL check
([#2422](https://github.com/apache/incubator-hugegraph/pull/2422))
+
+#### Option Changes
+
+* refact(server): enhance the storage path in RocksDB & clean code
([#2491](https://github.com/apache/incubator-hugegraph/pull/2491))
+
+#### Other Changes
+
+- chore: add a license link
([#2398](https://github.com/apache/incubator-hugegraph/pull/2398))
+- doc: enhance NOTICE info to keep it clear
([#2409](https://github.com/apache/incubator-hugegraph/pull/2409))
+- chore(server): update swagger info for default server profile
([#2423](https://github.com/apache/incubator-hugegraph/pull/2423))
+- fix(server): unify license header for protobuf file
([#2448](https://github.com/apache/incubator-hugegraph/pull/2448))
+- chore: improve license header checker confs and pre-check header when
validating ([#2445](https://github.com/apache/incubator-hugegraph/pull/2445))
+- chore: unify to call SchemaLabel.getLabelId()
([#2458](https://github.com/apache/incubator-hugegraph/pull/2458))
+- chore: refine the hg-style.xml specification
([#2457](https://github.com/apache/incubator-hugegraph/pull/2457))
+- chore: Add a newline formatting configuration and a comment for warning
([#2464](https://github.com/apache/incubator-hugegraph/pull/2464))
+- chore(server): clear context after req done
([#2470](https://github.com/apache/incubator-hugegraph/pull/2470))
+
+### hugegraph-toolchain
+
+#### API Changes
+
+#### Feature Changes
+
+* fix(loader): update shade plugin for spark loader
([#566](https://github.com/apache/incubator-hugegraph-toolchain/pull/566))
+* fix(hubble): yarn install timeout in arm64
([#583](https://github.com/apache/incubator-hugegraph-toolchain/pull/583))
+* fix(loader): support file name with prefix for hdfs source
([#571](https://github.com/apache/incubator-hugegraph-toolchain/pull/571))
+* feat(hubble): warp the exception info in HugeClientUtil
([#589](https://github.com/apache/incubator-hugegraph-toolchain/pull/589))
+
+#### Bug Fix
+
+* fix: concurrency issue causing file overwrite due to identical filenames
([#572](https://github.com/apache/incubator-hugegraph-toolchain/pull/572))
+
+#### Option Changes
+
+* feat(client): support user defined OKHTTPClient configs
([#590](https://github.com/apache/incubator-hugegraph-toolchain/pull/590))
+
+#### Other Changes
+
+* doc: update copyright date(year) in NOTICE
([#567](https://github.com/apache/incubator-hugegraph-toolchain/pull/567))
+* chore(deps): bump ip from 1.1.5 to 1.1.9 in /hugegraph-hubble/hubble-fe
([#580](https://github.com/apache/incubator-hugegraph-toolchain/pull/580))
+* refactor(hubble): enhance maven front plugin
([#568](https://github.com/apache/incubator-hugegraph-toolchain/pull/568))
+* chore(deps): bump es5-ext from 0.10.53 to 0.10.63 in
/hugegraph-hubble/hubble-fe
([#582](https://github.com/apache/incubator-hugegraph-toolchain/pull/582))
+* chore(hubble): Enhance code style in hubble
([#592](https://github.com/apache/incubator-hugegraph-toolchain/pull/592))
+* chore: upgrade version to 1.3.0
([#596](https://github.com/apache/incubator-hugegraph-toolchain/pull/596))
+* chore(ci): update profile commit id for 1.3
([#597](https://github.com/apache/incubator-hugegraph-toolchain/pull/597))
+
+### hugegraph-commons
+
+#### Feature Changes
+
+* feat: support user defined RestClientConfig/HTTPClient params
([#140](https://github.com/apache/incubator-hugegraph-commons/pull/140))
+
+#### Bug Fix
+
+#### Other Changes
+
+* chore: disable clean flatten for deploy
([#141](https://github.com/apache/incubator-hugegraph-commons/pull/141))
+
+### Release Details
+
+### hugegraph-ai
+
+
+This is the first release version of hugegraph-ai, it contains a variety of
features, including
+an initialized Python client, knowledge graph construction capabilities
through LLM, and the integration
+of RAG based on HugeGraph.
+
+It also adds significant functionalities on python-client such as variable
APIs,
+auth, metric, traverser, and task APIs, as well as interactive and visual demo
creation with Gradio.
+In addition to these features, the release addresses several bugs and issues,
ensuring a more stable
+and error-free user experience. Maintenance tasks such as dependency updates,
project structure improvements,
+and the addition of basic CI further enhance the project's robustness and
developer workflow.
+
+> This release encapsulates the collaborative efforts of the HugeGraph
community, with contributions
+> from various members, ensuring the project's continuous growth and
improvement.
+
+
+#### Feature Changes
+
+* feat: initialize hugegraph python client
([#5](https://github.com/apache/incubator-hugegraph-ai/pull/5))
+* feat(llm): knowledge graph construction by llm
([#7](https://github.com/apache/incubator-hugegraph-ai/pull/7))
+* feat: initialize rag based on HugeGraph
([#20](https://github.com/apache/incubator-hugegraph-ai/pull/20))
+* feat(client): add variables api and test
([#24](https://github.com/apache/incubator-hugegraph-ai/pull/24))
+* feat: add llm wenxinyiyan & config util & spo_triple_extract
([#27](https://github.com/apache/incubator-hugegraph-ai/pull/27))
+* feat: add auth&metric&traverser&task api and ut
([#28](https://github.com/apache/incubator-hugegraph-ai/pull/28))
+* feat: refactor construct knowledge graph task
([#29](https://github.com/apache/incubator-hugegraph-ai/pull/29))
+* feat: Introduce gradio for creating interactive and visual demo
([#30](https://github.com/apache/incubator-hugegraph-ai/pull/30))
+
+#### Bug Fix
+
+* fix: invalid GitHub label
([#3](https://github.com/apache/incubator-hugegraph-ai/pull/3))
+* fix: import error
([#13](https://github.com/apache/incubator-hugegraph-ai/pull/13))
+* fix: function getEdgeByPage(): the generated query url does not include the
parameter page ([#15](https://github.com/apache/incubator-hugegraph-ai/pull/15))
+* fix: issue template
([#23](https://github.com/apache/incubator-hugegraph-ai/pull/23))
+* fix: base-ref/head-ref missed in dependency-check-ci on branch push
([#25](https://github.com/apache/incubator-hugegraph-ai/pull/25))
+
+#### Other Changes
+
+* chore: add asf.yaml and ISSUE_TEMPLATE
([#1](https://github.com/apache/incubator-hugegraph-ai/pull/1))
+* Bump urllib3 from 2.0.3 to 2.0.7 in /hugegraph-python
([#8](https://github.com/apache/incubator-hugegraph-ai/pull/8))
+* chore: create .gitignore file for py
([#9](https://github.com/apache/incubator-hugegraph-ai/pull/9))
+* refact: improve project structure & add some basic CI
([#17](https://github.com/apache/incubator-hugegraph-ai/pull/17))
+* chore: Update LICENSE and NOTICE
([#31](https://github.com/apache/incubator-hugegraph-ai/pull/31))
+* chore: add release scripts
([#33](https://github.com/apache/incubator-hugegraph-ai/pull/33))
+* chore: change file chmod 755
([#34](https://github.com/apache/incubator-hugegraph-ai/pull/34))
+
+Please check the release details/contributor in each repository:
+
+- [Server Release
Notes](https://github.com/apache/incubator-hugegraph/releases)
+- [Toolchain Release
Notes](https://github.com/apache/incubator-hugegraph-toolchain/releases)
+- [AI Release Notes](https://github.com/apache/incubator-hugegraph-ai/releases)
+- [Commons Release
Notes](https://github.com/apache/incubator-hugegraph-commons/releases)
diff --git a/docs/contribution-guidelines/_category_.json
b/docs/contribution-guidelines/_category_.json
new file mode 100644
index 00000000..9bad1eb4
--- /dev/null
+++ b/docs/contribution-guidelines/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Contribution Guidelines",
+ "position": 8
+}
\ No newline at end of file
diff --git a/docs/contribution-guidelines/committer-guidelines.md
b/docs/contribution-guidelines/committer-guidelines.md
new file mode 100644
index 00000000..b767b3c3
--- /dev/null
+++ b/docs/contribution-guidelines/committer-guidelines.md
@@ -0,0 +1,341 @@
+---
+id: 'committer-guide'
+title: 'Apache HugeGraph Committer Guide'
+sidebar_label: 'Apache HugeGraph Committer Guide'
+sidebar_position: 5
+---
+
+> This document outlines the requirements and process for becoming an Apache
Committer. The corresponding ASF official document can be found at:
https://community.apache.org/newcommitter.html
+
+## Candidate Requirements
+
+1. Candidates must adhere to the [Apache Code of
Conduct](https://www.apache.org/foundation/policies/conduct.html).
+2. PMC members will assess candidates' interactions with others and
contributions through [mailing
lists](https://lists.apache.org/[email protected]),
[issues](https://github.com/apache/hugegraph/issues), [pull
requests](https://github.com/apache/incubator-hugegraph/pulls), and [official
documentation](https://hugegraph.apache.org/docs).
+3. Considerations for evaluating candidates as potential Committers include:
+ 1. Ability to collaborate with community members
+ 2. Mentorship capabilities
+ 3. Community involvement
+ 4. Level of contribution
+ 5. Personal skills/abilities
+
+## Nomination Process
+
+**Discussion โ Vote โ Invitation โ Announcement**
+
+### 1. Initiate Community Discussion (DISCUSS)
+
+Any (P)PMC member of HugeGraph can initiate a voting discussion. After
identifying valuable contributions from a community contributor and obtaining
the candidate's consent, a discussion can be initiated via
[email protected].
+The initiator of the discussion should clearly state the candidate's
contributions in the discussion email and provide URLs or other information for
confirming the contributions, facilitating discussion and analysis.
+
+Below is a template for HugeGraph emails: (For reference only)
+
+> Note: The term `xxx` will be used to refer to the candidate. Typically,
`xxx` represents an easily readable name (e.g., `Simon Jay`).
+>
+> ASF-INFRA recommends **avoiding** the use of less readable `ID` directly as
a reference to the person in emails (e.g., avoid `simon321` or `wh0isSim0n` ๐).
+>
+> In addition, it is best to choose the **"pure text"** mode, otherwise the
typesetting may be chaotic in the ASF Mailing-list UI
+
+```markdown
+To: [email protected]
+Subject: [DISCUSS] XXX as a HugeGraph Committer Candidate
+
+Hi all:
+
+I am pleased to nominate xxx for the role of HugeGraph Committer based on
his/her contributions over the past few months.
+
+[ Candidate's Contribution Summary ]
+
+Here are the relevant PRs (issues) he/she has participated in:
+
+**Core Features:**
+- Feature 1: [ Reference Links ]
+- ...
+
+**Fix/Chore/Release:**
+
+**Doc:**
+
+[ Candidate's Current Notable Contributions ]
+
+His/Her contributions bring the following benefits to the community, helping
us in the following ways:
+
+[ Candidate's Contributions and Benefits to the Community ]
+
+In view of the above contributions, I elect xxx as Committer of the HugeGraph
project.
+
+[ Reference Links ]
+1. PR1
+2. PR2
+3. ...
+
+Welcome everyone to share opinions~
+
+Thanks!
+```
+
+For contribution links in discussion emails, you can use the statistical
feature of [GitHub Search](https://github.com/search) by entering corresponding
keywords as needed. You can also adjust parameters and add new repositories
such as `repo:apache/incubator-hugegraph-computer`. Pay special attention to
adjusting the **time range** (below is a template reference, please adjust the
parameters accordingly):
+
+- Number of PR submissions
+ - `is:pr author:xxx repo:apache/incubator-hugegraph
repo:apache/incubator-hugegraph-doc created:>2023-06-01 updated:<2023-12-25`
+- Lines of code submissions/changes
+ -
https://github.com/apache/incubator-hugegraph/graphs/contributors?from=2023-06-01&to=2023-12-25&type=c
+ -
https://github.com/apache/incubator-hugegraph-doc/graphs/contributors?from=2023-06-01&to=2023-12-25&type=c
+- Number of PR submissions associated with issues
+ - `linked:issue involves:xxx repo:apache/incubator-hugegraph
repo:apache/incubator-hugegraph-doc created:>2023-06-01 updated:<2023-12-25`
+- Number of PR reviews
+ - `type:pr reviewed-by:xxx repo:apache/incubator-hugegraph
repo:apache/incubator-hugegraph-doc created:>2023-06-01 updated:<2023-12-25`
+- Number of merge commits
+ - `type:pr author:xxx repo:apache/incubator-hugegraph
repo:apache/incubator-hugegraph-doc created:>2023-06-01 updated:<2023-12-25`
+- Effective lines merged
+ -
https://github.com/apache/incubator-hugegraph/graphs/contributors?from=2023-06-01&to=2023-12-25&type=c
+ -
https://github.com/apache/incubator-hugegraph-doc/graphs/contributors?from=2023-06-01&to=2023-12-25&type=c
+- Number of issue submissions
+ - `type:issue author:xxx repo:apache/incubator-hugegraph
repo:apache/incubator-hugegraph-doc created:>2023-06-01 updated:<2023-12-25`
+- Number of issue fixes
+ - Based on the number of issue submissions, select those with a closed
status.
+- Number of issue participations
+ - `type:issue involves:xxx repo:apache/incubator-hugegraph
repo:apache/incubator-hugegraph-doc created:>2023-06-01 updated:<2023-12-25`
+- Number of issue comments
+ - `type:issue commenter:xxx repo:apache/incubator-hugegraph
repo:apache/incubator-hugegraph-doc created:>2023-06-01 updated:<2023-12-25`
+- Number of PR comments
+ - `type:pr commenter:xxx repo:apache/incubator-hugegraph
repo:apache/incubator-hugegraph-doc created:>2023-06-01 updated:<2023-12-25`
+
+For participation in mailing lists, you can use
https://lists.apache.org/[email protected]:lte=10M:xxx.
+
+### Initiate Community Voting Email (VOTE)
+
+If there are no dissenting opinions within the specified time frame of the
discussion email, the initiator of the discussion needs to initiate a voting
email for the committer election at [email protected].
+
+Below is the corresponding email template:
+
+```text
+To: [email protected]
+Subject: [VOTE] xxx as a HugeGraph Committer
+
+Hi all:
+
+Through the discussion of last week:
+[ Discussion Mailing List Link ]
+
+We have discussed and listed what xxx participated in the HugeGraph community.
+I believe making him/her a Committer will enhance the work for HugeGraph.
+
+So, I am happy to call VOTE to accept xxx as a HugeGraph Committer.
+
+Voting will continue for at least 72 hours or until the required number of
votes is reached.
+
+Please vote accordingly:
+[ ] +1 approve
+[ ] +0 no opinion
+[ ] -1 disapprove with the reason
+
+Thanks!
+```
+
+Then, (P)PMC members reply to the email with +1 or -1 to express their
opinions. Generally, at least 3 votes of +1 are needed to conclude the vote.
+
+### Announcement of Voting Results (RESULT)
+
+After the voting email concludes, the initiator of the vote needs to remind
the end of the voting in the email. Additionally, the initiator needs to
announce the voting results via email to [email protected]. The
email template can be as follows:
+
+```text
+To: [email protected]
+Subject: [RESULTS][VOTE] xxx as a HugeGraph Committer
+
+Hi all: The vote for "xxx" as an HugeGraph Committer has PASSED and closed now.
+
+The result is as follows: X PMC +1 Votes:
+- A (PMC ID)
+- B
+- C...
+
+Vote thread:
+put vote thread link here
+
+Then I'm going to invite xxx to join us soon. Thanks for everyone's support!
+```
+
+### Send Invitation Email to Candidate (INVITE)
+
+After the announcement of the voting results email is sent, the initiator of
the vote should send an invitation email to the candidate. The invitation email
is addressed to the candidate and cc'd to [email protected]. The
invited candidate must reply to the specified email address to accept or reject
the invitation.
+
+Below is a template for reference:
+
+```text
+To: [ Candidate's Email ]
+Cc: [email protected]
+Subject: Invitation to become HugeGraph committer: xxx
+
+Hello xxx,
+
+The HugeGraph Project Management Committee (PPMC)
+hereby offers you committer privileges to the project.
+These privileges are offered on the understanding that you'll use them
+reasonably and with common sense. We like to work on trust
+rather than unnecessary constraints.
+
+Being a committer enables you to more easily make
+changes without needing to go through the patch
+submission process.
+
+Being a committer does not require you to
+participate any more than you already do. It does
+tend to make one even more committed. You will
+probably find that you spend more time here.
+
+Of course, you can decline and instead remain as a
+contributor, participating as you do now.
+
+A. This personal invitation is a chance for you to
+accept or decline in private. Either way, please
+let us know in reply to the [email protected]
+address only.
+
+B. If you accept, the next step is to register an iCLA:
+ 1. Details of the iCLA and the forms are found
+ through this link: https://www.apache.org/licenses/#clas
+
+ 2. Instructions for its completion and return to
+ the Secretary of the ASF are found at
+ https://www.apache.org/licenses/#submitting
+
+ 3. When you transmit the completed iCLA, request
+ to notify the Apache HugeGraph project and choose a
+ unique Apache ID. Look to see if your preferred
+ ID is already taken at
+ https://people.apache.org/committer-index.html
+ This will allow the Secretary to notify the PMC
+ when your iCLA has been recorded.
+
+When recording of your iCLA is noted, you will
+receive a follow-up message with the next steps for
+establishing you as a committer.
+
+With the expectation of your acceptance, welcome!
+
+The Apache HugeGraph(incubating) PPMC
+```
+
+### Candidate Accepts Invitation (ACCEPT)
+
+The candidate should reply to the aforementioned email (select **reply all**)
to indicate acceptance of the invitation. Below is a template for the email:
+
+```text
+To: [ Sender's Email ]
+Cc: [email protected]
+Subject: Re: Invitation to become HugeGraph committer: xxx
+
+Hello Apache HugeGraph(incubating) PPMC,
+
+I accept the invitation.
+
+Thanks to the Apache HugeGraph Community for recognizing my work, I
+will continue to actively participate in the work of the Apache
+HugeGraph(incubating).
+
+Next, I will follow the instructions to complete the next steps:
+Signing and submitting iCLA and registering Apache ID.
+
+xxx
+```
+
+Of course, the candidate may also choose to decline the invitation, in which
case there is no template:)
+
+Once the invitation is accepted, the candidate needs to complete the following
tasks:
+
+- Subscribe to [email protected], for specific steps/filtering
configurations, please refer to the
[documentation](https://hugegraph.apache.org/docs/contribution-guidelines/subscribe/)
+- Sign the [ICLA](https://www.apache.org/licenses/icla.pdf), follow the steps
belowโ
+
+#### ICLA Signing Process
+
+1. Download the [ICLA](https://www.apache.org/licenses/icla.pdf)
+2. Open the PDF and fill in the required information. All fields must be
filled in English. It is recommended to use a PDF tool to edit and sign.
+ 1. **Full name**: First name followed by last name
+ 2. **Public name**: Optional, defaults to the same as `Full name`
+ 3. Check the box only if you entered names with your family name first
+ 4. **Postal Address**: English address, starting from small to large,
including detailed street address
+ 5. **Country:** Country of residence in English
+ 6. **E-mail**: Email address, preferably the same as the one used in the
invitation email
+ 7. **(optional) preferred Apache id(s)**: Choose an SVN ID that is not
listed on the [Apache committer](http://people.apache.org/committer-index.html)
page
+ 8. **(optional) notify project**: Apache HugeGraph(incubating)
+ 9. **Signature: Must be handwritten using a PDF tool**
+ 10. **Date:** Format as xxxx-xx-xx
+3. After signing, rename `icla.pdf` to `name-pinyin-icla.pdf`
+4. Send the following email and attach `name-pinyin-icla.pdf` as a reference.
+
+```text
+To: [email protected]
+Subject: ICLA Information
+
+Hello everyone:
+
+I have accepted the Apache HugeGraph(incubating) PPMC invitation to
+become a HugeGraph committer, the attachment is my ICLA information.
+
+(Optional) My GitHub account is https://github.com/xxx. Thanks!
+
+xxx
+```
+
+> For more details, please refer to
https://github.com/apache/hugegraph/issues/1732.
+
+PMC members will await confirmation of the ICLA record from the Apache
secretary team. Candidates and PMC members will receive the following email:
+
+```text
+Dear xxx,
+
+This message acknowledges receipt of your ICLA, which has been filed in the
Apache Software Foundation records.
+
+Your account (with id xxx) has been requested for you and you should receive
email with next steps
+within the next few days (this process can take up to a week).
+
+Please refer to https://www.apache.org/foundation/how-it-works.html#developers
+for more information about roles at Apache.
+```
+
+#### Setting Up Apache Account and Development Environment (CONFIG)
+
+After the record is completed, the candidate will receive an email from
[email protected] with the subject `Welcome to the Apache Software Foundation`.
At this point, the candidate needs to follow the steps in the email to set up
the Apache account and development environment:
+
+1. Reset the password at https://id.apache.org/reset/enter.
+2. Configure personal information at
https://whimsy.apache.org/roster/committer/xxx.
+3. Associate GitHub account at https://gitbox.apache.org/boxer.
+ - This step requires configuring GitHub Two-Factor Authentication (2FA).
+4. **The nominating PMC member must add the new Committer to the official list
of committers via the [Roster](https://whimsy.apache.org/roster/ppmc/hugegraph)
page.** (**Important**, otherwise repository permissions will not take effect).
+ - After this step, the candidate becomes a new Committer and gains write
access to the GitHub HugeGraph repository.
+5. (Optional) The new Committer can apply for free use of JetBrains' full
range of products with their Apache account
[here](https://www.jetbrains.com/shop/eform/apache).
+
+
+### Announcing via Email (ANNOUNCE)
+
+After the candidate completes the above steps, they will officially become a
Committer of HugeGraph. At this point, they need to send an announcement email
to [email protected]. Below is a template for the email:
+
+```text
+To: [email protected]
+Subject: [ANNOUNCE] New Committer: xxx
+
+Hi everyone, The PPMC for Apache HugeGraph(incubating) has invited xxx to
+become a Committer and we are pleased to announce that he/she has accepted.
+
+xxx is being active in the HugeGraph community & dedicated to ... modules,
+and we are glad to see his/her more interactions with the community in the
future.
+
+(Optional) His/Her GitHub account is https://github.com/xxx
+
+Welcome xxx, and please enjoy your community journey~
+
+Thanks!
+
+The Apache HugeGraph PPMC
+```
+
+## References
+
+1. https://community.apache.org/newcommitter.html (ASF official documentation)
+2. https://infra.apache.org/new-committers-guide.html
+3. https://www.apache.org/dev/pmc.html#newcommitter
+4. https://linkis.apache.org/zh-CN/community/how-to-vote-a-committer-pmc
+5. https://www.apache.org/licenses/contributor-agreements.html#submitting
+6. https://www.apache.org/licenses/cla-faq.html#printer
+7. https://linkis.apache.org/zh-CN/community/how-to-sign-apache-icla
+8. https://github.com/apache/hugegraph/issues/1732 (HugeGraph ICLA related
issue)
diff --git a/docs/contribution-guidelines/contribute.md
b/docs/contribution-guidelines/contribute.md
new file mode 100644
index 00000000..0cd893e8
--- /dev/null
+++ b/docs/contribution-guidelines/contribute.md
@@ -0,0 +1,178 @@
+---
+id: 'contribute-to-hugegraph'
+title: 'How to Contribute to HugeGraph'
+sidebar_label: 'How to Contribute to HugeGraph'
+sidebar_position: 1
+---
+
+Thanks for taking the time to contribute! As an open source project, HugeGraph
is looking forward to be contributed from everyone, and we are also grateful to
all the contributors.
+
+The following is a contribution guide for HugeGraph:
+
+<img width="884" alt="image"
src="https://user-images.githubusercontent.com/9625821/159643158-8bf72c0a-93c3-4a58-8912-7b2ab20ced1d.png"
/>
+
+## 1. Preparation
+
+Optional: You can use [GitHub desktop](https://desktop.github.com/) to greatly
simplify the commit and update process.
+
+We can contribute by reporting issues, submitting code patches or any other
feedback.
+
+Before submitting the code, we need to do some preparation:
+
+1. Sign up or login to GitHub: [https://github.com](https://github.com)
+
+2. Fork HugeGraph repo from GitHub:
[https://github.com/apache/incubator-hugegraph/fork](https://github.com/apache/hugegraph/fork)
+
+3. Clone code from fork repo to local:
`https://github.com/${GITHUB_USER_NAME}/hugegraph`
+
+ ```shell
+ # clone code from remote to local repo
+ git clone https://github.com/${GITHUB_USER_NAME}/hugegraph
+ ```
+
+4. Configure local HugeGraph repo
+
+ ```shell
+ cd hugegraph
+
+ # add upstream to synchronize the latest code
+ git remote add hugegraph https://github.com/apache/hugegraph
+
+ # set name and email to push code to github
+ git config user.name "{full-name}" # like "Jermy Li"
+ git config user.email "{email-address-of-github}" # like "[email protected]"
+ ```
+
+## 2. Create an Issue on GitHub
+
+If you encounter bugs or have any questions, please go to [GitHub
Issues](https://github.com/apache/incubator-hugegraph/issues) to report them
and feel free to [create an
issue](https://github.com/apache/hugegraph/issues/new).
+
+## 3. Make changes of code locally
+
+#### 3.1 Create a new branch
+
+Please don't use master branch for development. We should create a new branch
instead:
+
+```shell
+# checkout master branch
+git checkout master
+# pull the latest code from official hugegraph
+git pull hugegraph
+# create new branch: bugfix-branch
+git checkout -b bugfix-branch
+```
+
+#### 3.2 Change the code
+
+Assume that we need to modify some files like "HugeGraph.java" and
"HugeFactory.java":
+
+```shell
+# modify code to fix a bug
+vim hugegraph-core/src/main/java/org/apache/hugegraph/HugeGraph.java
+vim hugegraph-core/src/main/java/org/apache/hugegraph/HugeFactory.java
+# run test locally (optional)
+mvn test -Pcore-test,memory
+```
+Note: In order to be consistent with the code style easily, if you use
[IDEA](https://www.jetbrains.com/idea/) as your IDE, you can directly
[import](https://www.jetbrains.com/help/idea/configuring-code-style.html) our
code style [configuration file](./hugegraph-style.xml).
+
+##### 3.2.1 Check licenses
+If we want to add new third-party dependencies to the `HugeGraph` project, we
need to do the following things:
+1. Find the third-party dependent repository, put the dependent `license` file
into
[./hugegraph-dist/release-docs/licenses/](https://github.com/apache/incubator-hugegraph/tree/master/hugegraph-server/hugegraph-dist/release-docs/licenses)
path.
+2. Declare the dependency in
[./hugegraph-dist/release-docs/LICENSE](https://github.com/apache/incubator-hugegraph/blob/master/hugegraph-server/hugegraph-dist/release-docs/LICENSE)
`LICENSE` information.
+3. Find the NOTICE file in the repository and append it to
[./hugegraph-dist/release-docs/NOTICE](https://github.com/apache/incubator-hugegraph/blob/master/hugegraph-server/hugegraph-dist/release-docs/NOTICE)
file (skip this step if there is no NOTICE file).
+4. Execute locally
[./hugegraph-dist/scripts/dependency/regenerate_known_dependencies.sh](https://github.com/apache/incubator-hugegraph/blob/master/hugegraph-server/hugegraph-dist/scripts/dependency/regenerate_known_dependencies.sh)
to update the dependency list
[known-dependencies.txt](https://github.com/apache/incubator-hugegraph/blob/master/hugegraph-server/hugegraph-dist/scripts/dependency/known-dependencies.txt)
(or manually update) .
+
+**Example**: A new third-party dependency is introduced into the project ->
`ant-1.9.1.jar`
+- The project source code is located at:
https://github.com/apache/ant/tree/rel/1.9.1
+- LICENSE file: https://github.com/apache/ant/blob/rel/1.9.1/LICENSE
+- NOTICE file: https://github.com/apache/ant/blob/rel/1.9.1/NOTICE
+
+The license information of `ant-1.9.1.jar` needs to be specified in the
LICENSE file, and the notice information needs to be specified in the NOTICE
file. The detailed LICENSE file corresponding to ant-1.9.1.jar needs to be
copied to our licenses/ directory. Finally update the known-dependencies.txt
file.
+
+#### 3.3 Commit changes to git repo
+
+After the code has been completed, we submit them to the local git repo:
+
+```shell
+# add files to local git index
+git add hugegraph-core/src/main/java/org/apache/hugegraph/HugeGraph.java
+git add hugegraph-core/src/main/java/org/apache/hugegraph/HugeFactory.java
+# commit to local git repo
+git commit
+```
+
+Please edit the commit message after running `git commit`, we can explain what
and how to fix a bug or implement a feature, the following is an example:
+
+```sh
+Fix bug: run deploy multiple times
+
+fix #ISSUE_ID
+```
+
+> Please remember to fill in the issue id, which was generated by GitHub
after issue creation.
+
+#### 3.4 Push commit to GitHub fork repo
+
+Push the local commit to GitHub fork repo:
+
+```shell
+# push the local commit to fork repo
+git push origin bugfix-branch:bugfix-branch
+```
+
+Note that since GitHub requires submitting code through `username + token`
(instead of using `username + password` directly), you need to create a GitHub
token from https://github.com/settings/tokens:
+<img width="1280" alt="image"
src="https://user-images.githubusercontent.com/9625821/163524204-7fe0e6bf-9c8b-4b1a-ac65-6a0ac423eb16.png"
/>
+
+## 4. Create a Pull Request
+
+Go to the web page of GitHub fork repo, there would be a chance to create a
Pull Request after pushing to a new branch, just click button "Compare & pull
request" to do it. Then edit the description for proposed changes, which can
just be copied from the commit message.
+
+Note: please make sure the email address you used to submit the code is bound
to the GitHub account. For how to bind the email address, please refer to
https://github.com/settings/emails:
+<img width="1280" alt="image"
src="https://user-images.githubusercontent.com/9625821/163522445-2a50a72a-dea2-434f-9868-3a0d40d0d037.png"
/>
+
+## 5. Code review
+
+ Maintainers will start the code review after all the **automatic** checks are
passed:
+
+- Check: Contributor License Agreement is signed
+- Check: Travis CI builds is passed (automatically Test and Deploy)
+
+The commit will be accepted and merged if there is no problem after review.
+
+Please click on "Details" to find the problem if any check does not pass.
+
+If there are checks not passed or changes requested, then continue to modify
the code and push again.
+
+## 6. More changes after review
+
+If we have not passed the review, don't be discouraged. Usually a commit needs
to be reviewed several times before being accepted! Please follow the review
comments and make further changes.
+
+After the further changes, we submit them to the local repo:
+
+```shell
+# commit all updated files in a new commit,
+# please feel free to enter any appropriate commit message, note that
+# we will squash all commits in the pull request as one commit when
+# merging into the master branch.
+git commit -a
+```
+
+> If there are conflicts that prevent the code from being merged, we need to
rebase on master branch:
+>
+> ```shell
+> # synchronize the latest code
+> git checkout master
+> git pull hugegraph
+> # rebase on master
+> git checkout bugfix-branch
+> git rebase -i master
+> ```
+
+And push it to GitHub fork repo again:
+
+```shell
+# force push the local commit to fork repo
+git push -f origin bugfix-branch:bugfix-branch
+```
+
+GitHub will automatically update the Pull Request after we push it, just wait
for code review.
diff --git a/docs/contribution-guidelines/hugegraph-server-idea-setup.md
b/docs/contribution-guidelines/hugegraph-server-idea-setup.md
new file mode 100644
index 00000000..b560694a
--- /dev/null
+++ b/docs/contribution-guidelines/hugegraph-server-idea-setup.md
@@ -0,0 +1,168 @@
+---
+id: 'idea-setup'
+title: 'Setup Server in IDEA (Dev)'
+sidebar_label: 'Setup Server in IDEA'
+sidebar_position: 4
+---
+
+> NOTE: The following configuration is for reference purposes only, and has
been tested on Linux and macOS platforms based on [this
version](https://github.com/apache/incubator-hugegraph/commit/a946ad1de4e8f922251a5241ffc957c33379677f).
+
+### Background
+
+The [Quick Start](/docs/quickstart/hugegraph-server/) section provides
instructions on how to start and stop HugeGraph-Server using **scripts**. In
this guide, we will explain how to run and debug HugeGraph-Server on the Linux
platform using **IntelliJ IDEA**.
+
+The core steps for local startup are the same as starting with **scripts**:
+
+1. Initialize the database backend by executing the `InitStore` class to
initialize the graph.
+2. Start HugeGraph-Server by executing the `HugeGraphServer` class to load the
initialized graph information and start the server.
+
+Before proceeding with the following process, make sure that you have cloned
the source code of HugeGraph
+and have configured the development environment, such as `Java 11` & you could
config your local environment
+with this
[config-doc](https://github.com/apache/incubator-hugegraph/wiki/The-style-config-for-HugeGraph-in-IDEA)
+
+```bash
+git clone https://github.com/apache/hugegraph.git
+```
+
+### Steps
+
+#### 1. Copy Configuration Files
+
+To avoid the impact of configuration file changes on Git tracking, it is
recommended to copy the required configuration files to a separate folder. Run
the following command to copy the files:
+
+```bash
+cp -r hugegraph-dist/src/assembly/static/scripts
hugegraph-dist/src/assembly/static/conf path-to-your-directory
+```
+
+Replace `path-to-your-directory` with the path to the directory where you want
to copy the files.
+
+#### 2. Configure `InitStore` to initialize the graph
+
+First, you need to configure the database backend in the configuration files.
In this example, we will use RocksDB. Open
`path-to-your-directory/conf/graphs/hugegraph.properties` and configure it as
follows:
+
+```properties
+backend=rocksdb
+serializer=binary
+rocksdb.data_path=.
+rocksdb.wal_path=.
+```
+
+Next, open the `Run/Debug Configurations` panel in IntelliJ IDEA and create a
new Application configuration. Follow these steps for the configuration:
+
+- Select `hugegraph-dist` as the `Use classpath of module`.
+- Set the `Main class` to `org.apache.hugegraph.cmd.InitStore`.
+- Set the program arguments to `conf/rest-server.properties`. Note that the
path here is relative to the working directory, so make sure to set the working
directory to `path-to-your-directory`.
+
+> If **user authentication** (authenticator) is configured for
HugeGraph-Server in the **Java 11** environment, you need to refer to the
script
[configuration](https://github.com/apache/incubator-hugegraph/blob/master/hugegraph-server/hugegraph-dist/src/assembly/static/bin/init-store.sh#L52)
in the binary package and add the following **VM options**:
+>
+> ```bash
+> --add-exports=java.base/jdk.internal.reflect=ALL-UNNAMED
+> ```
+>
+> Otherwise, an error will occur:
+>
+> ```java
+> java.lang.reflect.InaccessibleObjectException: Unable to make public static
synchronized void
jdk.internal.reflect.Reflection.registerFieldsToFilter(java.lang.Class,java.lang.String[])
accessible: module java.base does not "exports jdk.internal.reflect" to
unnamed module @xxx
+> ```
+
+Once the configuration is completed, run it. If the execution is successful,
the following runtime logs will be displayed:
+
+```java
+2023-06-05 00:43:37 [main] [INFO] o.a.h.u.ConfigUtil - Scanning option
'graphs' directory './conf/graphs'
+2023-06-05 00:43:37 [main] [INFO] o.a.h.c.InitStore - Init graph with config
file: ./conf/graphs/hugegraph.properties
+......
+2023-06-05 00:43:39 [main] [INFO] o.a.h.b.s.r.RocksDBStore - Write down the
backend version: 1.11
+2023-06-05 00:43:39 [main] [INFO] o.a.h.StandardHugeGraph - Graph 'hugegraph'
has been initialized
+2023-06-05 00:43:39 [main] [INFO] o.a.h.StandardHugeGraph - Close graph
standardhugegraph[hugegraph]
+2023-06-05 00:43:39 [db-open-1] [INFO] o.a.h.b.s.r.RocksDBStore - Opening
RocksDB with data path: ./m
+2023-06-05 00:43:39 [db-open-1] [INFO] o.a.h.b.s.r.RocksDBStore - Opening
RocksDB with data path: ./s
+2023-06-05 00:43:39 [db-open-1] [INFO] o.a.h.b.s.r.RocksDBStore - Opening
RocksDB with data path: ./g
+2023-06-05 00:43:39 [main] [INFO] o.a.h.HugeFactory - HugeFactory shutdown
+2023-06-05 00:43:39 [hugegraph-shutdown] [INFO] o.a.h.HugeFactory - HugeGraph
is shutting down
+```
+
+#### 3. Running `HugeGraphServer`
+
+Similarly, open the `Run/Debug Configurations` panel in IntelliJ IDEA and
create a new `Application` configuration. Follow these steps for the
configuration:
+
+- Select `hugegraph-dist` as the `Use classpath of module`.
+- Set the `Main class` to `org.apache.hugegraph.dist.HugeGraphServer`.
+- Set the program arguments to `conf/gremlin-server.yaml
conf/rest-server.properties`. Similarly, note that the path here is relative to
the working directory, so make sure to set the working directory to
`path-to-your-directory`.
+
+> Similarly, if **user authentication** (authenticator) is configured for
HugeGraph-Server in the **Java 11** environment, you need to refer to the
script
[configuration](https://github.com/apache/incubator-hugegraph/blob/master/hugegraph-server/hugegraph-dist/src/assembly/static/bin/hugegraph-server.sh#L124)
in the binary package and add the following **VM options**:
+>
+> ```bash
+> --add-exports=java.base/jdk.internal.reflect=ALL-UNNAMED
--add-modules=jdk.unsupported --add-exports=java.base/sun.nio.ch=ALL-UNNAMED
+> ```
+> Otherwise, an error will occur:
+>
+> ```java
+> java.lang.reflect.InaccessibleObjectException: Unable to make public static
synchronized void
jdk.internal.reflect.Reflection.registerFieldsToFilter(java.lang.Class,java.lang.String[])
accessible: module java.base does not "exports jdk.internal.reflect" to
unnamed module @xxx
+> ```
+
+Once the configuration is completed, run it. If you see the following logs, it
means that `HugeGraphServer` has been successfully started:
+
+```java
+......
+2023-06-05 00:51:56 [gremlin-server-boss-1] [INFO] o.a.t.g.s.GremlinServer -
Gremlin Server configured with worker thread pool of 1, gremlin pool of 8 and
boss thread pool of 1.
+2023-06-05 00:51:56 [gremlin-server-boss-1] [INFO] o.a.t.g.s.GremlinServer -
Channel started at port 8182.
+```
+
+#### 4. Debugging `HugeGraphServer` (optional)
+
+After completing the above configuration, you can try debugging
`HugeGraphServer`. Run `HugeGraphServer` in debug mode and set a breakpoint at
the following
[location](https://github.com/apache/hugegraph/blob/a946ad1de4e8f922251a5241ffc957c33379677f/hugegraph-api/src/main/java/org/apache/hugegraph/api/graph/VertexAPI.java#L238):
+
+```java
+public String list(@Context GraphManager manager,
+ @PathParam("graph") String graph, @QueryParam("label")
String label,
+ @QueryParam("properties") String properties, ......) {
+ // ignore log
+ Map<String, Object> props = parseProperties(properties);
+```
+
+Then use the RESTful API to request `HugeGraphServer`:
+
+```bash
+curl "http://localhost:8080/graphs/hugegraph/graph/vertices" | gunzip
+```
+
+At this point, you can view detailed variable information in the debugger.
+
+#### 5. Log4j2 Configuration
+
+By default, when running `InitStore` and `HugeGraphServer`, the Log4j2
configuration file path read is `hugegraph-dist/src/main/resources/log4j2.xml`,
not `path-to-your-directory/conf/log4j2.xml`. This configuration file is read
when starting HugeGraph-Server using the **script**.
+
+To avoid maintaining two separate configuration files, you can modify the
Log4j2 configuration file path when running and debugging HugeGraph-Server in
**IntelliJ IDEA**:
+
+1. Open the previously created `Application` configuration.
+2. Click on `Modify options` - `Add VM options`.
+3. Set the VM options to `-Dlog4j.configurationFile=conf/log4j2.xml`.
+
+### Possible Issues
+
+#### 1. java: package sun.misc does not exist
+
+The reason may be that cross-compilation is triggered when using Java 11 to
compile, causing the symbol of `sun.misc.Unsafe` used in the project to not be
found. There are two possible solutions:
+
+1. In IntelliJ IDEA, go to `Preferences/Settings` and find the `Java Compiler`
panel. Then, disable the `--release` option (recommended).
+2. Set the Project SDK to 8 (Deprecated soon).
+
+#### 2. java: *.store.raft.rpc.RaftRequests does not exist (RPC Generated
Files)
+
+The reason is that the source code didn't include the `RPC-generated` files.
You could try 2 ways to fix it:
+1. [CMD]`mvn clean compile` in the **root** directory (Recommend)
+2. [UI] right click on the `hugegraph` repo and select `Maven->Generate
Sources and Update Folders`. This will rebuild the repo and correctly generate
the required files.
+
+#### 3. Unable to Print Location Information (%l) in Log4j2
+
+This is because Log4j2 uses asynchronous loggers. You can refer to the
[official
documentation](https://logging.apache.org/log4j/2.x/manual/layouts.html#LocationInformation)
for configuration details.
+
+---
+
+### References
+
+1. [HugeGraph-Server Quick Start](/docs/quickstart/hugegraph-server/)
+2. [Local Debugging Guide for HugeGraph Server
(Win/Unix)](https://gist.github.com/imbajin/1661450f000cd62a67e46d4f1abfe82c)
+3. ["package sun.misc does not exist" compilation
error](https://youtrack.jetbrains.com/issue/IDEA-180033)
+4. [Cannot compile: java: package sun.misc does not
exist](https://youtrack.jetbrains.com/issue/IDEA-201168)
+5. [The code-style config for HugeGraph in
IDEA](https://github.com/apache/incubator-hugegraph/wiki/The-style-config-for-HugeGraph-in-IDEA)
\ No newline at end of file
diff --git a/docs/contribution-guidelines/subscribe.md
b/docs/contribution-guidelines/subscribe.md
new file mode 100644
index 00000000..7647c29e
--- /dev/null
+++ b/docs/contribution-guidelines/subscribe.md
@@ -0,0 +1,39 @@
+---
+id: 'subscribe-mail-list'
+title: 'Subscribe Mailing Lists'
+sidebar_label: 'Subscribe Mailing Lists'
+sidebar_position: 2
+---
+
+### Subscribe the mailing list
+
+Subscribe to the mailing list by following steps:
+- Email
[[email protected]](mailto:[email protected])
through your email account, and then you will receive a confirmation email.
+- Reply to the confirmation email to confirm your subscription. Then, you will
receive another confirmation email.
+- Now you are a subscriber of the mailing list. If you have more questions,
just email the mailing list and someone will reply to you soon.
+
+You can subscribe to the mailing list anytime you want. Additionally, you can
check [historical emails / all
emails](https://lists.apache.org/[email protected]) easily
(even if you are not subscribing to the list).
+
+ Some notes:
+ - If you don't receive the confirmation email, please send it after 24 hours
later.
+ - Don't email to **dev** until you subscribe to the mailing list successfully
(otherwise the mail will be banned).
+
+HugeGraph offers an email list for development and user discussions.
+- hugegraph-dev: [[email protected]](mailto:[email protected])
for both development and users discussions.
+
+
+More information on mailing subscribe can be found at:
+- https://lists.apache.org/[email protected]
+- http://apache.org/foundation/mailinglists.html#subscribing
+
+# Unsubscribe Mailing Lists
+
+If you do not need to know what's going on with HugeGraph, you can unsubscribe
from the mailing list.
+
+Unsubscribe from the mailing list steps are as follows:
+
+1. Email [email protected] with your subscribed email
address, subject and content are arbitrary.
+
+2. Receive confirmation email and reply. After completing step 1, you will
receive a confirmation email from [email protected] (if not
received, please confirm whether the email is automatically classified as spam,
promotion email, subscription email, etc.) . Then reply directly to the email,
or click on the link in the email to reply quickly, the subject and content are
arbitrary.
+
+3. Receive a goodbye email. After completing the above steps, you will receive
a goodbye email with the subject GOODBYE from [email protected], and
you have successfully unsubscribed to the Apache HugeGraph mailing list, and
you will not receive emails from [email protected].
diff --git a/docs/contribution-guidelines/validate-release.md
b/docs/contribution-guidelines/validate-release.md
new file mode 100644
index 00000000..c54d50bb
--- /dev/null
+++ b/docs/contribution-guidelines/validate-release.md
@@ -0,0 +1,218 @@
+---
+id: 'validate-release'
+title: 'Validate Apache Release'
+sidebar_label: 'Validate Apache Release'
+sidebar_position: 3
+---
+
+> Note: this doc will be updated continuously.
+> It is recommended to use Java11 in verification, we will drop Java8 support
from version 1.5.0
+
+## Verification
+
+When the internal temporary release and packaging work is completed, other
community developers (
+especially PMC) need to participate in the [verification
link](https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist)
+To ensure the "correctness + completeness" of someone's published version,
here requires **everyone
+** to participate as much as possible, and then explain which items you have
**checked** in the
+subsequent **email reply**.(The following are the core items)
+
+#### 1. prepare
+
+If there is no svn or gpg or wget environment locally, it is recommended to
install it first
+(windows recommend using WSL2 environment, or at least `git-bash`), also make
sure to install java
+(recommended 11) and maven software
+
+```bash
+# 1. install svn
+# ubuntu/debian
+sudo apt install subversion -y
+# MacOS
+brew install subversion
+# To verify that the installation was successful, execute the following
command:
+svn --version
+
+# 2. install gpg
+# ubuntu/debian
+sudo apt-get install gnupg -y
+# MacOS
+brew install gnupg
+# To verify that the installation was successful, execute the following
command:
+gpg --version
+
+# 3. install wget (we will enhance it later, like use `curl`)
+# ubuntu/debian
+sudo apt-get install wget -y
+# MacOS
+brew install wget
+
+# 4. Download the hugegraph-svn directory
+# For version number, pay attention to fill in the verification version
+svn co https://dist.apache.org/repos/dist/dev/incubator/hugegraph/1.x.x/
+# (Note) If svn downloads a file very slowly,
+# you can consider wget to download a single file, as follows (or consider
using a proxy)
+wget
https://dist.apache.org/repos/dist/dev/incubator/hugegraph/1.x.x/apache-hugegraph-toolchain-incubating-1.x.x.tar.gz
+```
+
+#### 2. check hash value
+
+First you need to check the file integrity of the `source + binary` package,
Verify by `shasum` to
+ensure that it is consistent with the hash value published on apache/GitHub
(Usually sha512), Here
+is the same as the last step of 0x02 inspection.
+
+```bash
+execute the following command:
+for i in *.tar.gz; do echo $i; shasum -a 512 --check $i.sha512; done
+```
+
+#### 3. check gpg signature
+
+This is to ensure that the published package is uploaded by a **reliable**
person.
+Assuming tom signs and uploads,
+others should download A's **public key** and then perform **signature
+confirmation**.
+
+Related commands:
+
+```bash
+# 1. Download project trusted public key to local (required for the first
time) & import
+curl https://downloads.apache.org/incubator/hugegraph/KEYS > KEYS
+gpg --import KEYS
+
+# After importing, you can see the following output, which means that x user
public keys have been imported
+gpg: /home/ubuntu/.gnupg/trustdb.gpg: trustdb created
+gpg: key BA7E78F8A81A885E: public key "imbajin (apache mail)
<[email protected]>" imported
+gpg: key 818108E7924549CC: public key "vaughn <[email protected]>" imported
+gpg: key 28DCAED849C4180E: public key "coderzc (CODE SIGNING KEY)
<[email protected]>" imported
+...
+gpg: Total number processed: x
+gpg: imported: x
+
+# 2. Trust release users (trust n username mentioned in voting mail, if more
than one user,
+# just repeat the steps in turn or use the script below)
+gpg --edit-key $USER # input the username, enter the interactive mode
+gpg> trust
+...output options..
+Your decision? 5 # select 5
+Do you really want to set this key to ultimate trust? (y/N) y # slect y, then
q quits trusting the next user
+
+# (Optional) You could also use the command to trust one user in
non-interactive mode:
+echo -e "5\ny\n" | gpg --batch --command-fd 0 --edit-key $USER trust
+# Or use the script to auto import all public gpg keys (be carefully):
+for key in $(gpg --no-tty --list-keys --with-colons | awk -F: '/^pub/ {print
$5}'); do
+ echo -e "5\ny\n" | gpg --batch --command-fd 0 --edit-key "$key" trust
+done
+
+
+# 3. Check the signature (make sure there is no Warning output, every
source/binary file prompts Good Signature)
+#Single file verification
+gpg --verify xx.asc xxx-src.tar.gz
+gpg --verify xx.asc xxx.tar.gz # Note: without the bin/binary suffix
+
+# One-click shell traversal verification (recommended)
+for i in *.tar.gz; do echo $i; gpg --verify $i.asc $i ; done
+
+```
+
+First confirm the overall integrity/consistency, and then confirm the specific
content (**key**)
+
+#### 4. Check the archive contents
+
+Check the contents of the archive downloaded from preparation work. Divided
into two aspects: source code package + binary package, The source code package
is stricter, it can be said that the core part (Because it is longer, For a
complete list refer to
+the official
[Wiki](https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist))
+
+##### A. source package
+
+After decompressing `*hugegraph*src.tar.gz`, Do the following checks:
+
+1. folders with `incubating`, and no **empty** files/folders
+2. `LICENSE` + `NOTICE` + `DISCLAIM` file exists and the content is normal
+3. **does not exist** binaries (without LICENSE)
+4. The source code files all contain the standard `ASF License` header (this
could be done with
+ the `Maven-MAT` plugin)
+5. Check whether the `pom.xml` version number of each parent/child module is
consistent (and meet
+ expectations)
+6. Finally, make sure the source code works/compiles correctly
+
+```bash
+# prefer to use/switch to `java 11` for the following operations
(compiling/running) (Note: `Computer` only supports `java >= 11`)
+# java --version
+
+# try to compile in the Unix env to check if it works well
+mvn clean package -P stage -Dmaven.test.skip=true -Dcheckstyle.skip=true
+```
+
+##### B. binary package
+
+After decompressing `xxx-hugegraph.tar.gz`, perform the following checks:
+
+1. folders with `incubating`
+2. `LICENSE` and `NOTICE` file exists and the content is normal
+3. start server
+
+```bash
+# hugegraph-server
+bin/start-hugegraph.sh
+
+# hugegraph-loader
+bin/hugegraph-loader.sh -g hugegraph -f example/file/struct.json -s
example/file/schema.groovy
+
+# hugegraph-hubble
+bin/start-hubble.sh
+
+more reference official website: https://hugegraph.apache.org/docs/quickstart
+```
+
+**Note:** If a third-party dependency is introduced in the binary package, you
need to update the
+LICENSE and add the third-party dependent LICENSE; if the third-party
dependent LICENSE is Apache
+2.0, and the corresponding project contains NOTICE, you also need to update
Our NOTICE file
+
+#### 5. Check the official website and GitHub and other pages
+
+1. Make sure that the official website at least meets [apache website
check](https://whimsy.apache.org/pods/project/hugegraph),
+ and no circular links, etc.
+2. Update **download link** and release notes updated
+3. ...
+
+## Mail Template
+
+After the check & test, you should reply to the mail with the following
content: (normal devs & PMC)
+
+```markdown
+[] +1 approve
+
+[] +0 no opinion
+
+[] -1 disapprove with the reason
+```
+
+```markdown
++1 (non-binding)
+I checked:
+1. Download link/tag in mail are valid
+2. Checksum and GPG signatures are OK
+3. LICENSE & NOTICE & DISCLAIMER are exist
+4. Build successfully on XX OS & Version XX
+5. No unexpected binary files
+6. Date is right in the NOTICE file
+7. Compile from source is fine under JavaXX
+8. No empty file & directory found
+9. Test running XXX service OK
+10. ....
+```
+
+and the PMC members should reply with `binding`, it's important for summary
the valid votes:
+
+```markdown
++1 (binding)
+I checked:
+1. Download link/tag in mail are valid
+2. Checksum and GPG signatures are OK
+3. LICENSE & NOTICE & DISCLAIMER are exist
+4. Build successfully on XX OS & Version XX
+5. No unexpected binary files
+6. Date is right in the NOTICE file
+7. Compile from source is fine under JavaXX
+8. No empty file & directory found
+9. Test running XX process OK
+10. ....
+```