This is an automated email from the ASF dual-hosted git repository.

jiwq pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/submarine.git


The following commit(s) were added to refs/heads/master by this push:
     new 1ae00ff  Preparing for 0.4.0 release
1ae00ff is described below

commit 1ae00ff6eb328040fbf8e5ccb2ff49de1efd7714
Author: Wanqiang Ji <[email protected]>
AuthorDate: Fri Jun 26 19:12:54 2020 +0800

    Preparing for 0.4.0 release
---
 LICENSE-binary                                     |  2 +-
 dev-support/docker-images/database/build.sh        |  2 +-
 dev-support/docker-images/operator/build.sh        |  2 +-
 dev-support/docker-images/submarine/build.sh       |  2 +-
 dev-support/mini-submarine/README.md               | 36 +++++++++++-----------
 dev-support/mini-submarine/build_mini-submarine.sh |  2 +-
 .../run_customized_submarine-all_mnist.sh          |  2 +-
 .../submarine/run_submarine_mnist_tf2_tony.sh      |  2 +-
 .../submarine/run_submarine_mnist_tony.sh          |  2 +-
 .../submarine/run_submarine_mnist_tony_rpc.sh      |  4 +--
 .../submarine/run_submarine_mxnet_cifar10_tony.sh  |  2 +-
 .../submarine/run_submarine_pytorch_mnist_tony.sh  |  2 +-
 dev-support/pysubmarine/openapi.json               |  2 +-
 dev-support/pysubmarine/swagger_config.json        |  2 +-
 docs/userdocs/yarn/YARNRuntimeGuide.md             | 12 ++++----
 docs/workbench/HowToRun.md                         | 10 +++---
 helm-charts/submarine/Chart.yaml                   |  2 +-
 helm-charts/submarine/values.yaml                  |  4 +--
 pom.xml                                            |  2 +-
 submarine-all/pom.xml                              |  4 +--
 submarine-client/pom.xml                           |  4 +--
 submarine-cloud/Makefile                           |  2 +-
 submarine-cloud/hack/deploy-submarine.sh           |  2 +-
 .../submarine-cluster/submarine-database.yaml      |  2 +-
 .../submarine-cluster/submarine-server.yaml        |  2 +-
 .../manifests/submarine-operator/deployment.yaml   |  2 +-
 submarine-cloud/pom.xml                            |  4 +--
 submarine-cloud/submarine-operator.md              |  8 ++---
 submarine-commons/commons-cluster/pom.xml          |  4 +--
 submarine-commons/commons-metastore/pom.xml        |  4 +--
 submarine-commons/commons-rpc/pom.xml              |  4 +--
 submarine-commons/commons-runtime/pom.xml          |  4 +--
 submarine-commons/commons-unixusersync/pom.xml     |  4 +--
 submarine-commons/commons-utils/pom.xml            |  4 +--
 submarine-commons/pom.xml                          |  4 +--
 submarine-dist/pom.xml                             |  4 +--
 .../pysubmarine/example/pytorch/run_deepfm.sh      |  4 +--
 submarine-sdk/pysubmarine/setup.py                 |  2 +-
 .../pysubmarine/submarine/experiment/__init__.py   |  4 +--
 .../submarine/experiment/api/experiment_api.py     |  2 +-
 .../pysubmarine/submarine/experiment/api_client.py |  4 +--
 .../submarine/experiment/configuration.py          |  6 ++--
 .../pysubmarine/submarine/experiment/exceptions.py |  2 +-
 .../submarine/experiment/models/__init__.py        |  2 +-
 .../submarine/experiment/models/environment.py     |  2 +-
 .../submarine/experiment/models/experiment_meta.py |  2 +-
 .../submarine/experiment/models/experiment_spec.py |  2 +-
 .../experiment/models/experiment_task_spec.py      |  2 +-
 .../submarine/experiment/models/json_response.py   |  2 +-
 .../pysubmarine/submarine/experiment/rest.py       |  2 +-
 submarine-security/spark-security/pom.xml          |  2 +-
 submarine-server/pom.xml                           |  4 +--
 submarine-server/server-api/pom.xml                |  2 +-
 submarine-server/server-core/pom.xml               |  2 +-
 .../org/apache/submarine/server/Bootstrap.java     |  2 +-
 submarine-server/server-rpc/pom.xml                |  4 +--
 submarine-server/server-submitter/pom.xml          |  4 +--
 .../server-submitter/submitter-k8s/pom.xml         |  4 +--
 .../server-submitter/submitter-yarn/pom.xml        |  4 +--
 .../server-submitter/submitter-yarnservice/pom.xml |  4 +--
 submarine-test/pom.xml                             |  4 +--
 submarine-test/test-e2e/pom.xml                    |  4 +--
 submarine-test/test-k8s/pom.xml                    |  4 +--
 .../interpreter/interpreter-core/pom.xml           |  4 +--
 submarine-workbench/interpreter/pom.xml            |  4 +--
 .../interpreter/python-interpreter/README.md       |  6 ++--
 .../interpreter/python-interpreter/pom.xml         |  4 +--
 .../interpreter/spark-interpreter/pom.xml          |  4 +--
 submarine-workbench/pom.xml                        |  4 +--
 submarine-workbench/workbench-web-ng/pom.xml       |  4 +--
 submarine-workbench/workbench-web/pom.xml          |  4 +--
 71 files changed, 136 insertions(+), 136 deletions(-)

diff --git a/LICENSE-binary b/LICENSE-binary
index 20158ee..79fa2bb 100644
--- a/LICENSE-binary
+++ b/LICENSE-binary
@@ -271,7 +271,7 @@ org.apache.hadoop:hadoop-hdfs-client:2.9.2
 org.apache.htrace:htrace-core4:4.1.0-incubating
 org.apache.httpcomponents:httpclient:4.5.2
 org.apache.httpcomponents:httpcore:4.4.4
-org.apache.submarine:submarine-core:0.4.0-SNAPSHOT
+org.apache.submarine:submarine-core:0.4.0
 org.apache.zookeeper:zookeeper:3.4.6
 org.codehaus.jackson:jackson-core-asl:1.9.13
 org.codehaus.jackson:jackson-mapper-asl:1.9.13
diff --git a/dev-support/docker-images/database/build.sh 
b/dev-support/docker-images/database/build.sh
index 218fe00..a0dba16 100755
--- a/dev-support/docker-images/database/build.sh
+++ b/dev-support/docker-images/database/build.sh
@@ -25,7 +25,7 @@ fi
 export CURRENT_PATH=$(cd "${PWD}">/dev/null; pwd)
 SUBMARINE_HOME=${CURRENT_PATH}/../../..
 
-SUBMARINE_VERSION="0.4.0-SNAPSHOT"
+SUBMARINE_VERSION="0.4.0"
 SUBMARINE_IMAGE_NAME="apache/submarine:database-${SUBMARINE_VERSION}"
 
 cp -rf "${SUBMARINE_HOME}/docs/database" "${CURRENT_PATH}"
diff --git a/dev-support/docker-images/operator/build.sh 
b/dev-support/docker-images/operator/build.sh
index 3a26703..824c6ae 100755
--- a/dev-support/docker-images/operator/build.sh
+++ b/dev-support/docker-images/operator/build.sh
@@ -17,7 +17,7 @@
 set -eo pipefail
 set -x
 
-SUBMARINE_VERSION=0.4.0-SNAPSHOT
+SUBMARINE_VERSION=0.4.0
 SUBMARINE_IMAGE_NAME="apache/submarine:operator-${SUBMARINE_VERSION}"
 
 if [ -L ${BASH_SOURCE-$0} ]; then
diff --git a/dev-support/docker-images/submarine/build.sh 
b/dev-support/docker-images/submarine/build.sh
index aa6625b..2775194 100755
--- a/dev-support/docker-images/submarine/build.sh
+++ b/dev-support/docker-images/submarine/build.sh
@@ -17,7 +17,7 @@
 set -eo pipefail
 set -x
 
-SUBMARINE_VERSION=0.4.0-SNAPSHOT
+SUBMARINE_VERSION=0.4.0
 SUBMARINE_IMAGE_NAME="apache/submarine:server-${SUBMARINE_VERSION}"
 
 if [ -L ${BASH_SOURCE-$0} ]; then
