diff --git a/docs/community/release-procedure.md b/docs/community/release-procedure.md
index 5baf2a9..4fc911a 100644
--- a/docs/community/release-procedure.md
+++ b/docs/community/release-procedure.md
@@ -211,7 +211,7 @@
 1. Generate `RELEASE_NOTE.md` based on the history of git commit and `CHANGELOG.md`.
 1. Download release candidate from `https://dist.apache.org/repos/dist/dev/incubator/weex/${RELEASE_CANDIDATE_PREFIX}/${RELEASE_CANDIDATE_SUFFIX}`, rename it to `apache-weex-incubating-${$RELEASE_CANDIDATE_PREFIX}-src.tar.gz`, then upload it to [https://dist.apache.org/repos/dist/release/incubator/weex/](https://dist.apache.org/repos/dist/release/incubator/weex/)
 1. Push git tag named `${RELEASE_CANDIDATE_PREFIX}` to `${GIT_REMOTE}` repository and generate a corresponding [Github Release](https://help.github.com/en/articles/about-releases) with `${GITHUB_PERSONAL_TOKEN}`. As the script will install [release-it](https://github.com/release-it/release-it#github-releases) with `npm install -g release-it` to publish github release, make sure your npm environment is ready.
-1. Publish the convenience binary of Android to JCenter with your `${JCENTER_TOKEN}`. You can see the [JCenter token](https://svn.apache.org/repos/private/pmc/incubator/weex/) if you are a PPMC member of Weex
+1. Publish the convenience binary of Android to JCenter with your `${JCENTER_TOKEN}`. You can see the [JCenter token](https://svn.apache.org/repos/private/pmc/incubator/weex/) if you are a PPMC member of Weex.
 
 ::: warning
 The convenience binary of iOS can only be published manually now.
@@ -223,15 +223,15 @@
 Please remember update the [website](https://weex.apache.org/download/download.html) with your latest release information and correct link.
 
 ::: warning
-The download link of the latest release source must be provided in the format of mirror, like `https://www.apache.org/dyn/closer.cgi?filename=incubator/weex/${RELEASE_CANDIDATE_PREFIX}/apache-weex-incubating-${RELEASE_CANDIDATE_PREFIX}-src.tar.gz&action=download` according to [ASF' policy](http://www.apache.org/dev/release-download-pages#links).
-:::
+* The download link of the latest release source must be provided in the format of mirror, like `https://www.apache.org/dyn/closer.cgi?filename=incubator/weex/${RELEASE_CANDIDATE_PREFIX}/apache-weex-incubating-${RELEASE_CANDIDATE_PREFIX}-src.tar.gz&action=download` according to [ASF' policy](http://www.apache.org/dev/release-download-pages#links).
 
-::: warning
-As the old release is archived, you should probably update the link of your previous release to new address like, `https://archive.apache.org/dist/incubator/weex/${PREVIOUS_RELEASE}/apache-weex-incubating-${PREVIOUS_RELEASE}-src.tar.gz`
+* As the old release is archived, you should probably update the link of your previous release to new address like, `https://archive.apache.org/dist/incubator/weex/${PREVIOUS_RELEASE}/apache-weex-incubating-${PREVIOUS_RELEASE}-src.tar.gz`
 :::
 
 ::: tip
-The version information like `pod version` in [Github Page](https://github.com/apache/incubator-weex/edit/master/README.md) will get updated within 24 hours automatically. Please be patient.
+* Remember to move old latest version to Archived Release section.
+
+* The version information like `pod version` in [Github Page](https://github.com/apache/incubator-weex/edit/master/README.md) will get updated within 24 hours automatically. Please be patient.
 :::
 
 ## Announce it
diff --git a/docs/download/download.md b/docs/download/download.md
index b92047a..d453bfb 100644
--- a/docs/download/download.md
+++ b/docs/download/download.md
@@ -12,17 +12,27 @@
 :::
 
 # Latest Release
+## 0.26.0
+* Released in July 11, 2019
+* [ChangeLog](https://github.com/apache/incubator-weex/releases/tag/0.26.0)
+* [Source](https://www.apache.org/dyn/closer.cgi?filename=incubator/weex/0.26.0/apache-weex-incubating-0.26.0-src.tar.gz&action=download) | [Signature](https://www.apache.org/dist/incubator/weex/0.26.0/apache-weex-incubating-0.26.0-src.tar.gz.asc) | [Checksum](https://dist.apache.org/repos/dist/release/incubator/weex/0.26.0/apache-weex-incubating-0.26.0-src.tar.gz.sha512)
+* Binary
+    * Android 
+        `compile 'com.taobao.android:weex_sdk:0.26.0'`
+    * iOS 
+        `pod "WeexSDK","0.26.0"`
+
+# Archived Release
 ## 0.24.0
 * Released in May 23, 2019
 * [ChangeLog](https://github.com/apache/incubator-weex/releases/tag/0.24.0)
-* [Source](https://www.apache.org/dyn/closer.cgi?filename=incubator/weex/0.24.0/apache-weex-incubating-0.24.0-src.tar.gz&action=download) | [Signature](https://www.apache.org/dist/incubator/weex/0.24.0/apache-weex-incubating-0.24.0-src.tar.gz.asc) | [Checksum](https://dist.apache.org/repos/dist/release/incubator/weex/0.24.0/apache-weex-incubating-0.24.0-src.tar.gz.sha512)
+* [Source](https://archive.apache.org/dist/incubator/weex/0.24.0/apache-weex-incubating-0.24.0-src.tar.gz) | [Signature](https://archive.apache.org/dist/incubator/weex/0.24.0/apache-weex-incubating-0.24.0-src.tar.gz.asc) | [Checksum](https://archive.apache.org/dist/incubator/weex/0.24.0/apache-weex-incubating-0.24.0-src.tar.gz.sha512)
 * Binary
     * Android 
         `compile 'com.taobao.android:weex_sdk:0.24.0'`
     * iOS 
         `pod "WeexSDK","0.24.0"`
 
-# Archived Release
 ## 0.20.0 
 * Released in Nov 30, 2018
 * [ChangeLog](https://github.com/apache/incubator-weex/releases/tag/0.20.0)
diff --git a/docs/guide/debug/integrate-devtool-to-android.md b/docs/guide/debug/integrate-devtool-to-android.md
index 48f5b9f..15683e6 100644
--- a/docs/guide/debug/integrate-devtool-to-android.md
+++ b/docs/guide/debug/integrate-devtool-to-android.md
@@ -16,6 +16,7 @@
 | 0.19.0+  | 0.18.68        |
 | 0.20.3.0-beta | 0.20.3.0-beta |
 | 0.24.0+  | 0.24.2.4 |
+| 0.26.0+  | 0.24.2.4 |
 
 ## Integrate to Android
 
diff --git a/docs/zh/blog/weexcore-multiprocess-evolution.md b/docs/zh/blog/weexcore-multiprocess-evolution.md
index 361474e..b285540 100644
--- a/docs/zh/blog/weexcore-multiprocess-evolution.md
+++ b/docs/zh/blog/weexcore-multiprocess-evolution.md
@@ -25,7 +25,7 @@
 
 初始化时, 父进程锁住 0 内存块. 子进程锁住 1 内存块, 子进程启动监听, 请求锁 0 内存块. 但此时 0 内存块被父进程锁着, 所以子进程请求锁 0 内存块失败, wait 父进程释放 0 内存块. 就这样, 两个进程因为互相竞争一块共享内存, 所以变相的成为单线程模式. 既同一时间只有一个进程能够保持活跃状态. 
 
-这意味着当前模型下, **Weex 所有的操作入口只能是 Platform 层, 子进程只能响应父进程的任务, 不能主动的执行某个人物, 且父进程在执行 Layout 或 parser 操作时, JSEngine 是处于挂起的状态的.**
+这意味着当前模型下, **Weex 所有的操作入口只能是 Platform 层, 子进程只能响应父进程的任务, 不能主动的执行某个任务, 且父进程在执行 Layout 或 parser 操作时, JSEngine 是处于挂起的状态的.**
 
 所以, WeexCore 的线程模型演变成下面这个样子.
 
diff --git a/docs/zh/community/release-procedure.md b/docs/zh/community/release-procedure.md
index 93b8279..974959a 100644
--- a/docs/zh/community/release-procedure.md
+++ b/docs/zh/community/release-procedure.md
@@ -29,7 +29,7 @@
 ## Prepare environment
 To generate and compile a weex release, you need to set up the following environment:
 * [Weex build environment](https://github.com/apache/incubator-weex/blob/master/HOW-TO-BUILD.md#build-environment), which includes Android, iOS, JS, C++ toolchains.
-* [OpenPGP environment](http://www.apache.org/dev/openpgp.html#key-gen-generate-key), which is used to generate signature and checksum for release candidate. Please note that OpenPGP is not the same as your `ssh` key though both of them may use the same cryptography algorithm.
+* [OpenPGP environment](http://www.apache.org/dev/openpgp.html#key-gen-generate-key), which is used to generate signature and checksum for release candidate. Please note that OpenPGP is not the same as your `ssh` key though both of them may use the same cryptography algorithm. You may simply use `brew install gpg` to install tools and setup your key pair by `gpg --full-gen-key`.
 
 ## Create release branch
 The release branch should be named to `release/xxx`, like `release/0.24`. Then the release manager should push the release branch to the remote repository.
@@ -72,12 +72,13 @@
 * The signature of the source file, like `apache-weex-incubating-xxxxx-xxxxx-src.tar.gz.asc`
 * The checksum of the source file, like `apache-weex-incubating-xxxxx-xxxxx-src.tar.gz.sha512`
 * The `KEYS` as a result of `gpg --list-sigs && gpg --armor --export >> KEYS` 
+* Remeber to append your public-key info to `KEYS` file in repository https://dist.apache.org/repos/dist/release/incubator/weex and https://dist.apache.org/repos/dist/dev/incubator/weex
 :::
 
 Release manager could invoke `scripts/publish_release_candidate.sh $RELEASE_CANDIDATE_PREFIX $RELEASE_CANDIDATE_SUFFIX $GIT_REMOTE` to publish a release candidate. The explanation of the variable is listed below:
 * `$RELEASE_CANDIDATE_PREFIX`, Weex release candidate prefix, like 0.24.0
 * `$RELEASE_CANDIDATE_SUFFIX`, The release candaidate suffix, like RC3
-* `$GIT_REMOTE` The name of your Github repository, like github-Apache whose URL should be `git@github.com:apache/incubator-weex.git`
+* `$GIT_REMOTE` The name of your Github repository, like github-Apache whose URL should be `git@github.com:apache/incubator-weex.git`. You can view `.git/config` file to find the name of your repository.
 
 The above script will do following things for the release manager:
 1. Push git tag with the name `${RELEASE_CANDIDATE_PREFIX}-${RELEASE_CANDIDATE_SUFFIX}` to ${GIT_REMOTE} repository.
@@ -214,7 +215,7 @@
 1. Generate `RELEASE_NOTE.md` based on the history of git commit and `CHANGELOG.md`.
 1. Download release candidate from `https://dist.apache.org/repos/dist/dev/incubator/weex/${RELEASE_CANDIDATE_PREFIX}/${RELEASE_CANDIDATE_SUFFIX}`, rename it to `apache-weex-incubating-${$RELEASE_CANDIDATE_PREFIX}-src.tar.gz`, then upload it to [https://dist.apache.org/repos/dist/release/incubator/weex/](https://dist.apache.org/repos/dist/release/incubator/weex/)
 1. Push git tag named `${RELEASE_CANDIDATE_PREFIX}` to `${GIT_REMOTE}` repository and generate a corresponding [Github Release](https://help.github.com/en/articles/about-releases) with `${GITHUB_PERSONAL_TOKEN}`. As the script will install [release-it](https://github.com/release-it/release-it#github-releases) with `npm install -g release-it` to publish github release, make sure your npm environment is ready.
-1. Publish the convenience binary of Android to JCenter with your `${JCENTER_TOKEN}`. You can see the [JCenter token](https://svn.apache.org/repos/private/pmc/incubator/weex/) if you are a PPMC member of Weex
+1. Publish the convenience binary of Android to JCenter with your `${JCENTER_TOKEN}`. You can see the [JCenter token](https://svn.apache.org/repos/private/pmc/incubator/weex/) if you are a PPMC member of Weex.
 
 ::: warning
 The convenience binary of iOS can only be published manually now.
@@ -226,15 +227,15 @@
 Please remember update the [website](https://weex.apache.org/download/download.html) with your latest release information and correct link.
 
 ::: warning
-The download link of the latest release source must be provided in the format of mirror, like `https://www.apache.org/dyn/closer.cgi?filename=incubator/weex/${RELEASE_CANDIDATE_PREFIX}/apache-weex-incubating-${RELEASE_CANDIDATE_PREFIX}-src.tar.gz&action=download` according to [ASF' policy](http://www.apache.org/dev/release-download-pages#links).
-:::
+* The download link of the latest release source must be provided in the format of mirror, like `https://www.apache.org/dyn/closer.cgi?filename=incubator/weex/${RELEASE_CANDIDATE_PREFIX}/apache-weex-incubating-${RELEASE_CANDIDATE_PREFIX}-src.tar.gz&action=download` according to [ASF' policy](http://www.apache.org/dev/release-download-pages#links).
 
-::: warning
-As the old release is archived, you should probably update the link of your previous release to new address like, `https://archive.apache.org/dist/incubator/weex/${PREVIOUS_RELEASE}/apache-weex-incubating-${PREVIOUS_RELEASE}-src.tar.gz`
+* As the old release is archived, you should probably update the link of your previous release to new address like, `https://archive.apache.org/dist/incubator/weex/${PREVIOUS_RELEASE}/apache-weex-incubating-${PREVIOUS_RELEASE}-src.tar.gz`
 :::
 
 ::: tip
-The version information like `pod version` in [Github Page](https://github.com/apache/incubator-weex/edit/master/README.md) will get updated within 24 hours automatically. Please be patient.
+* Remember to move old latest version to Archived Release section.
+
+* The version information like `pod version` in [Github Page](https://github.com/apache/incubator-weex/edit/master/README.md) will get updated within 24 hours automatically. Please be patient.
 :::
 
 ## Announce it
diff --git a/docs/zh/download/download.md b/docs/zh/download/download.md
index 1b60486..97086cf 100644
--- a/docs/zh/download/download.md
+++ b/docs/zh/download/download.md
@@ -12,17 +12,27 @@
 :::
 
 # 最新版本
+## 0.26.0
+* 发布日期 2019年7月11日
+* [变更记录](https://github.com/apache/incubator-weex/releases/tag/0.26.0)
+* [源代码](https://www.apache.org/dyn/closer.cgi?filename=incubator/weex/0.26.0/apache-weex-incubating-0.26.0-src.tar.gz&action=download) | [签名](https://www.apache.org/dist/incubator/weex/0.26.0/apache-weex-incubating-0.26.0-src.tar.gz.asc) | [哈希](https://dist.apache.org/repos/dist/release/incubator/weex/0.26.0/apache-weex-incubating-0.26.0-src.tar.gz.sha512)
+* 二进制下载渠道
+    * Android 
+        `compile 'com.taobao.android:weex_sdk:0.26.0'`
+    * iOS 
+        `pod "WeexSDK", "0.26.0"`
+
+# 历史版本
 ## 0.24.0
 * 发布日期 2019年5月23日
 * [变更记录](https://github.com/apache/incubator-weex/releases/tag/0.24.0)
-* [源代码](https://www.apache.org/dyn/closer.cgi?filename=incubator/weex/0.24.0/apache-weex-incubating-0.24.0-src.tar.gz&action=download) | [签名](https://www.apache.org/dist/incubator/weex/0.24.0/apache-weex-incubating-0.24.0-src.tar.gz.asc) | [哈希](https://dist.apache.org/repos/dist/release/incubator/weex/0.24.0/apache-weex-incubating-0.24.0-src.tar.gz.sha512)
+* [源代码](https://archive.apache.org/dist/incubator/weex/0.24.0/apache-weex-incubating-0.24.0-src.tar.gz) | [签名](https://archive.apache.org/dist/incubator/weex/0.24.0/apache-weex-incubating-0.24.0-src.tar.gz.asc) | [哈希](https://archive.apache.org/dist/incubator/weex/0.24.0/apache-weex-incubating-0.24.0-src.tar.gz.sha512)
 * 二进制下载渠道
     * Android 
         `compile 'com.taobao.android:weex_sdk:0.24.0'`
     * iOS 
         `pod "WeexSDK","0.24.0"`
 
-# 历史版本
 ## 0.20.0 
 * 发布日期 2018年11月30日
 * [变更记录](https://github.com/apache/incubator-weex/releases/tag/0.20.0)
diff --git a/docs/zh/guide/debug/integrate-devtool-to-android.md b/docs/zh/guide/debug/integrate-devtool-to-android.md
index 50f4f47..e8afe3a 100644
--- a/docs/zh/guide/debug/integrate-devtool-to-android.md
+++ b/docs/zh/guide/debug/integrate-devtool-to-android.md
@@ -16,6 +16,7 @@
 | 0.19.0+  | 0.18.68        |
 | 0.20.3.0-beta | 0.20.3.0-beta |
 | 0.24.0+  | 0.24.2.4 |
+| 0.26.0+  | 0.24.2.4 |
 
 ## Android接入指南
 
