Prepare release v0.1.0 (#15)

diff --git a/CHANGES.md b/CHANGES.md
new file mode 100644
index 0000000..27fa3f9
--- /dev/null
+++ b/CHANGES.md
@@ -0,0 +1,24 @@
+Changes by Version
+==================
+Release Notes.
+
+
+0.2.0
+------------------
+
+### Features
+
+### Bugs
+
+
+0.1.0
+------------------
+
+### Features
+
+- Support Measure, Stream and Property Query and Write APIs
+- Support Metadata Management APIs for Measure, Stream, IndexRule and IndexRuleBinding
+
+### Chores
+
+- Set up GitHub actions to check code styles, licenses, and tests.
diff --git a/pom.xml b/pom.xml
index 07ccb0d..16de166 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,19 +17,18 @@
   ~
   -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
     <groupId>org.apache.skywalking</groupId>
     <artifactId>banyandb-java-client</artifactId>
-    <version>0.1.0-SNAPSHOT</version>
+    <version>0.2.0-SNAPSHOT</version>
 
     <parent>
         <groupId>org.apache</groupId>
         <artifactId>apache</artifactId>
         <version>21</version>
-        <relativePath/>
+        <relativePath />
     </parent>
 
     <packaging>jar</packaging>
diff --git a/tools/releasing/create_source_release.sh b/tools/releasing/create_source_release.sh
new file mode 100755
index 0000000..221dcb3
--- /dev/null
+++ b/tools/releasing/create_source_release.sh
@@ -0,0 +1,74 @@
+#!/usr/bin/env bash
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# This script relies on few environment variables to determine source code package
+# behavior, those variables are:
+#   RELEASE_VERSION -- The version of this source package.
+# For example: RELEASE_VERSION=5.0.0-alpha
+
+
+RELEASE_VERSION=${RELEASE_VERSION}
+TAG_NAME=v${RELEASE_VERSION}
+PRODUCT_NAME="apache-skywalking-banyandb-java-client"
+
+echo "Release version "${RELEASE_VERSION}
+echo "Source tag "${TAG_NAME}
+
+if [ "$RELEASE_VERSION" == "" ]; then
+  echo "RELEASE_VERSION environment variable not found, Please setting the RELEASE_VERSION."
+  echo "For example: export RELEASE_VERSION=5.0.0-alpha"
+  exit 1
+fi
+
+echo "Creating source package"
+
+PRODUCT_NAME=${PRODUCT_NAME}-${RELEASE_VERSION}
+
+rm -rf ${PRODUCT_NAME}
+mkdir ${PRODUCT_NAME}
+
+git clone https://github.com/apache/skywalking-banyandb-java-client ./${PRODUCT_NAME}
+cd ${PRODUCT_NAME}
+
+TAG_EXIST=`git tag -l ${TAG_NAME} | wc -l`
+
+if [ ${TAG_EXIST} -ne 1 ]; then
+    echo "Could not find the tag named" ${TAG_NAME}
+    exit 1
+fi
+
+git checkout ${TAG_NAME}
+
+cd ..
+
+echo "Create an archive for sources..."
+
+tar czf ${PRODUCT_NAME}-src.tgz \
+    --exclude .git \
+    --exclude .DS_Store \
+    --exclude .github \
+    --exclude .gitignore \
+    --exclude .gitmodules \
+    ${PRODUCT_NAME}
+
+echo "Sign the archive..."
+gpg --armor --detach-sig ${PRODUCT_NAME}-src.tgz
+
+echo "Generate the checksum..."
+shasum -a 512 ${PRODUCT_NAME}-src.tgz > ${PRODUCT_NAME}-src.tgz.sha512
\ No newline at end of file
diff --git a/tools/releasing/pre-release.sh b/tools/releasing/pre-release.sh
new file mode 100755
index 0000000..03064d1
--- /dev/null
+++ b/tools/releasing/pre-release.sh
@@ -0,0 +1,94 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Prerequisites
+# 1. update change log
+# 2. clear milestone issues, and create a new one if needed
+# 3. export VERSION=<the version to release>
+
+set -ex
+
+RELEASE_VERSION=${RELEASE_VERSION}
+TAG_NAME=v${RELEASE_VERSION}
+PRODUCT_NAME="apache-skywalking-banyandb-java-client"
+
+echo "Release version "${RELEASE_VERSION}
+echo "Source tag "${TAG_NAME}
+
+if [ "$RELEASE_VERSION" == "" ]; then
+  echo "RELEASE_VERSION environment variable not found, Please setting the RELEASE_VERSION."
+  echo "For example: export RELEASE_VERSION=5.0.0-alpha"
+  exit 1
+fi
+
+echo "Creating source package"
+
+PRODUCT_NAME=${PRODUCT_NAME}-${RELEASE_VERSION}
+
+rm -rf ${PRODUCT_NAME}
+mkdir ${PRODUCT_NAME}
+
+git clone https://github.com/apache/skywalking-banyandb-java-client ./${PRODUCT_NAME}
+cd ${PRODUCT_NAME}
+
+TAG_EXIST=`git tag -l ${TAG_NAME} | wc -l`
+
+if [ ${TAG_EXIST} -ne 1 ]; then
+    echo "Could not find the tag named" ${TAG_NAME}
+    exit 1
+fi
+
+git checkout ${TAG_NAME}
+
+cd ..
+
+rm -rf skywalking
+
+svn co https://dist.apache.org/repos/dist/dev/skywalking/
+mkdir -p skywalking/banyandb-java-client/"$RELEASE_VERSION"
+cp "${PRODUCT_NAME}-src.tgz" skywalking/banyandb-java-client/"$RELEASE_VERSION"
+cp "${PRODUCT_NAME}-src.tgz.asc" skywalking/banyandb-java-client/"$RELEASE_VERSION"
+cp "${PRODUCT_NAME}-src.tgz.sha512" skywalking/banyandb-java-client/"$RELEASE_VERSION"
+
+cd skywalking/banyandb-java-client && svn add "$RELEASE_VERSION" && svn commit -m "Draft Apache SkyWalking-BanyanDB Java Client release $RELEASE_VERSION"
+
+cd ../..
+
+cat << EOF
+=========================================================================
+Subject: [VOTE] Release Apache SkyWalking BanyanDB Java Client - $RELEASE_VERSION
+Content:
+Hi The SkyWalking Community:
+This is a call for vote to release Apache SkyWalking BanyanDB Java Client - $RELEASE_VERSION.
+Release Candidate:
+ * https://dist.apache.org/repos/dist/dev/skywalking/banyandb-java-client/$RELEASE_VERSION/
+ * sha512 checksums
+   - $(cat ${PRODUCT_NAME}-src.tgz.sha512)
+Release Tag :
+ * (Git Tag) $TAG_NAME
+Release CommitID :
+ * https://github.com/apache/skywalking-banyandb-java-client/tree/$(git rev-list -n 1 "$TAG_NAME")
+Keys to verify the Release Candidate :
+ * https://dist.apache.org/repos/dist/release/skywalking/KEYS
+Guide to build the release from source :
+ * https://github.com/apache/skywalking-banyandb-java-client/blob/$TAG_NAME/README.md#compiling-project
+Voting will start now and will remain open for at least 72 hours, all PMC members are required to give their votes.
+[ ] +1 Release this package.
+[ ] +0 No opinion.
+[ ] -1 Do not release this package because....
+Thanks.
+EOF
\ No newline at end of file