diff --git a/dev-support/mini-submarine/README.md 
b/dev-support/mini-submarine/README.md
index 564e6f1..5783400 100644
--- a/dev-support/mini-submarine/README.md
+++ b/dev-support/mini-submarine/README.md
@@ -23,7 +23,7 @@ This is a docker image built for submarine development and 
quick start test.
 ### Use the image we provide
 
 ```
-docker pull apache/submarine:mini-0.3.0
+docker pull apache/submarine:mini-0.4.0
 ```
 
 ### Create image by yourself
@@ -57,24 +57,24 @@ In this scenario, we can do this:
 Put submarine candidate aritifacts to a folder like 
"~/releases/submarine-release"
 ```
 $ ls $release_candidates_path
-submarine-dist-0.3.0-hadoop-2.9.tar.gz        
submarine-dist-0.3.0-src.tar.gz.asc
-submarine-dist-0.3.0-hadoop-2.9.tar.gz.asc    
submarine-dist-0.3.0-src.tar.gz.sha512
-submarine-dist-0.3.0-hadoop-2.9.tar.gz.sha512 submarine-dist-0.3.0-src.tar.gz
+submarine-dist-0.4.0-hadoop-2.9.tar.gz        
submarine-dist-0.4.0-src.tar.gz.asc
+submarine-dist-0.4.0-hadoop-2.9.tar.gz.asc    
submarine-dist-0.4.0-src.tar.gz.sha512
+submarine-dist-0.4.0-hadoop-2.9.tar.gz.sha512 submarine-dist-0.4.0-src.tar.gz
 ```
 ```
-export submarine_version=0.3.0
-export release_candidates_path=~/releases/submarine-release 
+export submarine_version=0.4.0
+export release_candidates_path=~/releases/submarine-release
 ./build_mini-submarine.sh
-#docker run -it -h submarine-dev --net=bridge --privileged -P 
local/mini-submarine:0.3.0 /bin/bash
-docker tag local/mini-submarine:0.3.0 apache/mini-submarine:0.3.0:RC0
-docker push apache/mini-submarine:0.3.0:RC0
+#docker run -it -h submarine-dev --net=bridge --privileged -P 
local/mini-submarine:0.4.0 /bin/bash
+docker tag local/mini-submarine:0.4.0 apache/mini-submarine:0.4.0:RC0
+docker push apache/mini-submarine:0.4.0:RC0
 ```
-In the container, we can verify that the submarine jar version is the expected 
0.3.0. Then we can upload this image with a "RC" tag for a vote.
+In the container, we can verify that the submarine jar version is the expected 
0.4.0. Then we can upload this image with a "RC" tag for a vote.
 
 ### Run mini-submarine image
 
 ```
-docker run -it -h submarine-dev --name mini-submarine --net=bridge 
--privileged -P local/mini-submarine:0.4.0-SNAPSHOT /bin/bash
+docker run -it -h submarine-dev --name mini-submarine --net=bridge 
--privileged -P local/mini-submarine:0.4.0 /bin/bash
 
 # In the container, use root user to bootstrap hdfs and yarn
 /tmp/hadoop-config/bootstrap.sh
@@ -83,7 +83,7 @@ docker run -it -h submarine-dev --name mini-submarine 
--net=bridge --privileged
 yarn node -list -showDetails
 ```
 
-If you pull the image directly, please replace 
"local/mini-submarine:0.4.0-SNAPSHOT" with "apache/submarine:mini-0.3.0".
+If you pull the image directly, please replace "local/mini-submarine:0.4.0" 
with "apache/submarine:mini-0.4.0".
 
 ### You should see info like this:
 
@@ -112,7 +112,7 @@ hdfs dfs -ls /user
 
 ```
 /tmp/hadoop-config/setup-mysql.sh
-``` 
+```
 
 You can execute command `mysql -uroot` login mysql mariadb.
 
@@ -120,7 +120,7 @@ You can execute command `mysql -uroot` login mysql mariadb.
 ```
 su yarn
 /opt/submarine-current/bin/submarine-daemon.sh start getMysqlJar
-``` 
+```
 
 3. Login submarine workbench
 
@@ -146,7 +146,7 @@ cd /home/yarn/submarine/
 
 ### Run a mnist TF job with submarine + TonY runtime
 ```
-# run TF 1 distributed training job 
+# run TF 1 distributed training job
 ./run_submarine_mnist_tony.sh
 
 # run TF 2 distributed training job
@@ -233,7 +233,7 @@ When using mini-submarine, you can debug submarine client, 
applicationMaster and
 Run the following command to start mini-submarine.
 
 ```
-docker run -it -P -h submarine-dev --net=bridge --expose=8000 --privileged 
local/mini-submarine:0.4.0-SNAPSHOT /bin/bash
+docker run -it -P -h submarine-dev --net=bridge --expose=8000 --privileged 
local/mini-submarine:0.4.0 /bin/bash
 ```
 
 Debug submarine client with the parameter "--debug"
@@ -262,7 +262,7 @@ Then port 32804 can be used for remote debug.
 Run the following command to start mini-submarine.
 
 ```
-docker run -it -P -h submarine-dev --net=bridge --expose=8001 --privileged 
local/mini-submarine:0.4.0-SNAPSHOT /bin/bash
+docker run -it -P -h submarine-dev --net=bridge --expose=8001 --privileged 
local/mini-submarine:0.4.0 /bin/bash
 ```
 
 Add the following configuration in the file 
/usr/local/hadoop/etc/hadoop/tony.xml.
@@ -282,7 +282,7 @@ And the debug port mapping can be obtained using the way as 
[Debug submarine cli
 Run the following command to start mini-submarine.
 
 ```
-docker run -it -P -h submarine-dev --net=bridge --expose=8002 --privileged 
local/mini-submarine:0.4.0-SNAPSHOT /bin/bash
+docker run -it -P -h submarine-dev --net=bridge --expose=8002 --privileged 
local/mini-submarine:0.4.0 /bin/bash
 ```
 
 Add the following configuration in the file 
/usr/local/hadoop/etc/hadoop/tony.xml.
diff --git a/dev-support/mini-submarine/build_mini-submarine.sh 
b/dev-support/mini-submarine/build_mini-submarine.sh
index 0a7c8e1..c0d60c9 100755
--- a/dev-support/mini-submarine/build_mini-submarine.sh
+++ b/dev-support/mini-submarine/build_mini-submarine.sh
@@ -17,7 +17,7 @@ set -e
 hadoop_v=2.9.2
 spark_v=2.3.4
 
-submarine_v=${submarine_version:-"0.4.0-SNAPSHOT"}
+submarine_v=${submarine_version:-"0.4.0"}
 echo "Using submarine version: $submarine_v"
 
 image_name="local/mini-submarine:${submarine_v}"
diff --git 
a/dev-support/mini-submarine/submarine/run_customized_submarine-all_mnist.sh 
b/dev-support/mini-submarine/submarine/run_customized_submarine-all_mnist.sh
index 4adc779..33f2c9b 100755
--- a/dev-support/mini-submarine/submarine/run_customized_submarine-all_mnist.sh
+++ b/dev-support/mini-submarine/submarine/run_customized_submarine-all_mnist.sh
@@ -49,7 +49,7 @@ else
   WORKER_CMD="myvenv.zip/venv/bin/python mnist_distributed.py --steps 2 
--data_dir /tmp/data --working_dir /tmp/mode"
 fi
 
-SUBMARINE_VERSION=${SUBMARINE_VER:-"0.4.0-SNAPSHOT"}
+SUBMARINE_VERSION=${SUBMARINE_VER:-"0.4.0"}
 
 HADOOP_VERSION=2.9
 
diff --git 
a/dev-support/mini-submarine/submarine/run_submarine_mnist_tf2_tony.sh 
b/dev-support/mini-submarine/submarine/run_submarine_mnist_tf2_tony.sh
index 2f63c66..40a7298 100755
--- a/dev-support/mini-submarine/submarine/run_submarine_mnist_tf2_tony.sh
+++ b/dev-support/mini-submarine/submarine/run_submarine_mnist_tf2_tony.sh
@@ -39,7 +39,7 @@ else
   JAVA_CMD="java"
 fi
 
-SUBMARINE_VERSION=0.4.0-SNAPSHOT
+SUBMARINE_VERSION=0.4.0
 HADOOP_VERSION=2.9
 SUBMARINE_PATH=/opt/submarine-current
 HADOOP_CONF_PATH=/usr/local/hadoop/etc/hadoop
diff --git a/dev-support/mini-submarine/submarine/run_submarine_mnist_tony.sh 
b/dev-support/mini-submarine/submarine/run_submarine_mnist_tony.sh
index d998c33..cf387b6 100755
--- a/dev-support/mini-submarine/submarine/run_submarine_mnist_tony.sh
+++ b/dev-support/mini-submarine/submarine/run_submarine_mnist_tony.sh
@@ -17,7 +17,7 @@
 
 # Below are configurable variables, please adapt base on your local 
environment.
 # Version of submarine jar
-SUBMARINE_VERSION=${SUBMARINE_VER:-"0.4.0-SNAPSHOT"}
+SUBMARINE_VERSION=${SUBMARINE_VER:-"0.4.0"}
 
 # Version of affiliated Hadoop version for this Submarine jar.
 SUBMARINE_HADOOP_VERSION=2.9
diff --git 
a/dev-support/mini-submarine/submarine/run_submarine_mnist_tony_rpc.sh 
b/dev-support/mini-submarine/submarine/run_submarine_mnist_tony_rpc.sh
index 0312a3f..376a331 100644
--- a/dev-support/mini-submarine/submarine/run_submarine_mnist_tony_rpc.sh
+++ b/dev-support/mini-submarine/submarine/run_submarine_mnist_tony_rpc.sh
@@ -45,9 +45,9 @@ if [[ -n "$DATA_URL" ]]; then
   WORKER_CMD="myvenv.zip/venv/bin/python mnist_distributed.py --steps 2 
--data_dir /tmp/data --working_dir /tmp/mode --mnist_data_url ${DATA_URL}"
 else
   WORKER_CMD="myvenv.zip/venv/bin/python mnist_distributed.py --steps 2 
--data_dir /tmp/data --working_dir /tmp/mode"
-fi 
+fi
 
-SUBMARINE_VERSION=${SUBMARINE_VER:-"0.4.0-SNAPSHOT"}
+SUBMARINE_VERSION=${SUBMARINE_VER:-"0.4.0"}
 
 HADOOP_VERSION=2.9
 
diff --git 
a/dev-support/mini-submarine/submarine/run_submarine_mxnet_cifar10_tony.sh 
b/dev-support/mini-submarine/submarine/run_submarine_mxnet_cifar10_tony.sh
index ba5eedb..73d991d 100755
--- a/dev-support/mini-submarine/submarine/run_submarine_mxnet_cifar10_tony.sh
+++ b/dev-support/mini-submarine/submarine/run_submarine_mxnet_cifar10_tony.sh
@@ -39,7 +39,7 @@ else
   JAVA_CMD="java"
 fi
 
-SUBMARINE_VERSION=0.4.0-SNAPSHOT
+SUBMARINE_VERSION=0.4.0
 HADOOP_VERSION=2.9
 SUBMARINE_PATH=/opt/submarine-current
 HADOOP_CONF_PATH=/usr/local/hadoop/etc/hadoop
diff --git 
a/dev-support/mini-submarine/submarine/run_submarine_pytorch_mnist_tony.sh 
b/dev-support/mini-submarine/submarine/run_submarine_pytorch_mnist_tony.sh
index 41ff850..4feec55 100755
--- a/dev-support/mini-submarine/submarine/run_submarine_pytorch_mnist_tony.sh
+++ b/dev-support/mini-submarine/submarine/run_submarine_pytorch_mnist_tony.sh
@@ -39,7 +39,7 @@ else
   JAVA_CMD="java"
 fi
 
-SUBMARINE_VERSION=0.4.0-SNAPSHOT
+SUBMARINE_VERSION=0.4.0
 HADOOP_VERSION=2.9
 SUBMARINE_PATH=/opt/submarine-current
 HADOOP_CONF_PATH=/usr/local/hadoop/etc/hadoop
diff --git a/dev-support/pysubmarine/openapi.json 
b/dev-support/pysubmarine/openapi.json
index 3e1521a..f583159 100644
--- a/dev-support/pysubmarine/openapi.json
+++ b/dev-support/pysubmarine/openapi.json
@@ -11,7 +11,7 @@
       "name" : "Apache 2.0",
       "url" : "http://www.apache.org/licenses/LICENSE-2.0.html";
     },
-    "version" : "0.4.0-SNAPSHOT"
+    "version" : "0.4.0"
   },
   "servers" : [ {
     "url" : "/api"
diff --git a/dev-support/pysubmarine/swagger_config.json 
b/dev-support/pysubmarine/swagger_config.json
index be5877c..38d9b16 100644
--- a/dev-support/pysubmarine/swagger_config.json
+++ b/dev-support/pysubmarine/swagger_config.json
@@ -1,5 +1,5 @@
 {
   "packageName" : "submarine.experiment",
   "projectName" : "submarine.experiment",
-  "packageVersion": "0.4.0-SNAPSHOT"
+  "packageVersion": "0.4.0"
 }
diff --git a/docs/userdocs/yarn/YARNRuntimeGuide.md 
b/docs/userdocs/yarn/YARNRuntimeGuide.md
index fafd545..2b00988 100644
--- a/docs/userdocs/yarn/YARNRuntimeGuide.md
+++ b/docs/userdocs/yarn/YARNRuntimeGuide.md
@@ -60,7 +60,7 @@ Get mnist_distributed.py from 
https://github.com/linkedin/TonY/tree/master/tony-
 
 
 ```
-SUBMARINE_VERSION=0.4.0-SNAPSHOT
+SUBMARINE_VERSION=0.4.0
 SUBMARINE_HADOOP_VERSION=3.1
 CLASSPATH=$(hadoop classpath 
--glob):path-to/submarine-all-${SUBMARINE_VERSION}-hadoop-${SUBMARINE_HADOOP_VERSION}.jar
 \
 java org.apache.submarine.client.cli.Cli job run --name tf-job-001 \
@@ -94,7 +94,7 @@ You should then be able to see links and status of the jobs 
from command line:
 ### With Docker
 
 ```
-SUBMARINE_VERSION=0.4.0-SNAPSHOT
+SUBMARINE_VERSION=0.4.0
 SUBMARINE_HADOOP_VERSION=3.1
 CLASSPATH=$(hadoop classpath 
--glob):path-to/submarine-all-${SUBMARINE_VERSION}-hadoop-${SUBMARINE_HADOOP_VERSION}.jar
 \
 java org.apache.submarine.client.cli.Cli job run --name tf-job-001 \
@@ -155,7 +155,7 @@ Get mnist_distributed.py from 
https://github.com/linkedin/TonY/tree/master/tony-
 
 
 ```
-SUBMARINE_VERSION=0.4.0-SNAPSHOT
+SUBMARINE_VERSION=0.4.0
 SUBMARINE_HADOOP_VERSION=3.1
 CLASSPATH=$(hadoop classpath 
--glob):path-to/submarine-all-${SUBMARINE_VERSION}-hadoop-${SUBMARINE_HADOOP_VERSION}.jar
 \
 java org.apache.submarine.client.cli.Cli job run --name PyTorch-job-001 \
@@ -188,7 +188,7 @@ You should then be able to see links and status of the jobs 
from command line:
 ### With Docker
 
 ```
-SUBMARINE_VERSION=0.4.0-SNAPSHOT
+SUBMARINE_VERSION=0.4.0
 SUBMARINE_HADOOP_VERSION=3.1
 CLASSPATH=$(hadoop classpath 
--glob):path-to/submarine-all-${SUBMARINE_VERSION}-hadoop-${SUBMARINE_HADOOP_VERSION}.jar
 \
 java org.apache.submarine.client.cli.Cli job run --name PyTorch-job-001 \
@@ -240,7 +240,7 @@ Get image_classification.py from this 
[link](https://github.com/apache/submarine
 
 
 ```
-SUBMARINE_VERSION=0.4.0-SNAPSHOT
+SUBMARINE_VERSION=0.4.0
 SUBMARINE_HADOOP_VERSION=3.1
 CLASSPATH=$(hadoop classpath 
--glob):path-to/submarine-all-${SUBMARINE_VERSION}-hadoop-${SUBMARINE_HADOOP_VERSION}.jar
 \
 java org.apache.submarine.client.cli.Cli job run --name MXNet-job-001 \
@@ -282,7 +282,7 @@ You should then be able to see links and status of the jobs 
from command line:
 ### With Docker
 You could refer to this [sample 
Dockerfile](project/github/submarine/docs/userdocs/yarn/docker/mxnet/cifar10/Dockerfile.cifar10.mx_1.5.1)
 for building your own Docker image.
 ```
-SUBMARINE_VERSION=0.4.0-SNAPSHOT
+SUBMARINE_VERSION=0.4.0
 SUBMARINE_HADOOP_VERSION=3.1
 CLASSPATH=$(hadoop classpath 
--glob):path-to/submarine-all-${SUBMARINE_VERSION}-hadoop-${SUBMARINE_HADOOP_VERSION}.jar
 \
 java org.apache.submarine.client.cli.Cli job run --name MXNet-job-001 \
diff --git a/docs/workbench/HowToRun.md b/docs/workbench/HowToRun.md
index ccc2cab..f2b417e 100644
--- a/docs/workbench/HowToRun.md
+++ b/docs/workbench/HowToRun.md
@@ -28,16 +28,16 @@ By using the official images of Submarine, only a few 
docker commands are requir
 ### Launch the Submarine Workbench(Angular)
 * It should be noted that since Submarine Workbench depends on the Submarine 
database, so you need to run the docker container of the Submarine database 
first.
 ```
-docker run -it -p 3306:3306 -d --name submarine-database -e 
MYSQL_ROOT_PASSWORD=password apache/submarine:database-0.3.0-SNAPSHOT
-docker run -it -p 8080:8080 -d --link=submarine-database:submarine-database 
--name submarine-server apache/submarine:server-0.3.0-SNAPSHOT
+docker run -it -p 3306:3306 -d --name submarine-database -e 
MYSQL_ROOT_PASSWORD=password apache/submarine:database-0.4.0
+docker run -it -p 8080:8080 -d --link=submarine-database:submarine-database 
--name submarine-server apache/submarine:server-0.4.0
 ```
 * The login page of Submarine Workbench will be shown in 
```http://127.0.0.1:8080```.
 
 ### Switch from version Angular to version Vue
 *  Step1: Launch submarine-database and submarine-server containers
 ```
-docker run -it -p 3306:3306 -d --name submarine-database -e 
MYSQL_ROOT_PASSWORD=password apache/submarine:database-0.3.0-SNAPSHOT
-docker run -it -p 8080:8080 -d --link=submarine-database:submarine-database 
--name submarine-server apache/submarine:server-0.3.0-SNAPSHOT
+docker run -it -p 3306:3306 -d --name submarine-database -e 
MYSQL_ROOT_PASSWORD=password apache/submarine:database-0.4.0
+docker run -it -p 8080:8080 -d --link=submarine-database:submarine-database 
--name submarine-server apache/submarine:server-0.4.0
 ```
 *  Step2: Compile Submarine in your host (not in the container)
 ```
@@ -47,7 +47,7 @@ mvn clean install package -DskipTests
 *  Step3: Copy workbench-web.war into the submarine-server container
 ```
 cd submarine-workbench/workbench-web/target
-docker cp workbench-web.war 
submarine-server:/opt/submarine-dist-0.3.0-SNAPSHOT-hadoop-2.9
+docker cp workbench-web.war 
submarine-server:/opt/submarine-dist-0.4.0-hadoop-2.9
 ```
 *  Step4: Enter the submarine-server container
 ```
diff --git a/helm-charts/submarine/Chart.yaml b/helm-charts/submarine/Chart.yaml
index 46e4730..784cee2 100644
--- a/helm-charts/submarine/Chart.yaml
+++ b/helm-charts/submarine/Chart.yaml
@@ -16,7 +16,7 @@
 #
 
 apiVersion: v2
-appVersion: "0.4.0-SNAPSHOT"
+appVersion: "0.4.0"
 description: Submarine is Cloud Native Machine Learning Platform.
 name: submarine
 version: 0.4.0
diff --git a/helm-charts/submarine/values.yaml 
b/helm-charts/submarine/values.yaml
index edb2202..c46e004 100644
--- a/helm-charts/submarine/values.yaml
+++ b/helm-charts/submarine/values.yaml
@@ -20,13 +20,13 @@ submarine:
     imagePullPolicy: IfNotPresent
     replicas: 1
     name: submarine-server
-    image: apache/submarine:server-0.4.0-SNAPSHOT
+    image: apache/submarine:server-0.4.0
     servicePort: 8080
   database:
     imagePullPolicy: IfNotPresent
     replicas: 1
     name: submarine-database
-    image: apache/submarine:database-0.4.0-SNAPSHOT
+    image: apache/submarine:database-0.4.0
     servicePort: 3306
     mysqlRootPassword: password
 
diff --git a/pom.xml b/pom.xml
index 2b4b3fb..8262207 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
 
   <groupId>org.apache.submarine</groupId>
   <artifactId>submarine</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <packaging>pom</packaging>
   <name>Submarine</name>
   <description>Submarine project</description>
diff --git a/submarine-all/pom.xml b/submarine-all/pom.xml
index cf0b9bd..511e6b7 100644
--- a/submarine-all/pom.xml
+++ b/submarine-all/pom.xml
@@ -25,11 +25,11 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
     <relativePath>..</relativePath>
   </parent>
   <artifactId>submarine-all</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: All</name>
 
   <dependencyManagement>
diff --git a/submarine-client/pom.xml b/submarine-client/pom.xml
index b34c317..3a62e25 100644
--- a/submarine-client/pom.xml
+++ b/submarine-client/pom.xml
@@ -24,12 +24,12 @@
   <parent>
     <artifactId>submarine</artifactId>
     <groupId>org.apache.submarine</groupId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
   <artifactId>submarine-client</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: Client</name>
 
   <dependencies>
diff --git a/submarine-cloud/Makefile b/submarine-cloud/Makefile
index 61f7697..6aeb6b3 100644
--- a/submarine-cloud/Makefile
+++ b/submarine-cloud/Makefile
@@ -20,7 +20,7 @@ GOCLEAN=$(GOCMD) clean
 GOTEST=$(GOCMD) test
 GOGET=$(GOCMD) get
 BINARY_NAME=submarine-operator
-VERSION="0.4.0-SNAPSHOT"
+VERSION="0.4.0"
 BuildGitBranch=$(git rev-parse --abbrev-ref HEAD)
 BuildGitRev=$(git rev-list --count HEAD)
 BuildGitCommit=$(git rev-parse HEAD)
diff --git a/submarine-cloud/hack/deploy-submarine.sh 
b/submarine-cloud/hack/deploy-submarine.sh
index edb59d3..ff2abe4 100755
--- a/submarine-cloud/hack/deploy-submarine.sh
+++ b/submarine-cloud/hack/deploy-submarine.sh
@@ -20,7 +20,7 @@ set -e
 ROOT=$(unset CDPATH && cd $(dirname "${BASH_SOURCE[0]}")/.. && pwd)
 cd $ROOT
 SUBMARINE_HOME=${ROOT}/..
-SUBMARINE_VERSION="0.4.0-SNAPSHOT"
+SUBMARINE_VERSION="0.4.0"
 TF_JUPYTER_IMAGE="apache/submarine:tf2.1.0-jupyter";
 
 source $ROOT/hack/lib.sh
diff --git 
a/submarine-cloud/manifests/submarine-cluster/submarine-database.yaml 
b/submarine-cloud/manifests/submarine-cluster/submarine-database.yaml
index b11e609..f0f18cb 100644
--- a/submarine-cloud/manifests/submarine-cluster/submarine-database.yaml
+++ b/submarine-cloud/manifests/submarine-cluster/submarine-database.yaml
@@ -30,7 +30,7 @@ spec:
     spec:
       containers:
         - name: submarine-database
-          image: apache/submarine:database-0.4.0-SNAPSHOT
+          image: apache/submarine:database-0.4.0
           ports:
             - containerPort: 3306
           env:
diff --git a/submarine-cloud/manifests/submarine-cluster/submarine-server.yaml 
b/submarine-cloud/manifests/submarine-cluster/submarine-server.yaml
index 5d7f9a3..dc566a3 100644
--- a/submarine-cloud/manifests/submarine-cluster/submarine-server.yaml
+++ b/submarine-cloud/manifests/submarine-cluster/submarine-server.yaml
@@ -31,7 +31,7 @@ spec:
       serviceAccountName: "submarine-node"
       containers:
         - name: submarine-node
-          image: "apache/submarine:server-0.4.0-SNAPSHOT"
+          image: "apache/submarine:server-0.4.0"
           args: []
           imagePullPolicy: IfNotPresent
           ports:
diff --git a/submarine-cloud/manifests/submarine-operator/deployment.yaml 
b/submarine-cloud/manifests/submarine-operator/deployment.yaml
index 6153c43..d2c6f90 100644
--- a/submarine-cloud/manifests/submarine-operator/deployment.yaml
+++ b/submarine-cloud/manifests/submarine-operator/deployment.yaml
@@ -31,7 +31,7 @@ spec:
       serviceAccountName: "submarine-operator"
       containers:
         - name: op
-          image: "apache/submarine:operator-0.4.0-SNAPSHOT"
+          image: "apache/submarine:operator-0.4.0"
           imagePullPolicy: IfNotPresent
           args: ["--v=7", "--logtostderr=true", "--alsologtostderr"]
           resources:
diff --git a/submarine-cloud/pom.xml b/submarine-cloud/pom.xml
index 5fe3341..f6a84c2 100644
--- a/submarine-cloud/pom.xml
+++ b/submarine-cloud/pom.xml
@@ -25,10 +25,10 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
   </parent>
   <artifactId>submarine-cloud</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: Cloud</name>
   <packaging>pom</packaging>
 
diff --git a/submarine-cloud/submarine-operator.md 
b/submarine-cloud/submarine-operator.md
index e395ce1..63815b5 100644
--- a/submarine-cloud/submarine-operator.md
+++ b/submarine-cloud/submarine-operator.md
@@ -127,7 +127,7 @@ Refer to the sample-controller project, it is relatively 
simple to write
 ### Startup controller
 ```
 [root@localhost samplecontroller]# ./samplecontroller
-// This is a simple custom k8s controller, 
+// This is a simple custom k8s controller,
 // used to demonstrate the idea of k8s final state operation and maintenance,
 // https://github.com/gfandada/samplecontroller,
 
@@ -144,7 +144,7 @@ Flags:
   -t, --toggle          Help message for toggle
 
 Use "samplecontroller [command] --help" for more information about a command.
-[root@localhost samplecontroller]# ./samplecontroller run 
config=/root/.kube/config 
+[root@localhost samplecontroller]# ./samplecontroller run 
config=/root/.kube/config
 ERROR: logging before flag.Parse: I0415 15:02:28.619121  109337 
samplecontroller.go:59] Create event broadcaster
 ERROR: logging before flag.Parse: I0415 15:02:28.619246  109337 
samplecontroller.go:76] Listen for student's add / update / delete events
 ERROR: logging before flag.Parse: I0415 15:02:28.619264  109337 
samplecontroller.go:102] Start the controller business and start a cache data 
synchronization
@@ -165,6 +165,6 @@ kubectl describe std test1
 
 ```
 kind load docker-image --name=submarine busybox:1.28.4
-kind load docker-image --name=submarine apache/submarine:server-0.3.0-SNAPSHOT
-kind load docker-image --name=submarine 
apache/submarine:database-0.3.0-SNAPSHOT
+kind load docker-image --name=submarine apache/submarine:server-0.4.0
+kind load docker-image --name=submarine apache/submarine:database-0.4.0
 ```
diff --git a/submarine-commons/commons-cluster/pom.xml 
b/submarine-commons/commons-cluster/pom.xml
index fa6df6c..c986eac 100644
--- a/submarine-commons/commons-cluster/pom.xml
+++ b/submarine-commons/commons-cluster/pom.xml
@@ -23,11 +23,11 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine-commons</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>submarine-commons-cluster</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: Commons Cluster</name>
 
   <dependencies>
diff --git a/submarine-commons/commons-metastore/pom.xml 
b/submarine-commons/commons-metastore/pom.xml
index 56ac20a..3142249 100644
--- a/submarine-commons/commons-metastore/pom.xml
+++ b/submarine-commons/commons-metastore/pom.xml
@@ -25,13 +25,13 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine-commons</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
   <groupId>org.apache.submarine</groupId>
   <artifactId>submarine-commons-metastore</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: Commons MetaStore</name>
 
   <dependencies>
diff --git a/submarine-commons/commons-rpc/pom.xml 
b/submarine-commons/commons-rpc/pom.xml
index 8009244..edfae62 100644
--- a/submarine-commons/commons-rpc/pom.xml
+++ b/submarine-commons/commons-rpc/pom.xml
@@ -25,13 +25,13 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine-commons</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
   <groupId>org.apache.submarine</groupId>
   <artifactId>submarine-commons-rpc</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: Commons RPC</name>
 
   <dependencies>
diff --git a/submarine-commons/commons-runtime/pom.xml 
b/submarine-commons/commons-runtime/pom.xml
index 01f272b..a2cc2b2 100644
--- a/submarine-commons/commons-runtime/pom.xml
+++ b/submarine-commons/commons-runtime/pom.xml
@@ -24,13 +24,13 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine-commons</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
   <groupId>org.apache.submarine</groupId>
   <artifactId>submarine-commons-runtime</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: Commons Runtime</name>
 
   <dependencies>
diff --git a/submarine-commons/commons-unixusersync/pom.xml 
b/submarine-commons/commons-unixusersync/pom.xml
index a13d8b4..4d97e1b 100644
--- a/submarine-commons/commons-unixusersync/pom.xml
+++ b/submarine-commons/commons-unixusersync/pom.xml
@@ -25,13 +25,13 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine-commons</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
   <groupId>org.apache.submarine</groupId>
   <artifactId>submarine-commons-unixusersync</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: Commons Unixusersync</name>
 
   <dependencies>
diff --git a/submarine-commons/commons-utils/pom.xml 
b/submarine-commons/commons-utils/pom.xml
index 91f80e3..6e7a903 100644
--- a/submarine-commons/commons-utils/pom.xml
+++ b/submarine-commons/commons-utils/pom.xml
@@ -25,13 +25,13 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine-commons</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
   <groupId>org.apache.submarine</groupId>
   <artifactId>submarine-commons-utils</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: Commons Utils</name>
 
   <dependencies>
diff --git a/submarine-commons/pom.xml b/submarine-commons/pom.xml
index da83d9f..6fc29b2 100644
--- a/submarine-commons/pom.xml
+++ b/submarine-commons/pom.xml
@@ -23,14 +23,14 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
   <groupId>org.apache.submarine</groupId>
   <artifactId>submarine-commons</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <packaging>pom</packaging>
   <name>Submarine: Commons</name>
 
diff --git a/submarine-dist/pom.xml b/submarine-dist/pom.xml
index b97531a..ac18b56 100644
--- a/submarine-dist/pom.xml
+++ b/submarine-dist/pom.xml
@@ -25,11 +25,11 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
     <relativePath>..</relativePath>
   </parent>
   <artifactId>submarine-dist</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: Dist</name>
   <packaging>pom</packaging>
 
diff --git a/submarine-sdk/pysubmarine/example/pytorch/run_deepfm.sh 
b/submarine-sdk/pysubmarine/example/pytorch/run_deepfm.sh
index 3432e92..e09cfec 100644
--- a/submarine-sdk/pysubmarine/example/pytorch/run_deepfm.sh
+++ b/submarine-sdk/pysubmarine/example/pytorch/run_deepfm.sh
@@ -24,7 +24,7 @@ PYTHONPATH=$HOME/workspace/submarine/submarine-sdk/pysubmarine
 
 HADOOP_CONF_PATH=${HADOOP_CONF_PATH:-$HADOOP_CONF_DIR}
 
-SUBMARINE_VERSION=0.4.0-SNAPSHOT
+SUBMARINE_VERSION=0.4.0
 SUBMARINE_HADOOP_VERSION=2.9
 
SUBMARINE_JAR=/opt/submarine-dist-${SUBMARINE_VERSION}-hadoop-${SUBMARINE_HADOOP_VERSION}/submarine-dist-${SUBMARINE_VERSION}-hadoop-${SUBMARINE_HADOOP_VERSION}/submarine-all-${SUBMARINE_VERSION}-hadoop-${SUBMARINE_HADOOP_VERSION}.jar
 
@@ -38,4 +38,4 @@ java -cp $(${HADOOP_COMMON_HOME}/bin/hadoop classpath 
--glob):${SUBMARINE_JAR}:$
  --worker_launch_cmd "JAVA_HOME=$JAVA_HOME HADOOP_HOME=$HADOOP_HOME 
CLASSPATH=$CLASSPATH ARROW_LIBHDFS_DIR=$ARROW_LIBHDFS_DIR 
PYTHONPATH=$PYTHONPATH sdk.zip/sdk/bin/python run_ctr.py --conf ./deepfm.json 
--task_type train" \
  --insecure \
  --conf 
tony.containers.resources=sdk.zip#archive,${SUBMARINE_JAR},run_ctr.py,deepfm.json
- 
+
diff --git a/submarine-sdk/pysubmarine/setup.py 
b/submarine-sdk/pysubmarine/setup.py
index a52020a..6b4a0a0 100644
--- a/submarine-sdk/pysubmarine/setup.py
+++ b/submarine-sdk/pysubmarine/setup.py
@@ -18,7 +18,7 @@ from setuptools import setup, find_packages
 
 setup(
     name='pysubmarine',
-    version='0.4.0-SNAPSHOT',
+    version='0.4.0',
     description="A python SDK for submarine",
     url="https://github.com/apache/submarine";,
     packages=find_packages(exclude=['tests', 'tests.*']),
diff --git a/submarine-sdk/pysubmarine/submarine/experiment/__init__.py 
b/submarine-sdk/pysubmarine/submarine/experiment/__init__.py
index 97bb0cd..99216df 100644
--- a/submarine-sdk/pysubmarine/submarine/experiment/__init__.py
+++ b/submarine-sdk/pysubmarine/submarine/experiment/__init__.py
@@ -21,7 +21,7 @@
 
     The Submarine REST API allows you to create, list, and get experiments. 
The API is hosted under the /v1/experiment route on the Submarine server. For 
example, to list experiments on a server hosted at http://localhost:8080, 
access http://localhost:8080/api/v1/experiment/  # noqa: E501
 
-    The version of the OpenAPI document: 0.4.0-SNAPSHOT
+    The version of the OpenAPI document: 0.4.0
     Contact: [email protected]
     Generated by: https://openapi-generator.tech
 """
@@ -43,4 +43,4 @@ from submarine.experiment.models.experiment_spec import 
ExperimentSpec
 from submarine.experiment.models.experiment_task_spec import ExperimentTaskSpec
 from submarine.experiment.models.json_response import JsonResponse
 
-__version__ = "0.4.0-SNAPSHOT"
+__version__ = "0.4.0"
diff --git 
a/submarine-sdk/pysubmarine/submarine/experiment/api/experiment_api.py 
b/submarine-sdk/pysubmarine/submarine/experiment/api/experiment_api.py
index e9f75e4..d5ae76a 100644
--- a/submarine-sdk/pysubmarine/submarine/experiment/api/experiment_api.py
+++ b/submarine-sdk/pysubmarine/submarine/experiment/api/experiment_api.py
@@ -20,7 +20,7 @@
 
     The Submarine REST API allows you to create, list, and get experiments. 
The API is hosted under the /v1/experiment route on the Submarine server. For 
example, to list experiments on a server hosted at http://localhost:8080, 
access http://localhost:8080/api/v1/experiment/  # noqa: E501
 
-    The version of the OpenAPI document: 0.4.0-SNAPSHOT
+    The version of the OpenAPI document: 0.4.0
     Contact: [email protected]
     Generated by: https://openapi-generator.tech
 """
diff --git a/submarine-sdk/pysubmarine/submarine/experiment/api_client.py 
b/submarine-sdk/pysubmarine/submarine/experiment/api_client.py
index 49b1bfd..fd83d36 100644
--- a/submarine-sdk/pysubmarine/submarine/experiment/api_client.py
+++ b/submarine-sdk/pysubmarine/submarine/experiment/api_client.py
@@ -19,7 +19,7 @@
 
     The Submarine REST API allows you to create, list, and get experiments. 
The API is hosted under the /v1/experiment route on the Submarine server. For 
example, to list experiments on a server hosted at http://localhost:8080, 
access http://localhost:8080/api/v1/experiment/  # noqa: E501
 
-    The version of the OpenAPI document: 0.4.0-SNAPSHOT
+    The version of the OpenAPI document: 0.4.0
     Contact: [email protected]
     Generated by: https://openapi-generator.tech
 """
@@ -98,7 +98,7 @@ class ApiClient(object):
             self.default_headers[header_name] = header_value
         self.cookie = cookie
         # Set default User-Agent.
-        self.user_agent = 'OpenAPI-Generator/0.4.0-SNAPSHOT/python'
+        self.user_agent = 'OpenAPI-Generator/0.4.0/python'
         self.client_side_validation = configuration.client_side_validation
 
     def __enter__(self):
diff --git a/submarine-sdk/pysubmarine/submarine/experiment/configuration.py 
b/submarine-sdk/pysubmarine/submarine/experiment/configuration.py
index 0372806..fb882f7 100644
--- a/submarine-sdk/pysubmarine/submarine/experiment/configuration.py
+++ b/submarine-sdk/pysubmarine/submarine/experiment/configuration.py
@@ -19,7 +19,7 @@
 
     The Submarine REST API allows you to create, list, and get experiments. 
The API is hosted under the /v1/experiment route on the Submarine server. For 
example, to list experiments on a server hosted at http://localhost:8080, 
access http://localhost:8080/api/v1/experiment/  # noqa: E501
 
-    The version of the OpenAPI document: 0.4.0-SNAPSHOT
+    The version of the OpenAPI document: 0.4.0
     Contact: [email protected]
     Generated by: https://openapi-generator.tech
 """
@@ -342,8 +342,8 @@ class Configuration(object):
         return "Python SDK Debug Report:\n"\
                "OS: {env}\n"\
                "Python Version: {pyversion}\n"\
-               "Version of the API: 0.4.0-SNAPSHOT\n"\
-               "SDK Package Version: 0.4.0-SNAPSHOT".\
+               "Version of the API: 0.4.0\n"\
+               "SDK Package Version: 0.4.0".\
                format(env=sys.platform, pyversion=sys.version)
 
     def get_host_settings(self):
diff --git a/submarine-sdk/pysubmarine/submarine/experiment/exceptions.py 
b/submarine-sdk/pysubmarine/submarine/experiment/exceptions.py
index 471e830..2fe60c5 100644
--- a/submarine-sdk/pysubmarine/submarine/experiment/exceptions.py
+++ b/submarine-sdk/pysubmarine/submarine/experiment/exceptions.py
@@ -19,7 +19,7 @@
 
     The Submarine REST API allows you to create, list, and get experiments. 
The API is hosted under the /v1/experiment route on the Submarine server. For 
example, to list experiments on a server hosted at http://localhost:8080, 
access http://localhost:8080/api/v1/experiment/  # noqa: E501
 
-    The version of the OpenAPI document: 0.4.0-SNAPSHOT
+    The version of the OpenAPI document: 0.4.0
     Contact: [email protected]
     Generated by: https://openapi-generator.tech
 """
diff --git a/submarine-sdk/pysubmarine/submarine/experiment/models/__init__.py 
b/submarine-sdk/pysubmarine/submarine/experiment/models/__init__.py
index 4575e33..4ef6fbf 100644
--- a/submarine-sdk/pysubmarine/submarine/experiment/models/__init__.py
+++ b/submarine-sdk/pysubmarine/submarine/experiment/models/__init__.py
@@ -21,7 +21,7 @@
 
     The Submarine REST API allows you to create, list, and get experiments. 
The API is hosted under the /v1/experiment route on the Submarine server. For 
example, to list experiments on a server hosted at http://localhost:8080, 
access http://localhost:8080/api/v1/experiment/  # noqa: E501
 
-    The version of the OpenAPI document: 0.4.0-SNAPSHOT
+    The version of the OpenAPI document: 0.4.0
     Contact: [email protected]
     Generated by: https://openapi-generator.tech
 """
diff --git 
a/submarine-sdk/pysubmarine/submarine/experiment/models/environment.py 
b/submarine-sdk/pysubmarine/submarine/experiment/models/environment.py
index f43fa81..55a6e78 100644
--- a/submarine-sdk/pysubmarine/submarine/experiment/models/environment.py
+++ b/submarine-sdk/pysubmarine/submarine/experiment/models/environment.py
@@ -20,7 +20,7 @@
 
     The Submarine REST API allows you to create, list, and get experiments. 
The API is hosted under the /v1/experiment route on the Submarine server. For 
example, to list experiments on a server hosted at http://localhost:8080, 
access http://localhost:8080/api/v1/experiment/  # noqa: E501
 
-    The version of the OpenAPI document: 0.4.0-SNAPSHOT
+    The version of the OpenAPI document: 0.4.0
     Contact: [email protected]
     Generated by: https://openapi-generator.tech
 """
diff --git 
a/submarine-sdk/pysubmarine/submarine/experiment/models/experiment_meta.py 
b/submarine-sdk/pysubmarine/submarine/experiment/models/experiment_meta.py
index 765d899..9fec0b1 100644
--- a/submarine-sdk/pysubmarine/submarine/experiment/models/experiment_meta.py
+++ b/submarine-sdk/pysubmarine/submarine/experiment/models/experiment_meta.py
@@ -20,7 +20,7 @@
 
     The Submarine REST API allows you to create, list, and get experiments. 
The API is hosted under the /v1/experiment route on the Submarine server. For 
example, to list experiments on a server hosted at http://localhost:8080, 
access http://localhost:8080/api/v1/experiment/  # noqa: E501
 
-    The version of the OpenAPI document: 0.4.0-SNAPSHOT
+    The version of the OpenAPI document: 0.4.0
     Contact: [email protected]
     Generated by: https://openapi-generator.tech
 """
diff --git 
a/submarine-sdk/pysubmarine/submarine/experiment/models/experiment_spec.py 
b/submarine-sdk/pysubmarine/submarine/experiment/models/experiment_spec.py
index 7b013d4..aabb127 100644
--- a/submarine-sdk/pysubmarine/submarine/experiment/models/experiment_spec.py
+++ b/submarine-sdk/pysubmarine/submarine/experiment/models/experiment_spec.py
@@ -20,7 +20,7 @@
 
     The Submarine REST API allows you to create, list, and get experiments. 
The API is hosted under the /v1/experiment route on the Submarine server. For 
example, to list experiments on a server hosted at http://localhost:8080, 
access http://localhost:8080/api/v1/experiment/  # noqa: E501
 
-    The version of the OpenAPI document: 0.4.0-SNAPSHOT
+    The version of the OpenAPI document: 0.4.0
     Contact: [email protected]
     Generated by: https://openapi-generator.tech
 """
diff --git 
a/submarine-sdk/pysubmarine/submarine/experiment/models/experiment_task_spec.py 
b/submarine-sdk/pysubmarine/submarine/experiment/models/experiment_task_spec.py
index 3245738..a673b14 100644
--- 
a/submarine-sdk/pysubmarine/submarine/experiment/models/experiment_task_spec.py
+++ 
b/submarine-sdk/pysubmarine/submarine/experiment/models/experiment_task_spec.py
@@ -20,7 +20,7 @@
 
     The Submarine REST API allows you to create, list, and get experiments. 
The API is hosted under the /v1/experiment route on the Submarine server. For 
example, to list experiments on a server hosted at http://localhost:8080, 
access http://localhost:8080/api/v1/experiment/  # noqa: E501
 
-    The version of the OpenAPI document: 0.4.0-SNAPSHOT
+    The version of the OpenAPI document: 0.4.0
     Contact: [email protected]
     Generated by: https://openapi-generator.tech
 """
diff --git 
a/submarine-sdk/pysubmarine/submarine/experiment/models/json_response.py 
b/submarine-sdk/pysubmarine/submarine/experiment/models/json_response.py
index 7ca5494..245dd23 100644
--- a/submarine-sdk/pysubmarine/submarine/experiment/models/json_response.py
+++ b/submarine-sdk/pysubmarine/submarine/experiment/models/json_response.py
@@ -20,7 +20,7 @@
 
     The Submarine REST API allows you to create, list, and get experiments. 
The API is hosted under the /v1/experiment route on the Submarine server. For 
example, to list experiments on a server hosted at http://localhost:8080, 
access http://localhost:8080/api/v1/experiment/  # noqa: E501
 
-    The version of the OpenAPI document: 0.4.0-SNAPSHOT
+    The version of the OpenAPI document: 0.4.0
     Contact: [email protected]
     Generated by: https://openapi-generator.tech
 """
diff --git a/submarine-sdk/pysubmarine/submarine/experiment/rest.py 
b/submarine-sdk/pysubmarine/submarine/experiment/rest.py
index f9e6f58..3a1e0a6 100644
--- a/submarine-sdk/pysubmarine/submarine/experiment/rest.py
+++ b/submarine-sdk/pysubmarine/submarine/experiment/rest.py
@@ -19,7 +19,7 @@
 
     The Submarine REST API allows you to create, list, and get experiments. 
The API is hosted under the /v1/experiment route on the Submarine server. For 
example, to list experiments on a server hosted at http://localhost:8080, 
access http://localhost:8080/api/v1/experiment/  # noqa: E501
 
-    The version of the OpenAPI document: 0.4.0-SNAPSHOT
+    The version of the OpenAPI document: 0.4.0
     Contact: [email protected]
     Generated by: https://openapi-generator.tech
 """
diff --git a/submarine-security/spark-security/pom.xml 
b/submarine-security/spark-security/pom.xml
index 99b1cc1..b44ee61 100644
--- a/submarine-security/spark-security/pom.xml
+++ b/submarine-security/spark-security/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <artifactId>submarine</artifactId>
     <groupId>org.apache.submarine</groupId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
diff --git a/submarine-server/pom.xml b/submarine-server/pom.xml
index af28622..d451484 100644
--- a/submarine-server/pom.xml
+++ b/submarine-server/pom.xml
@@ -24,12 +24,12 @@
   <parent>
     <artifactId>submarine</artifactId>
     <groupId>org.apache.submarine</groupId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
   <artifactId>submarine-server</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <packaging>pom</packaging>
   <name>Submarine: Server</name>
 
diff --git a/submarine-server/server-api/pom.xml 
b/submarine-server/server-api/pom.xml
index 5c657d8..7dc1be8 100644
--- a/submarine-server/server-api/pom.xml
+++ b/submarine-server/server-api/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <artifactId>submarine-server</artifactId>
     <groupId>org.apache.submarine</groupId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/submarine-server/server-core/pom.xml 
b/submarine-server/server-core/pom.xml
index 0917f48..3bf65e8 100644
--- a/submarine-server/server-core/pom.xml
+++ b/submarine-server/server-core/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <artifactId>submarine-server</artifactId>
     <groupId>org.apache.submarine</groupId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git 
a/submarine-server/server-core/src/main/java/org/apache/submarine/server/Bootstrap.java
 
b/submarine-server/server-core/src/main/java/org/apache/submarine/server/Bootstrap.java
index 2e7192a..953d52a 100644
--- 
a/submarine-server/server-core/src/main/java/org/apache/submarine/server/Bootstrap.java
+++ 
b/submarine-server/server-core/src/main/java/org/apache/submarine/server/Bootstrap.java
@@ -49,7 +49,7 @@ public class Bootstrap extends HttpServlet {
              .termsOfService("http://swagger.io/terms/";)
              .contact(new Contact()
              .email("[email protected]"))
-             .version("0.4.0-SNAPSHOT")
+             .version("0.4.0")
              .license(new License()
              .name("Apache 2.0")
              .url("http://www.apache.org/licenses/LICENSE-2.0.html";));
diff --git a/submarine-server/server-rpc/pom.xml 
b/submarine-server/server-rpc/pom.xml
index 53cd7ac..a2b300c 100644
--- a/submarine-server/server-rpc/pom.xml
+++ b/submarine-server/server-rpc/pom.xml
@@ -24,12 +24,12 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine-server</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
   <artifactId>submarine-server-rpc</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: Server RPC</name>
 
   <dependencies>
diff --git a/submarine-server/server-submitter/pom.xml 
b/submarine-server/server-submitter/pom.xml
index a5ba015..9db9da1 100644
--- a/submarine-server/server-submitter/pom.xml
+++ b/submarine-server/server-submitter/pom.xml
@@ -24,12 +24,12 @@
   <parent>
     <artifactId>submarine-server</artifactId>
     <groupId>org.apache.submarine</groupId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
   <artifactId>submarine-server-submitter</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <packaging>pom</packaging>
   <name>Submarine: Submitter</name>
 
diff --git a/submarine-server/server-submitter/submitter-k8s/pom.xml 
b/submarine-server/server-submitter/submitter-k8s/pom.xml
index 9d0e202..d914ced 100644
--- a/submarine-server/server-submitter/submitter-k8s/pom.xml
+++ b/submarine-server/server-submitter/submitter-k8s/pom.xml
@@ -24,12 +24,12 @@
   <parent>
     <artifactId>submarine-server-submitter</artifactId>
     <groupId>org.apache.submarine</groupId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
   <artifactId>submarine-submitter-k8s</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: Kubernetes Submitter</name>
 
   <dependencies>
diff --git a/submarine-server/server-submitter/submitter-yarn/pom.xml 
b/submarine-server/server-submitter/submitter-yarn/pom.xml
index c219056..55545bd 100644
--- a/submarine-server/server-submitter/submitter-yarn/pom.xml
+++ b/submarine-server/server-submitter/submitter-yarn/pom.xml
@@ -20,12 +20,12 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine-server-submitter</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
   <artifactId>submarine-submitter-yarn</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: YARN Submitter</name>
 
   <dependencies>
diff --git a/submarine-server/server-submitter/submitter-yarnservice/pom.xml 
b/submarine-server/server-submitter/submitter-yarnservice/pom.xml
index 09c1e8f..8611853 100644
--- a/submarine-server/server-submitter/submitter-yarnservice/pom.xml
+++ b/submarine-server/server-submitter/submitter-yarnservice/pom.xml
@@ -25,11 +25,11 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine-server-submitter</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
   </parent>
 
   <artifactId>submarine-submitter-yarnservice</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: YARN Service Submitter</name>
 
   <properties>
diff --git a/submarine-test/pom.xml b/submarine-test/pom.xml
index 6c0667e..0d15ca6 100644
--- a/submarine-test/pom.xml
+++ b/submarine-test/pom.xml
@@ -25,10 +25,10 @@
   <parent>
     <artifactId>submarine</artifactId>
     <groupId>org.apache.submarine</groupId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
   </parent>
   <artifactId>submarine-test</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: Test</name>
   <packaging>pom</packaging>
 
diff --git a/submarine-test/test-e2e/pom.xml b/submarine-test/test-e2e/pom.xml
index 71bdea9..aee6d22 100644
--- a/submarine-test/test-e2e/pom.xml
+++ b/submarine-test/test-e2e/pom.xml
@@ -25,11 +25,11 @@
   <parent>
     <artifactId>submarine-test</artifactId>
     <groupId>org.apache.submarine</groupId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
   </parent>
 
   <artifactId>submarine-test-e2e</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: E2E Test</name>
 
   <properties>
diff --git a/submarine-test/test-k8s/pom.xml b/submarine-test/test-k8s/pom.xml
index 1232180..e36191c 100644
--- a/submarine-test/test-k8s/pom.xml
+++ b/submarine-test/test-k8s/pom.xml
@@ -25,11 +25,11 @@
   <parent>
     <artifactId>submarine-test</artifactId>
     <groupId>org.apache.submarine</groupId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
   </parent>
 
   <artifactId>submarine-test-k8s</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: Kubernetes Test</name>
 
   <properties>
diff --git a/submarine-workbench/interpreter/interpreter-core/pom.xml 
b/submarine-workbench/interpreter/interpreter-core/pom.xml
index 6cd4e3a..cb585b9 100644
--- a/submarine-workbench/interpreter/interpreter-core/pom.xml
+++ b/submarine-workbench/interpreter/interpreter-core/pom.xml
@@ -26,12 +26,12 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine-interpreter</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
   <artifactId>submarine-interpreter-core</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: Interpreter Core</name>
   <description>Submarine Interpreter Core</description>
 
diff --git a/submarine-workbench/interpreter/pom.xml 
b/submarine-workbench/interpreter/pom.xml
index d2fcde9..28e20fd 100644
--- a/submarine-workbench/interpreter/pom.xml
+++ b/submarine-workbench/interpreter/pom.xml
@@ -26,12 +26,12 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine-workbench</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
   <artifactId>submarine-interpreter</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <packaging>pom</packaging>
   <name>Submarine: Interpreter</name>
   <description>Submarine Interpreter Parent</description>
diff --git a/submarine-workbench/interpreter/python-interpreter/README.md 
b/submarine-workbench/interpreter/python-interpreter/README.md
index 0236fc3..c2d8627 100644
--- a/submarine-workbench/interpreter/python-interpreter/README.md
+++ b/submarine-workbench/interpreter/python-interpreter/README.md
@@ -18,10 +18,10 @@
 
 ### Execute test command
 ```
-java -jar python-interpreter-0.4.0-SNAPSHOT-shade.jar python 
python-interpreter-id test
+java -jar python-interpreter-0.4.0-shade.jar python python-interpreter-id test
 ```
 
-### Print test result 
+### Print test result
 ```
  INFO [2019-10-14 10:35:11,653] ({main} 
SubmarinePythonInterpreter.java[test]:111) - Execution Python Interpreter, 
Calculation formula 1 + 1, Result = 2
  INFO [2019-10-14 10:35:11,653] ({main} InterpreterProcess.java[main]:68) - 
Interpreter test result: true
@@ -33,7 +33,7 @@ java -jar python-interpreter-0.4.0-SNAPSHOT-shade.jar python 
python-interpreter-
 ### Execute debug command
 
 ```
-java -jar python-interpreter-0.4.0-SNAPSHOT-shade.jar 
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 python 
python-interpreter-id
+java -jar python-interpreter-0.4.0-shade.jar 
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 python 
python-interpreter-id
 ```
 
 Connect via remote debugging in IDEA
diff --git a/submarine-workbench/interpreter/python-interpreter/pom.xml 
b/submarine-workbench/interpreter/python-interpreter/pom.xml
index 2e6a0b3..ff27815 100644
--- a/submarine-workbench/interpreter/python-interpreter/pom.xml
+++ b/submarine-workbench/interpreter/python-interpreter/pom.xml
@@ -26,12 +26,12 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine-interpreter</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
   <artifactId>submarine-python-interpreter</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: Interpreter Python</name>
   <description>Submarine Python Interpreter</description>
 
diff --git a/submarine-workbench/interpreter/spark-interpreter/pom.xml 
b/submarine-workbench/interpreter/spark-interpreter/pom.xml
index 9f0ca98..6037eaf 100644
--- a/submarine-workbench/interpreter/spark-interpreter/pom.xml
+++ b/submarine-workbench/interpreter/spark-interpreter/pom.xml
@@ -26,12 +26,12 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine-interpreter</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
   <artifactId>submarine-spark-interpreter</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: Interpreter Spark</name>
   <description>Submarine spark Interpreter</description>
 
diff --git a/submarine-workbench/pom.xml b/submarine-workbench/pom.xml
index da9f0c9..0cc6156 100644
--- a/submarine-workbench/pom.xml
+++ b/submarine-workbench/pom.xml
@@ -26,12 +26,12 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
   <artifactId>submarine-workbench</artifactId>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <packaging>pom</packaging>
   <name>Submarine: Workbench</name>
   <description>Submarine Workbench</description>
diff --git a/submarine-workbench/workbench-web-ng/pom.xml 
b/submarine-workbench/workbench-web-ng/pom.xml
index 4be602d..7cd7578 100644
--- a/submarine-workbench/workbench-web-ng/pom.xml
+++ b/submarine-workbench/workbench-web-ng/pom.xml
@@ -25,14 +25,14 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine-workbench</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
   <groupId>org.apache.submarine</groupId>
   <artifactId>submarine-workbench-web-ng</artifactId>
   <packaging>war</packaging>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: Workbench Web Angular</name>
 
   <!-- See https://github.com/eirslett/frontend-maven-plugin/issues/229 -->
diff --git a/submarine-workbench/workbench-web/pom.xml 
b/submarine-workbench/workbench-web/pom.xml
index 063d99c..1581319 100644
--- a/submarine-workbench/workbench-web/pom.xml
+++ b/submarine-workbench/workbench-web/pom.xml
@@ -23,14 +23,14 @@
   <parent>
     <groupId>org.apache.submarine</groupId>
     <artifactId>submarine-workbench</artifactId>
-    <version>0.4.0-SNAPSHOT</version>
+    <version>0.4.0</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
   <groupId>org.apache.submarine</groupId>
   <artifactId>submarine-workbench-web</artifactId>
   <packaging>war</packaging>
-  <version>0.4.0-SNAPSHOT</version>
+  <version>0.4.0</version>
   <name>Submarine: Workbench Web</name>
 
   <!-- See https://github.com/eirslett/frontend-maven-plugin/issues/229 -->


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to