Added: kylin/site/cn/development40/howto_release.html
URL: 
http://svn.apache.org/viewvc/kylin/site/cn/development40/howto_release.html?rev=1891303&view=auto
==============================================================================
--- kylin/site/cn/development40/howto_release.html (added)
+++ kylin/site/cn/development40/howto_release.html Tue Jul  6 07:50:56 2021
@@ -0,0 +1,1322 @@
+<!--
+* 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.
+-->
+
+<!doctype html>
+<html>
+       <!--
+* 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.
+-->
+
+<head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+
+  <title>Apache Kylin | 如何发布</title>
+  <meta name="description" content="Apache Kylin Home">
+  <meta name="author"      content="Apache Kylin">
+  <link rel="shortcut icon" href="fav.png" type="image/png">
+
+
+
+<link rel="stylesheet" href="/assets/css/animate.css">
+<!-- Bootstrap -->
+<link rel="stylesheet" href="/assets/css/bootstrap.min.css">
+
+<!-- Fonts -->
+<!-- <link rel="stylesheet" 
href="http://fonts.googleapis.com/css?family=Alice|Open+Sans:400,300,700"> -->
+
+<!-- Icons -->
+<link rel="stylesheet" href="/assets/css/font-awesome.min.css">
+
+  <!-- Custom styles -->
+  <link rel="stylesheet" href="/assets/css/styles.css">
+  <link rel="stylesheet" href="/assets/css/docs.css">
+
+  <link rel="canonical" 
href="http://kylin.apache.org/cn/development40/howto_release.html";>
+  <link rel="alternate" type="application/rss+xml" title="Apache Kylin" 
href="http://kylin.apache.org/feed.xml"; />
+
+<!--[if lt IE 9]> <script src="assets/js/html5shiv.js"></script> <![endif]-->
+<!-- Global site tag (gtag.js) - Google Analytics -->
+<script async 
src="https://www.googletagmanager.com/gtag/js?id=UA-120788561-1";></script>
+<script>
+  window.dataLayer = window.dataLayer || [];
+  function gtag(){dataLayer.push(arguments);}
+  gtag('js', new Date());
+
+  gtag('config', 'UA-120788561-1');
+</script>
+<script type="text/javascript" src="/assets/js/jquery-1.9.1.min.js"></script>
+<script type="text/javascript" src="/assets/js/nside.js"></script> </script>
+<script type="text/javascript" src="/assets/js/nnav.js"></script> </script>
+<script>
+var _hmt = _hmt || [];
+(function() {
+  var hm = document.createElement("script");
+  hm.src = "https://hm.baidu.com/hm.js?bdc5e03add430c0b72cc0eb91eabfa99";;
+  var s = document.getElementsByTagName("script")[0]; 
+  s.parentNode.insertBefore(hm, s);
+})();
+</script>
+</head>
+
+       <body>
+               <!--
+* 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.
+-->
+
+<header id="header" >
+  <!-- Main Menu -->
+  <nav class="navbar navbar-default" role="navigation" id="nav-wrapper">
+    <div class="container-fluid" id="nav">
+      <!-- Brand and toggle get grouped for better mobile display -->
+      <div class="navbar-header">
+        <img class="navbar-logo" width="46" src="/assets/images/kylin_logo.png 
"></img> 
+        
+        <button type="button" class="navbar-toggle collapsed" 
data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+          <span class="sr-only">Toggle navigation</span>
+          <span class="icon-bar"></span>
+          <span class="icon-bar"></span>
+          <span class="icon-bar"></span>
+        </button>
+        <ul class="nav icon-navbar">
+            <li><a href="https://twitter.com/apachekylin"; target="_blank" 
class="fa fa-twitter fa-lg"  title="Twitter: @ApacheKylin" ></a></li>
+            <li><a href="https://github.com/apache/kylin"; target="_blank" 
class="fa fa-github-alt fa-lg" title="Github: apache/kylin" ></a></li>          
+            <li><a href="https://www.facebook.com/kylinio"; target="_blank" 
class="fa fa-facebook fa-lg" title="Facebook: kylin.io" ></a></li>    
+        </ul>
+      </div>
+
+      <!-- Collect the nav links, forms, and other content for toggling -->
+      <div class="navbar-collapse collapse" id="bs-example-navbar-collapse-1">
+        <ul class="nav navbar-nav">
+            <li><a href="/cn">首页</a></li>
+            <li><a href="/cn/docs" >文档</a></li>
+            <li><a href="/cn/download">下载</a></li>
+            <li><a href="/cn/community" >社区</a></li>
+            <li><a href="/cn/development" >开发</a></li>
+            <li><a href="/cn/blog">博客</a></li>
+            <li><a href="/" >English</a></li>           
+        </ul>
+        
+
+      </div><!-- /.navbar-collapse -->
+    </div><!-- /.container-fluid -->
+  </nav>
+
+  <div id="head" class="parallax normal-header" >
+    <div class="text-center header-apache">
+      <a href="http://apache.org/foundation/contributing.html"; title="Support 
Apache" style="margin-left: 150px;">
+        <div>
+          <img src="https://www.apache.org/images/SupportApache-small.png";>
+        </div>
+      </a>
+    </div>  
+  </div>
+
+ </header>
+
+               
+               <div class="container">
+                       <div class="row"  style="clear:both;">
+                               
+                               <div class="col-md-8 col-lg-8 col-xs-12 
col-sm-12 aside2" style="float: right;">
+                                       <div id="container" class="docs">
+                                               <div id="pjax">
+                                                       <h1 
class="post-title">如何发布</h1>
+                                                       <article 
class="post-content" >
+                                                       
<p><em>本教程只适用于 Apache Kylin Committers。</em>  <br />
+<em>以在 Mac OS X 上的 Shell 命令作为样例。</em>  <br />
+<em>对于中国用户,请谨慎使用代理以避å…
æ½œåœ¨çš„防火墙问题。</em></p>
+
+<h2 id="section">建立账户</h2>
+<p>确保您有可使用的账号且对以下应用有权限:</p>
+
+<ul>
+  <li>Apache 账户:<a 
href="https://id.apache.org/";>https://id.apache.org</a></li>
+  <li>Apache Kylin git repo (main cobe base): <a 
href="https://github.com/apache/kylin";>https://github.com/apache/kylin</a></li>
+  <li>Apache Kylin svn 
仓库(只针对网站):https://svn.apache.org/repos/asf/kylin](https://svn.apache.org/repos/asf/kylin)</li>
+  <li>Apache Nexus (maven 仓库):<a 
href="https://repository.apache.org";>https://repository.apache.org</a></li>
+  <li>Apache Kylin dist 仓库:<a 
href="https://dist.apache.org/repos/dist/dev/kylin";>https://dist.apache.org/repos/dist/dev/kylin</a></li>
+</ul>
+
+<h2 id="section-1">软件要求</h2>
+<ul>
+  <li>Java 8 或更高版本;</li>
+  <li>Maven 3.5.3 或更高版本;</li>
+  <li>如果你是用 Mac OS X 做发布,请按照<a 
href="http://macappstore.org/gnu-tar/";>此文章</a>安装 GNU TAR。</li>
+</ul>
+
+<h2 id="gpg-">设置 GPG 签名密钥</h2>
+<p>按照 <a 
href="http://www.apache.org/dev/release-signing";>http://www.apache.org/dev/release-signing</a>
 上的说明创建密钥对  <br />
+安装 gpg(以 Mac OS X 为例): <br />
+<code class="highlighter-rouge">brew install gpg</code></p>
+
+<p>生成 gpg 密钥: <br />
+参考: <a 
href="https://www.gnupg.org/gph/en/manual/c14.html";>https://www.gnupg.org/gph/en/manual/c14.html</a>
  <br />
+<em>生成的所有新 RSA 密钥应至少为 4096 位。不要生成新的 
DSA 密钥</em>  <br />
+<code class="highlighter-rouge">gpg --full-generate-key</code></p>
+
+<p>验证您的密钥:  <br />
+<code class="highlighter-rouge">gpg --list-sigs YOUR_NAME</code></p>
+
+<p>获取密钥的指纹:<br />
+<code class="highlighter-rouge">gpg --fingerprint YOUR_NAME</code></p>
+
+<p>它将显示指纹,如 “Key fingerprint = XXXX XXXX …“,然后在 
<a href="https://id.apache.org/";>https://id.apache.org/</a> 上的 “OpenPGP 
Public Key Primary Fingerprint” 字段处将指纹添加到您的 apache 
帐户;等待几个小时,密钥将添加到 <a 
href="https://people.apache.org/keys/";>https://people.apache.org/keys/</a>,例如:<br
 />
+<a 
href="https://people.apache.org/keys/committer/lukehan.asc";>https://people.apache.org/keys/committer/lukehan.asc</a></p>
+
+<p>生成 ASCII Amromed 键:  <br />
+<code class="highlighter-rouge">gpg -a --export YOUR_MAIL_ADDRESS &gt; 
YOUR_NAME.asc &amp;</code></p>
+
+<p>上传密钥到公共服务器:  <br />
+<code class="highlighter-rouge">gpg --send-keys YOUR_KEY_HASH</code></p>
+
+<p>或通过 web 提交密钥:  <br />
+打开并提交到 <a 
href="http://pool.sks-keyservers.net:11371";>http://pool.sks-keyservers.net:11371</a>(您可以选择任意一个有效的å
…¬é’¥æœåŠ¡å™¨ï¼‰</p>
+
+<p>一旦您的密钥提交到服务器,您可以通过使用以下命令验证:
  <br />
+<code class="highlighter-rouge">gpg --recv-keys YOUR_KEY_HASH</code><br />
+举例:  <br />
+<code class="highlighter-rouge">gpg --recv-keys 027DC364</code></p>
+
+<p>按照 KEYS 文件中的说明将公钥添加到 KEYS 文件:  <br />
+<em>KEYS 文件位于:</em> <strong>${kylin}/KEYS</strong>  <br />
+例如:  <br />
+<code class="highlighter-rouge">(gpg --list-sigs YOURNAME &amp;&amp; gpg 
--armor --export YOURNAME) &gt;&gt; KEYS</code></p>
+
+<p>提交您的改动。</p>
+
+<h2 id="release-">准备 release 的工件</h2>
+<p><strong>开始前:</strong></p>
+
+<ul>
+  <li>如上所述设置签名密钥。</li>
+  <li>确保您使用的是 JDK 1.8。</li>
+  <li>确保您使用的是 GIT 2.7.2 或更高版本。</li>
+  <li>确保您使用的是正确的 release 版本号。</li>
+  <li>确保每个 “resolved” 的 JIRA 案例(包
括重复案例)都分配了修复版本。</li>
+  <li>确保你在干净的目录工作。</li>
+</ul>
+
+<p><strong>在 Maven 中配置 Apache 存储库服务器</strong><br />
+如果您是第一次发布,您需要在 ~/.m2/settings.xml 
中服务器授权信息;如果该文件不存在,从 
$M2_HOME/conf/settings.xml 拷贝一个模板;</p>
+
+<p>在 “服务器” 部分中,确保添加以下服务器,并将 
#YOUR_APACHE_ID#, #YOUR_APACHE_PWD#, #YOUR_GPG_PASSPHRASE# 替换为您的 
ID,密码和口令:</p>
+
+<div class="highlight"><pre><code class="language-bash" 
data-lang="bash">&lt;servers&gt;
+    &lt;!-- To publish a snapshot of some part of Maven --&gt;
+    &lt;server&gt;
+      &lt;id&gt;apache.snapshots.https&lt;/id&gt;
+      &lt;username&gt;#YOUR_APACHE_ID#&lt;/username&gt;
+      &lt;password&gt;#YOUR_APACHE_PWD#&lt;/password&gt;
+    &lt;/server&gt;
+    &lt;!-- To stage a release of some part of Maven --&gt;
+    &lt;server&gt;
+      &lt;id&gt;apache.releases.https&lt;/id&gt;
+      &lt;username&gt;#YOUR_APACHE_ID#&lt;/username&gt;
+      &lt;password&gt;#YOUR_APACHE_PWD#&lt;/password&gt;
+    &lt;/server&gt;
+    
+
+    &lt;!-- To publish a website of some part of Maven --&gt;
+    &lt;server&gt;
+      &lt;id&gt;apache.website&lt;/id&gt;
+      &lt;username&gt;#YOUR_APACHE_ID#&lt;/username&gt;
+      &lt;password&gt;#YOUR_APACHE_PWD#&lt;/password&gt;
+      &lt;!-- Either
+      &lt;privateKey&gt;...&lt;/privateKey&gt;
+      --&gt; 
+      &lt;filePermissions&gt;664&lt;/filePermissions&gt;
+      &lt;directoryPermissions&gt;775&lt;/directoryPermissions&gt;
+    &lt;/server&gt;
+    
+    &lt;!-- To stage a website of some part of Maven --&gt;
+    &lt;server&gt;
+      &lt;id&gt;stagingSite&lt;/id&gt; 
+      &lt;!-- must match hard-coded repository identifier <span class="k">in 
</span>site:stage-deploy --&gt;
+      &lt;username&gt;#YOUR_APACHE_ID#&lt;/username&gt;
+      &lt;filePermissions&gt;664&lt;/filePermissions&gt;
+      &lt;directoryPermissions&gt;775&lt;/directoryPermissions&gt;
+    &lt;/server&gt;
+    &lt;server&gt;
+      &lt;id&gt;gpg.passphrase&lt;/id&gt;
+      &lt;passphrase&gt;#YOUR_GPG_PASSPHRASE#&lt;/passphrase&gt;
+    &lt;/server&gt;
+  &lt;/servers&gt;</code></pre></div>
+
+<p><strong>修复许可证问题</strong></p>
+
+<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span 
class="c"># 设置密码变量而不将其放入shell历史记录中</span>
+<span class="gp">$ </span><span class="nb">read</span> -s GPG_PASSPHRASE
+
+<span class="c"># 确保沙箱中没有垃圾文件</span>
+<span class="gp">$ </span>git clean -xf
+<span class="gp">$ </span>mvn clean
+
+<span class="c"># 确保所有单元测试均通过</span>
+<span class="gp">$ </span>mvn <span class="nb">test</span>
+
+<span class="c"># 检查 `org.apache.kylin.common.KylinVersion` 类,确保 
`CURRENT_KYLIN_VERSION`的值是发行版本</span>
+
+<span class="c"># 修复 target / rat.txt 报告的所有许可证问题</span>
+<span class="gp">$ </span>mvn -Papache-release -DskipTests 
-Dgpg.passphrase<span class="o">=</span><span class="k">${</span><span 
class="nv">GPG_PASSPHRASE</span><span class="k">}</span> 
install</code></pre></div>
+
+<p>可选的,当 dry-run 成功了,将安装变为部署:</p>
+
+<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span 
class="gp">$ </span>mvn -Papache-release -DskipTests -Dgpg.passphrase<span 
class="o">=</span><span class="k">${</span><span 
class="nv">GPG_PASSPHRASE</span><span class="k">}</span> 
deploy</code></pre></div>
+
+<p><strong>准备</strong><br />
+检查并确保你可以 ssh 连接到 github:</p>
+
+<div class="highlight"><pre><code class="language-bash" data-lang="bash">ssh 
-T g...@github.com</code></pre></div>
+
+<p>基于要当前的开发分支,创建一个以 release 
版本号命名的发布分支,例如,v2.5.0-release(注意分支名字不能与
 tag 名字相同),并将其推到服务器端。</p>
+
+<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span 
class="gp">$ </span>git checkout -b vX.Y.Z-release
+<span class="gp">$ </span>git push -u origin vX.Y.Z-release</code></pre></div>
+
+<p>如果任何步骤失败,请清
理(见下文),解决问题,然后从头重新开始。</p>
+
+<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span 
class="c"># 设置密码变量而不将其放入shell历史记录中</span>
+<span class="gp">$ </span><span class="nb">read</span> -s GPG_PASSPHRASE
+
+<span class="c"># 确保沙箱中没有垃圾文件</span>
+<span class="gp">$ </span>git clean -xf
+<span class="gp">$ </span>mvn clean
+
+<span class="c"># (可选的)试运行 
release:准备步骤,该步骤设置版本号</span>
+<span class="gp">$ </span>mvn -DdryRun<span class="o">=</span><span 
class="nb">true</span> -DskipTests -DreleaseVersion<span 
class="o">=</span>X.Y.Z -DdevelopmentVersion<span 
class="o">=(</span>X.Y.Z+1<span class="o">)</span>-SNAPSHOT -Papache-release 
-Darguments<span class="o">=</span><span 
class="s2">"-Dgpg.passphrase=</span><span class="k">${</span><span 
class="nv">GPG_PASSPHRASE</span><span class="k">}</span><span class="s2"> 
-DskipTests"</span> release:prepare 2&gt;&amp;1 | tee 
/tmp/prepare-dry.log</code></pre></div>
+
+<p><strong>查看 dry run 输出:</strong></p>
+
+<ul>
+  <li>在 <code class="highlighter-rouge">target</code> 目录中应该是这 
8 个文件,其中包括:
+    <ul>
+      <li>apache-kylin-X.Y.Z-SNAPSHOT-source-release.zip</li>
+      <li>apache-kylin-X.Y.Z-SNAPSHOT-source-release.zip.asc</li>
+      <li>apache-kylin-X.Y.Z-SNAPSHOT-source-release.zip.asc.sha256</li>
+      <li>apache-kylin-X.Y.Z-SNAPSHOT-source-release.zip.sha256</li>
+    </ul>
+  </li>
+  <li>移除 .zip.asc.sha256 文件因为不需要</li>
+  <li>注意文件名以 <code class="highlighter-rouge">apache-kylin-</code> 
开始</li>
+  <li>在源发行版 <code class="highlighter-rouge">.zip</code> 
文件中,检查所有文件是否属于名为 <code 
class="highlighter-rouge">apache-kylin-X.Y.Z-SNAPSHOT</code> 的目录</li>
+  <li>该目录必须包含 <code 
class="highlighter-rouge">NOTICE</code>,<code 
class="highlighter-rouge">LICENSE</code>,<code 
class="highlighter-rouge">README.md</code> 文件</li>
+  <li>按<a 
href="https://httpd.apache.org/dev/verification.html";>此</a>检查 PGP。</li>
+</ul>
+
+<p><strong>运行真实的 release:</strong><br />
+现在真正开始 release</p>
+
+<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span 
class="c"># 如果之前做了dry run,在真正开始 release 
之前需要做清理</span>
+<span class="c"># 准备设置版本号,创建 tag,并将å…
¶æŽ¨é€åˆ°git</span>
+<span class="gp">$ </span>mvn -DskipTests -DreleaseVersion<span 
class="o">=</span>X.Y.Z -DdevelopmentVersion<span 
class="o">=(</span>X.Y.Z+1<span class="o">)</span>-SNAPSHOT -Papache-release 
-Darguments<span class="o">=</span><span 
class="s2">"-Dgpg.passphrase=</span><span class="k">${</span><span 
class="nv">GPG_PASSPHRASE</span><span class="k">}</span><span class="s2"> 
-DskipTests"</span> release:prepare
+
+<span class="c"># 挑选出æ 
‡è®°çš„版本,构建并部署到登台存储库</span>
+<span class="gp">$ </span>mvn -DskipTests -Papache-release -Darguments<span 
class="o">=</span><span class="s2">"-Dgpg.passphrase=</span><span 
class="k">${</span><span class="nv">GPG_PASSPHRASE</span><span 
class="k">}</span><span class="s2"> -DskipTests"</span> 
release:perform</code></pre></div>
+
+<p><strong>一个失败的 release 后进行清理:</strong></p>
+
+<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span 
class="c"># 确保您要生成的 tag 
不存在(由于一个失败的发布)</span>
+<span class="gp">$ </span>git tag
+
+<span class="c"># 如果 tag 存在,请在本地和远程删除它</span>
+<span class="gp">$ </span>git tag -d kylin-X.Y.Z
+<span class="gp">$ </span>git push origin :refs/tags/kylin-X.Y.Z
+
+<span class="c"># 删除修改的文件</span>
+<span class="gp">$ </span>mvn release:clean
+
+<span class="c"># 
检查是否有修改的文件,如果有,请返回原始的 git 
commit</span>
+<span class="gp">$ </span>git status
+<span class="gp">$ </span>git reset --hard HEAD</code></pre></div>
+
+<p><strong>关闭 Nexus 仓库中的阶段性工件:</strong></p>
+
+<ul>
+  <li>输入 <a 
href="https://repository.apache.org/";>https://repository.apache.org/</a> 
并登陆</li>
+  <li>在 <code class="highlighter-rouge">Build Promotion</code> 下,点击 
<code class="highlighter-rouge">Staging Repositories</code></li>
+  <li>在 <code class="highlighter-rouge">Staging Repositories</code> 
选项卡中,应该有一个包含配置文件 <code 
class="highlighter-rouge">org.apache.kylin</code> 的行</li>
+  <li>浏览工件树并确保存在 .jar,.pom,.asc 文件</li>
+  <li>选中行第一列中的复选框,点击 ‘Close’ 
按钮发布仓库到<br />
+<a 
href="https://repository.apache.org/content/repositories/orgapachekylin-1006";>https://repository.apache.org/content/repositories/orgapachekylin-1006</a><br
 />
+(或相似的 URL)</li>
+</ul>
+
+<p><strong>上传到临时区域:</strong>  <br />
+通过 subversion 将工件上传
到临时区域,https://dist.apache.org/repos/dist/dev/kylin/apache-kylin-X.Y.Z-rcN:</p>
+
+<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span 
class="c"># 创建 subversion 工作区(如果尚未创建)</span>
+<span class="gp">$ </span>mkdir -p ~/dist/dev
+<span class="gp">$ </span><span class="nb">pushd</span> ~/dist/dev
+<span class="gp">$ </span>svn co https://dist.apache.org/repos/dist/dev/kylin
+<span class="gp">$ </span><span class="nb">popd</span>
+
+<span class="c"># 将文件移到目录中</span>
+<span class="gp">$ </span><span class="nb">cd </span>target
+<span class="gp">$ </span>mkdir ~/dist/dev/kylin/apache-kylin-X.Y.Z-rcN
+<span class="gp">$ </span>mv apache-kylin-<span class="k">*</span> 
~/dist/dev/kylin/apache-kylin-X.Y.Z-rcN
+
+<span class="c"># 删除 .zip.asc.sha256 文件,因为它不再需要</span>
+<span class="gp">$ </span>rm 
~/dist/dev/kylin/apache-kylin-X.Y.Z-rcN/apache-kylin-X.Y.Z-SNAPSHOT-source-release.zip.asc.sha256
+
+<span class="c"># Check in</span>
+<span class="gp">$ </span><span class="nb">cd</span> ~/dist/dev/kylin
+<span class="gp">$ </span>svn add apache-kylin-X.Y.Z-rcN
+<span class="gp">$ </span>svn commit -m <span class="s1">'Upload release 
artifacts to staging'</span> --username 
&lt;YOUR_APACHE_ID&gt;</code></pre></div>
+
+<h2 id="release">验证 release</h2>
+
+<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span 
class="c"># 检查单元测试</span>
+<span class="gp">$ </span>mvn <span class="nb">test</span>
+
+<span class="c"># Check that the signing key (e.g. 2AD3FAE3) is pushed</span>
+<span class="gp">$ </span>gpg --recv-keys key
+
+<span class="c"># Check keys</span>
+<span class="gp">$ </span>curl -O 
https://dist.apache.org/repos/dist/release/kylin/KEYS
+
+<span class="c"># Sign/check sha256 hashes(假设您的操作系统具有“ 
shasum”命令)</span>
+<span class="k">function </span>checkHash<span class="o">()</span> <span 
class="o">{</span>
+  <span class="nb">cd</span> <span class="s2">"</span><span 
class="nv">$1</span><span class="s2">"</span>
+  <span class="k">for </span>i <span class="k">in</span> <span 
class="k">*</span>.<span class="o">{</span>pom,gz<span class="o">}</span>; 
<span class="k">do
+    if</span> <span class="o">[</span> ! -f <span class="nv">$i</span> <span 
class="o">]</span>; <span class="k">then
+      continue
+    fi
+    if</span> <span class="o">[</span> -f <span class="nv">$i</span>.sha256 
<span class="o">]</span>; <span class="k">then
+      if</span> <span class="o">[</span> <span class="s2">"</span><span 
class="k">$(</span>cat <span class="nv">$i</span>.sha256<span 
class="k">)</span><span class="s2">"</span> <span class="o">=</span> <span 
class="s2">"</span><span class="k">$(</span>shasum -a 256 <span 
class="nv">$i</span><span class="k">)</span><span class="s2">"</span> <span 
class="o">]</span>; <span class="k">then
+        </span><span class="nb">echo</span> <span class="nv">$i</span>.sha256 
present and correct
+      <span class="k">else
+        </span><span class="nb">echo</span> <span class="nv">$i</span>.sha256 
does not match
+      <span class="k">fi
+    else
+      </span>shasum -a 256 <span class="nv">$i</span> &gt; <span 
class="nv">$i</span>.sha256
+      <span class="nb">echo</span> <span class="nv">$i</span>.sha256 created
+    <span class="k">fi
+  done</span>
+<span class="o">}</span>;
+<span class="gp">$ </span>checkHash apache-kylin-X.Y.Z-rcN</code></pre></div>
+
+<h2 id="apache-">Apache 投票过程</h2>
+
+<p><strong>在 Apache Kylin dev 邮件列表上投票</strong>  <br />
+在 dev 邮件列表上进行 release 投票,使用由 Maven release plugin 
生成的 commit id,其消息看起来像 “[maven-release-plugin] prepare 
release kylin-x.x.x”:</p>
+
+<div class="highlight"><pre><code class="language-text" data-lang="text">To: 
d...@kylin.apache.org
+Subject: [VOTE] Release apache-kylin-X.Y.Z (RC[N])
+
+Hi all,
+
+I have created a build for Apache Kylin X.Y.Z, release candidate N.
+
+Changes highlights:
+...
+
+Thanks to everyone who has contributed to this release.
+Here’s release notes:
+https://github.com/apache/kylin/blob/XXX/docs/release_notes.md
+
+The commit to be voted upon:
+
+https://github.com/apache/kylin/commit/xxx
+
+Its hash is xxx.
+
+The artifacts to be voted on are located here:
+https://dist.apache.org/repos/dist/dev/kylin/apache-kylin-X.Y.Z-rcN/
+
+The hash of the artifact is as follows:
+apache-kylin-X.Y.Z-source-release.zip.sha256 xxx
+
+A staged Maven repository is available for review at:
+https://repository.apache.org/content/repositories/orgapachekylin-XXXX/
+
+Release artifacts are signed with the following key:
+https://people.apache.org/keys/committer/lukehan.asc
+
+Please vote on releasing this package as Apache Kylin X.Y.Z.
+
+The vote is open for the next 72 hours and passes if a majority of
+at least three +1 PMC votes are cast.
+
+[ ] +1 Release this package as Apache Kylin X.Y.Z
+[ ]  0 I don't feel strongly about it, but I'm okay with the release
+[ ] -1 Do not release this package because...
+
+
+Here is my vote:
+
++1 (binding)</code></pre></div>
+
+<p>投票完成后,发出结果:</p>
+
+<div class="highlight"><pre><code class="language-text" 
data-lang="text">Subject: [RESULT][VOTE] Release apache-kylin-X.Y.Z (RC[N])
+To: d...@kylin.apache.org
+
+Thanks to everyone who has tested the release candidate and given
+their comments and votes.
+
+The tally is as follows.
+
+N binding +1s:
+
+N non-binding +1s:
+
+No 0s or -1s.
+
+Therefore I am delighted to announce that the proposal to release
+Apache-Kylin-X.Y.Z has passed.</code></pre></div>
+
+<h2 id="section-2">发布</h2>
+<p>成功发布投票后,我们需要推动发行到镜像,以及å…
¶å®ƒä»»åŠ¡ã€‚</p>
+
+<p>在 JIRA 中,搜索 <a 
href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20KYLIN%20";>all 
issues resolved in this 
release</a>,并进行批量更新,将它们的状态更改为 “å…
³é—­â€ï¼Œå¹¶åŠ ä¸Šæ›´æ”¹çš„è¯„è®º “Resolved in release X.Y.Z 
(YYYY-MM-DD)”<br />
+(填写适当的发布号和日期)。  <br />
+<strong>取消 “Send mail for this update”。</strong></p>
+
+<p>标记 JIRA 系统中发布的版本,<a 
href="https://issues.apache.org/jira/plugins/servlet/project-config/KYLIN/versions";>管理版本</a>。</p>
+
+<p>推广分阶段的 nexus 工件。</p>
+
+<ul>
+  <li>转到 <a 
href="https://repository.apache.org/";>https://repository.apache.org/</a> 
并登陆</li>
+  <li>在 “Build Promotion” 下点击 “Staging Repositories”</li>
+  <li>在 “orgapachekylin-xxxx” 行中,选中框</li>
+  <li>点击 “Release” 按钮</li>
+</ul>
+
+<p>将工件检入 svn。</p>
+
+<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span 
class="c"># 获取候选版本</span>
+<span class="gp">$ </span>mkdir -p ~/dist/dev
+<span class="gp">$ </span><span class="nb">cd</span> ~/dist/dev
+<span class="gp">$ </span>svn co https://dist.apache.org/repos/dist/dev/kylin
+
+<span class="c"># 复制工件,请注意,副本没有后缀 '-rcN'</span>
+<span class="gp">$ </span>mkdir -p ~/dist/release
+<span class="gp">$ </span><span class="nb">cd</span> ~/dist/release
+<span class="gp">$ </span>svn co 
https://dist.apache.org/repos/dist/release/kylin
+<span class="gp">$ </span><span class="nb">cd </span>kylin
+<span class="gp">$ </span>mkdir apache-kylin-X.Y.Z
+<span class="gp">$ </span>cp -rp 
../../dev/kylin/apache-kylin-X.Y.Z-rcN/apache-kylin<span class="k">*</span> 
apache-kylin-X.Y.Z/
+<span class="gp">$ </span>svn add apache-kylin-X.Y.Z
+
+<span class="c"># Check in</span>
+svn commit -m <span class="s1">'checkin release 
artifacts'</span></code></pre></div>
+
+<p>Svnpubsub 将会发布到<br />
+<a 
href="https://dist.apache.org/repos/dist/release/kylin";>https://dist.apache.org/repos/dist/release/kylin</a>
 并会在 24 小时内传播到<br />
+<a 
href="http://www.apache.org/dyn/closer.cgi/kylin";>http://www.apache.org/dyn/closer.cgi/kylin</a>。</p>
+
+<p>如果现在有超过 2 个版本,请清除最旧的版本:</p>
+
+<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span 
class="nb">cd</span> ~/dist/release/kylin
+svn rm apache-kylin-X.Y.Z
+svn commit -m <span class="s1">'Remove old release'</span></code></pre></div>
+
+<p>旧版本将保留在 <a 
href="http://archive.apache.org/dist/kylin/";>release archive</a>。</p>
+
+<p>在 JIRA 
中发布相同版本,检查最新发布版本的更改日志。</p>
+
+<h2 id="section-3">构建和上传二进制包</h2>
+<p>发布后,您需要生成二进制包并将它们放入到 VPN 
发布库中:</p>
+
+<ul>
+  <li>使用 <code class="highlighter-rouge">git fetch --all --prune 
--tags</code> 来同步您本地和远程的仓库;</li>
+  <li>Git 检出当前发布的标签;</li>
+  <li>通过参考<a href="howto_package.html">此文档</a>制作二进制包
;</li>
+  <li>使用 gpg 对生成的二进制包进行签名,例如:</li>
+</ul>
+
+<div class="highlight"><pre><code class="language-bash" data-lang="bash">gpg 
--armor --output apache-kylin-2.5.0-bin.tar.gz.asc --detach-sig 
apache-kylin-2.5.0-bin.tar.gz</code></pre></div>
+
+<ul>
+  <li>生成二进制包的 sha256 文件,例如:</li>
+</ul>
+
+<div class="highlight"><pre><code class="language-bash" 
data-lang="bash">shasum -a 256 apache-kylin-2.5.0-bin.tar.gz &gt; 
apache-kylin-2.5.0-bin.tar.gz.sha256
+
+  on Linux:
+  openssl sha256 apache-kylin-2.5.0-bin.tar.gz &gt; 
apache-kylin-2.5.0-bin.tar.gz.sha256</code></pre></div>
+
+<ul>
+  <li>将二进制包,签名文件和 sha256 文件推送到 svn 
<strong>dev</strong> 仓库,然后运行 <code class="highlighter-rouge">svn 
mv &lt;files-in-dev&gt; &lt;files-in-release&gt;</code> 
命令将他们移动到 svn <strong>release</strong> 仓库;</li>
+  <li>对于不同的 Hadoop/HBase 版本,您可能需要上述步骤;</li>
+  <li>添加文件,然后将更改提交 svn。</li>
+</ul>
+
+<h2 id="section-4">更新源码</h2>
+<p>发布后,您需要更新一些源代码:</p>
+
+<ul>
+  <li>
+    <p>把分布分支,如 v2.5.0-release,合并到开发分支中,如 
2.5.x,以便开始下个版本的开发。</p>
+  </li>
+  <li>
+    <p>手动更新 <code class="highlighter-rouge">KylinVersion</code> 
类,将 <code class="highlighter-rouge">CURRENT_KYLIN_VERSION</code> 
的值更改为当前开发版本。</p>
+  </li>
+</ul>
+
+<h2 id="section-5">发布网站</h2>
+<p>更多细节参考<a href="howto_docs.html">如何写文档</a>。</p>
+
+<h2 id="section-6">发送通知邮件到邮件列表</h2>
+<p>发送一个邮件主题如 “[Announce] Apache Kylin x.y.z released” 
到以下列表:</p>
+
+<ul>
+  <li>Apache Kylin Dev 邮箱列表:d...@kylin.apache.org</li>
+  <li>Apache Kylin User 邮箱列表:u...@kylin.apache.org</li>
+  <li>Apache Announce 邮箱列表:annou...@apache.org<br />
+请注意始终使用您的 Apache 邮件地址发送;</li>
+</ul>
+
+<p>这是一个公告电子邮件的样本(通过研究 Kafka):</p>
+
+<div class="highlight"><pre><code class="language-text" data-lang="text">The 
Apache Kylin team is pleased to announce the immediate availability of the 
2.5.0 release. 
+
+This is a major release after 2.4, with more than 100 bug fixes and 
enhancements; All of the changes in this release can be found in:
+https://kylin.apache.org/docs/release_notes.html
+
+You can download the source release and binary packages from Apache Kylin's 
download page: https://kylin.apache.org/download/
+
+Apache Kylin is an open source Distributed Analytics Engine designed to 
provide SQL interface and multi-dimensional analysis (OLAP) on Apache Hadoop, 
supporting extremely large datasets.
+
+Apache Kylin lets you query massive data set at sub-second latency in 3 steps:
+1. Identify a star schema or snowflake schema data set on Hadoop.
+2. Build Cube on Hadoop.
+3. Query data with ANSI-SQL and get results in sub-second, via ODBC, JDBC or 
RESTful API.
+
+Thanks everyone who have contributed to the 2.1.0 release.
+
+We welcome your help and feedback. For more information on how to
+report problems, and to get involved, visit the project website at
+https://kylin.apache.org/</code></pre></div>
+
+<h2 id="section-7">感谢</h2>
+<p>本指南起草于 <a href="http://calcite.apache.org";>Apache Calcite</a> 
Howto doc 的参考资料,非常感谢。</p>
+
+
+                                                       </article>
+                                               </div>
+                                       </div>
+                               </div>
+                               <!--
+* 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.
+-->
+
+<div class="col-md-4 col-lg-4 col-xs-12 col-sm-12 aside1 visible-sm visible-xs 
visible-md visible-lg" id="nside1" style=" margin-top: 5em;float:right;">
+    <ul class="nav nav-pills nav-stacked">
+    
+    <li><a href="#title开发指南" data-toggle="collapse" 
class="navtitle">开发指南</a></li>
+    <div class="collapse in">
+       <div class="list-group" id="list1">
+    <ul>
+    
+
+
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/index.html" class="list-group-item-lay 
pjaxlink">开发快速指南</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/dev_env.html" class="list-group-item-lay 
pjaxlink">搭建开发环境</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/coding_naming_convention.html" 
class="list-group-item-lay pjaxlink">编码和命名惯例</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/howto_test.html" class="list-group-item-lay 
pjaxlink">如何测试</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/howto_contribute.html" 
class="list-group-item-lay pjaxlink">如何贡献</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/howto_become_apache_committer.html" 
class="list-group-item-lay pjaxlink">如何成为 Apache Committer</a></li>     
 
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/howto_docs.html" class="list-group-item-lay 
pjaxlink">如何写文档</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/doc_spec.html" class="list-group-item-lay 
pjaxlink">Kylin 文档撰写规范</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/howto_package.html" 
class="list-group-item-lay pjaxlink">如何打二进制包</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/howto_release.html" 
class="list-group-item-lay pjaxlink">如何发布</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/plugin_arch.html" 
class="list-group-item-lay pjaxlink">插件架构</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/web_tech.html" class="list-group-item-lay 
pjaxlink">Kylin Web 摘要</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/about_temp_files.html" 
class="list-group-item-lay pjaxlink">关于临时文件</a></li>      
+      
+
+
+
+
+
+        <ul>
+  </div>
+</div>
+    
+
+    </ul>
+</div>
+                       </div>
+               </div>          
+               <!--
+* 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.
+-->
+
+<footer id="underfooter">
+    <div>
+        <div class="row">
+            <div class="col-md-12 widget">
+                <div class="widget-body">
+                    <div class="footer-img">
+                        <a href="http://www.apache.org";>
+                            <img id="asf-logo" height="78px" alt="Apache 
Software Foundation" src="/assets/images/apache_footer.png">
+                        </a>
+                    </div>
+                    <p style="padding-top: 11px;">
+                        The contents of this website are © 2015 Apache 
Software Foundation under the terms of the 
+                        <a href="http://www.apache.org/licenses/LICENSE-2.0";> 
Apache License v2 </a>. 
+                    </p>
+                    <p style="margin-bottom: 11px;">    
+                        Apache Kylin and its logo are trademarks of the Apache 
Software Foundation.
+                    </div>
+
+                </div>
+            </div>
+        </div>
+        <!-- /row of widgets -->
+
+    </div>
+    <div></div>
+
+</footer>
+
+       <script src="/assets/js/jquery-1.9.1.min.js"></script> 
+       <script src="/assets/js/bootstrap.min.js"></script> 
+       <script src="/assets/js/main.js"></script>
+       </body>
+</html>

Added: kylin/site/cn/development40/howto_test.html
URL: 
http://svn.apache.org/viewvc/kylin/site/cn/development40/howto_test.html?rev=1891303&view=auto
==============================================================================
--- kylin/site/cn/development40/howto_test.html (added)
+++ kylin/site/cn/development40/howto_test.html Tue Jul  6 07:50:56 2021
@@ -0,0 +1,876 @@
+<!--
+* 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.
+-->
+
+<!doctype html>
+<html>
+       <!--
+* 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.
+-->
+
+<head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+
+  <title>Apache Kylin | 如何测试</title>
+  <meta name="description" content="Apache Kylin Home">
+  <meta name="author"      content="Apache Kylin">
+  <link rel="shortcut icon" href="fav.png" type="image/png">
+
+
+
+<link rel="stylesheet" href="/assets/css/animate.css">
+<!-- Bootstrap -->
+<link rel="stylesheet" href="/assets/css/bootstrap.min.css">
+
+<!-- Fonts -->
+<!-- <link rel="stylesheet" 
href="http://fonts.googleapis.com/css?family=Alice|Open+Sans:400,300,700"> -->
+
+<!-- Icons -->
+<link rel="stylesheet" href="/assets/css/font-awesome.min.css">
+
+  <!-- Custom styles -->
+  <link rel="stylesheet" href="/assets/css/styles.css">
+  <link rel="stylesheet" href="/assets/css/docs.css">
+
+  <link rel="canonical" 
href="http://kylin.apache.org/cn/development40/howto_test.html";>
+  <link rel="alternate" type="application/rss+xml" title="Apache Kylin" 
href="http://kylin.apache.org/feed.xml"; />
+
+<!--[if lt IE 9]> <script src="assets/js/html5shiv.js"></script> <![endif]-->
+<!-- Global site tag (gtag.js) - Google Analytics -->
+<script async 
src="https://www.googletagmanager.com/gtag/js?id=UA-120788561-1";></script>
+<script>
+  window.dataLayer = window.dataLayer || [];
+  function gtag(){dataLayer.push(arguments);}
+  gtag('js', new Date());
+
+  gtag('config', 'UA-120788561-1');
+</script>
+<script type="text/javascript" src="/assets/js/jquery-1.9.1.min.js"></script>
+<script type="text/javascript" src="/assets/js/nside.js"></script> </script>
+<script type="text/javascript" src="/assets/js/nnav.js"></script> </script>
+<script>
+var _hmt = _hmt || [];
+(function() {
+  var hm = document.createElement("script");
+  hm.src = "https://hm.baidu.com/hm.js?bdc5e03add430c0b72cc0eb91eabfa99";;
+  var s = document.getElementsByTagName("script")[0]; 
+  s.parentNode.insertBefore(hm, s);
+})();
+</script>
+</head>
+
+       <body>
+               <!--
+* 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.
+-->
+
+<header id="header" >
+  <!-- Main Menu -->
+  <nav class="navbar navbar-default" role="navigation" id="nav-wrapper">
+    <div class="container-fluid" id="nav">
+      <!-- Brand and toggle get grouped for better mobile display -->
+      <div class="navbar-header">
+        <img class="navbar-logo" width="46" src="/assets/images/kylin_logo.png 
"></img> 
+        
+        <button type="button" class="navbar-toggle collapsed" 
data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+          <span class="sr-only">Toggle navigation</span>
+          <span class="icon-bar"></span>
+          <span class="icon-bar"></span>
+          <span class="icon-bar"></span>
+        </button>
+        <ul class="nav icon-navbar">
+            <li><a href="https://twitter.com/apachekylin"; target="_blank" 
class="fa fa-twitter fa-lg"  title="Twitter: @ApacheKylin" ></a></li>
+            <li><a href="https://github.com/apache/kylin"; target="_blank" 
class="fa fa-github-alt fa-lg" title="Github: apache/kylin" ></a></li>          
+            <li><a href="https://www.facebook.com/kylinio"; target="_blank" 
class="fa fa-facebook fa-lg" title="Facebook: kylin.io" ></a></li>    
+        </ul>
+      </div>
+
+      <!-- Collect the nav links, forms, and other content for toggling -->
+      <div class="navbar-collapse collapse" id="bs-example-navbar-collapse-1">
+        <ul class="nav navbar-nav">
+            <li><a href="/cn">首页</a></li>
+            <li><a href="/cn/docs" >文档</a></li>
+            <li><a href="/cn/download">下载</a></li>
+            <li><a href="/cn/community" >社区</a></li>
+            <li><a href="/cn/development" >开发</a></li>
+            <li><a href="/cn/blog">博客</a></li>
+            <li><a href="/" >English</a></li>           
+        </ul>
+        
+
+      </div><!-- /.navbar-collapse -->
+    </div><!-- /.container-fluid -->
+  </nav>
+
+  <div id="head" class="parallax normal-header" >
+    <div class="text-center header-apache">
+      <a href="http://apache.org/foundation/contributing.html"; title="Support 
Apache" style="margin-left: 150px;">
+        <div>
+          <img src="https://www.apache.org/images/SupportApache-small.png";>
+        </div>
+      </a>
+    </div>  
+  </div>
+
+ </header>
+
+               
+               <div class="container">
+                       <div class="row"  style="clear:both;">
+                               
+                               <div class="col-md-8 col-lg-8 col-xs-12 
col-sm-12 aside2" style="float: right;">
+                                       <div id="container" class="docs">
+                                               <div id="pjax">
+                                                       <h1 
class="post-title">如何测试</h1>
+                                                       <article 
class="post-content" >
+                                                       
<p>一般来说,应该有单元测试来涵盖个别 classes;必
须有集成测试来涵盖端到端的场景,如构建,合并和查询。单å
…ƒæµ‹è¯•必须独立运行(不需要外部沙箱)。</p>
+
+<h2 id="v4x">测试 v4.x</h2>
+
+<ul>
+  <li><code class="highlighter-rouge">mvn clean test</code> 运行单å…
ƒæµ‹è¯•,它的测试覆盖范围有限。
+    <ul>
+      <li>单å…
ƒæµ‹è¯•没有额外的依赖且能在任何机器上运行。</li>
+      <li>单å…
ƒæµ‹è¯•不覆盖端到端的场景,如构建,合并和查询。</li>
+      <li>单元测试只需几分钟即可完成。</li>
+    </ul>
+  </li>
+  <li><code class="highlighter-rouge">mvn clean test -DskipRunIt=false</code> 
运行集成测试,有很好的覆盖率。。
+    <ul>
+      <li>集成测试从生成随机数据开始,然后构建 Cube、合并 
Cube,最后查询结果并与 Spark 引擎进行比较。</li>
+      <li>集成测试需要一个小时左右才能完成。</li>
+    </ul>
+  </li>
+</ul>
+
+<p>如果您的代码改动很小那么只需要运行 UT,使用: <br />
+<code class="highlighter-rouge">mvn test</code><br />
+如果您的代码改动涉及代码较多,那么需要运行 UT 和 
IT,使用:<br />
+<code class="highlighter-rouge">mvn clean test -DskipRunIt=false</code></p>
+
+
+                                                       </article>
+                                               </div>
+                                       </div>
+                               </div>
+                               <!--
+* 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.
+-->
+
+<div class="col-md-4 col-lg-4 col-xs-12 col-sm-12 aside1 visible-sm visible-xs 
visible-md visible-lg" id="nside1" style=" margin-top: 5em;float:right;">
+    <ul class="nav nav-pills nav-stacked">
+    
+    <li><a href="#title开发指南" data-toggle="collapse" 
class="navtitle">开发指南</a></li>
+    <div class="collapse in">
+       <div class="list-group" id="list1">
+    <ul>
+    
+
+
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/index.html" class="list-group-item-lay 
pjaxlink">开发快速指南</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/dev_env.html" class="list-group-item-lay 
pjaxlink">搭建开发环境</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/coding_naming_convention.html" 
class="list-group-item-lay pjaxlink">编码和命名惯例</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/howto_test.html" class="list-group-item-lay 
pjaxlink">如何测试</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/howto_contribute.html" 
class="list-group-item-lay pjaxlink">如何贡献</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/howto_become_apache_committer.html" 
class="list-group-item-lay pjaxlink">如何成为 Apache Committer</a></li>     
 
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/howto_docs.html" class="list-group-item-lay 
pjaxlink">如何写文档</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/doc_spec.html" class="list-group-item-lay 
pjaxlink">Kylin 文档撰写规范</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/howto_package.html" 
class="list-group-item-lay pjaxlink">如何打二进制包</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/howto_release.html" 
class="list-group-item-lay pjaxlink">如何发布</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/plugin_arch.html" 
class="list-group-item-lay pjaxlink">插件架构</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/web_tech.html" class="list-group-item-lay 
pjaxlink">Kylin Web 摘要</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/about_temp_files.html" 
class="list-group-item-lay pjaxlink">关于临时文件</a></li>      
+      
+
+
+
+
+
+        <ul>
+  </div>
+</div>
+    
+
+    </ul>
+</div>
+                       </div>
+               </div>          
+               <!--
+* 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.
+-->
+
+<footer id="underfooter">
+    <div>
+        <div class="row">
+            <div class="col-md-12 widget">
+                <div class="widget-body">
+                    <div class="footer-img">
+                        <a href="http://www.apache.org";>
+                            <img id="asf-logo" height="78px" alt="Apache 
Software Foundation" src="/assets/images/apache_footer.png">
+                        </a>
+                    </div>
+                    <p style="padding-top: 11px;">
+                        The contents of this website are © 2015 Apache 
Software Foundation under the terms of the 
+                        <a href="http://www.apache.org/licenses/LICENSE-2.0";> 
Apache License v2 </a>. 
+                    </p>
+                    <p style="margin-bottom: 11px;">    
+                        Apache Kylin and its logo are trademarks of the Apache 
Software Foundation.
+                    </div>
+
+                </div>
+            </div>
+        </div>
+        <!-- /row of widgets -->
+
+    </div>
+    <div></div>
+
+</footer>
+
+       <script src="/assets/js/jquery-1.9.1.min.js"></script> 
+       <script src="/assets/js/bootstrap.min.js"></script> 
+       <script src="/assets/js/main.js"></script>
+       </body>
+</html>

Added: kylin/site/cn/development40/index.html
URL: 
http://svn.apache.org/viewvc/kylin/site/cn/development40/index.html?rev=1891303&view=auto
==============================================================================
--- kylin/site/cn/development40/index.html (added)
+++ kylin/site/cn/development40/index.html Tue Jul  6 07:50:56 2021
@@ -0,0 +1,882 @@
+<!--
+* 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.
+-->
+
+<!doctype html>
+<html>
+       <!--
+* 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.
+-->
+
+<head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+
+  <title>Apache Kylin | 开发快速指南</title>
+  <meta name="description" content="Apache Kylin Home">
+  <meta name="author"      content="Apache Kylin">
+  <link rel="shortcut icon" href="fav.png" type="image/png">
+
+
+
+<link rel="stylesheet" href="/assets/css/animate.css">
+<!-- Bootstrap -->
+<link rel="stylesheet" href="/assets/css/bootstrap.min.css">
+
+<!-- Fonts -->
+<!-- <link rel="stylesheet" 
href="http://fonts.googleapis.com/css?family=Alice|Open+Sans:400,300,700"> -->
+
+<!-- Icons -->
+<link rel="stylesheet" href="/assets/css/font-awesome.min.css">
+
+  <!-- Custom styles -->
+  <link rel="stylesheet" href="/assets/css/styles.css">
+  <link rel="stylesheet" href="/assets/css/docs.css">
+
+  <link rel="canonical" href="http://kylin.apache.org/cn/development40/";>
+  <link rel="alternate" type="application/rss+xml" title="Apache Kylin" 
href="http://kylin.apache.org/feed.xml"; />
+
+<!--[if lt IE 9]> <script src="assets/js/html5shiv.js"></script> <![endif]-->
+<!-- Global site tag (gtag.js) - Google Analytics -->
+<script async 
src="https://www.googletagmanager.com/gtag/js?id=UA-120788561-1";></script>
+<script>
+  window.dataLayer = window.dataLayer || [];
+  function gtag(){dataLayer.push(arguments);}
+  gtag('js', new Date());
+
+  gtag('config', 'UA-120788561-1');
+</script>
+<script type="text/javascript" src="/assets/js/jquery-1.9.1.min.js"></script>
+<script type="text/javascript" src="/assets/js/nside.js"></script> </script>
+<script type="text/javascript" src="/assets/js/nnav.js"></script> </script>
+<script>
+var _hmt = _hmt || [];
+(function() {
+  var hm = document.createElement("script");
+  hm.src = "https://hm.baidu.com/hm.js?bdc5e03add430c0b72cc0eb91eabfa99";;
+  var s = document.getElementsByTagName("script")[0]; 
+  s.parentNode.insertBefore(hm, s);
+})();
+</script>
+</head>
+
+       <body>
+               <!--
+* 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.
+-->
+
+<header id="header" >
+  <!-- Main Menu -->
+  <nav class="navbar navbar-default" role="navigation" id="nav-wrapper">
+    <div class="container-fluid" id="nav">
+      <!-- Brand and toggle get grouped for better mobile display -->
+      <div class="navbar-header">
+        <img class="navbar-logo" width="46" src="/assets/images/kylin_logo.png 
"></img> 
+        
+        <button type="button" class="navbar-toggle collapsed" 
data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+          <span class="sr-only">Toggle navigation</span>
+          <span class="icon-bar"></span>
+          <span class="icon-bar"></span>
+          <span class="icon-bar"></span>
+        </button>
+        <ul class="nav icon-navbar">
+            <li><a href="https://twitter.com/apachekylin"; target="_blank" 
class="fa fa-twitter fa-lg"  title="Twitter: @ApacheKylin" ></a></li>
+            <li><a href="https://github.com/apache/kylin"; target="_blank" 
class="fa fa-github-alt fa-lg" title="Github: apache/kylin" ></a></li>          
+            <li><a href="https://www.facebook.com/kylinio"; target="_blank" 
class="fa fa-facebook fa-lg" title="Facebook: kylin.io" ></a></li>    
+        </ul>
+      </div>
+
+      <!-- Collect the nav links, forms, and other content for toggling -->
+      <div class="navbar-collapse collapse" id="bs-example-navbar-collapse-1">
+        <ul class="nav navbar-nav">
+            <li><a href="/cn">首页</a></li>
+            <li><a href="/cn/docs" >文档</a></li>
+            <li><a href="/cn/download">下载</a></li>
+            <li><a href="/cn/community" >社区</a></li>
+            <li><a href="/cn/development" >开发</a></li>
+            <li><a href="/cn/blog">博客</a></li>
+            <li><a href="/" >English</a></li>           
+        </ul>
+        
+
+      </div><!-- /.navbar-collapse -->
+    </div><!-- /.container-fluid -->
+  </nav>
+
+  <div id="head" class="parallax normal-header" >
+    <div class="text-center header-apache">
+      <a href="http://apache.org/foundation/contributing.html"; title="Support 
Apache" style="margin-left: 150px;">
+        <div>
+          <img src="https://www.apache.org/images/SupportApache-small.png";>
+        </div>
+      </a>
+    </div>  
+  </div>
+
+ </header>
+
+               
+               <div class="container">
+                       <div class="row"  style="clear:both;">
+                               
+                               <div class="col-md-8 col-lg-8 col-xs-12 
col-sm-12 aside2" style="float: right;">
+                                       <div id="container" class="docs">
+                                               <div id="pjax">
+                                                       <h1 
class="post-title">开发快速指南</h1>
+                                                       <article 
class="post-content" >
+                                                       <p>Apache Kylin 
一直寻求的不只是代ç 
çš„贡献,还寻求使用文档,性能报告,问答等方面的贡献。所有类型的贡献都为成为
 Kylin Committer 铺平了道路。每个人都有机会,尤å…
¶æ˜¯é‚£äº›æœ‰åˆ†æžå’Œè§£å†³æ–¹æ¡ˆèƒŒæ™¯çš„,因
为缺少来自于用户和解决方案视角的内容。</p>
+
+<p>这里是适用于 Apache Kylin4.x 版本的开发文档,查看å…
¶ä»–版本开发文档:<br />
+* <a href="/cn/development/">v3.x 及以前版本开发文档</a></p>
+
+<h3 id="section">如何贡献</h3>
+<p>查看<a 
href="/cn/development40/howto_contribute.html">如何贡献</a>文档。</p>
+
+<h3 id="section-1">源仓库</h3>
+<p>Apache Kylin™ 源码使用 Git version control 进行版本控制:<br />
+Commits <a href="https://github.com/apache/kylin/commits/master";>总结</a>  
<br />
+源仓库:<a 
href="https://github.com/apache/kylin";>https://github.com/apache/kylin </a>  
<br />
+Gitbox 的镜像:<a 
href="https://gitbox.apache.org/repos/asf?p=kylin.git";>https://gitbox.apache.org/repos/asf?p=kylin.git
 </a></p>
+
+<h3 id="issue-">Issue 追踪</h3>
+<p>在 Apache JIRA 上的 “Kylin” 项目追踪 issues(<a 
href="http://issues.apache.org/jira/browse/KYLIN";>浏览</a>)。</p>
+
+<h3 id="section-2">路线图</h3>
+<ul>
+  <li>支持 Hadoop 3.0(纠偏编码):完成(v2.5)</li>
+  <li>完全使用 Spark 的 Cube 引擎:完成(v2.5)</li>
+  <li>支持实时数据分析的 Lambda 架构:完成(v3.0)</li>
+  <li>接入更多的源(MySQL,Spark SQL 等):完成(v2.6)</li>
+  <li>Flink 引擎:完成(v3.1)</li>
+  <li>云原生的存储引擎(Parquet):开发中(v4.0)</li>
+  <li>分布式查询执行引擎:与 Parquet 
存储一起进行中(v4.0)</li>
+  <li>容器化/Kubernetes:完成(v3.1)</li>
+  <li>查询下压 SDK(Presto,Clickhouse 等):进行中(v3.1 
支持查询下压 Presto)</li>
+  <li>即席查询支持,无需构建 Cube</li>
+</ul>
+
+
+                                                       </article>
+                                               </div>
+                                       </div>
+                               </div>
+                               <!--
+* 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.
+-->
+
+<div class="col-md-4 col-lg-4 col-xs-12 col-sm-12 aside1 visible-sm visible-xs 
visible-md visible-lg" id="nside1" style=" margin-top: 5em;float:right;">
+    <ul class="nav nav-pills nav-stacked">
+    
+    <li><a href="#title开发指南" data-toggle="collapse" 
class="navtitle">开发指南</a></li>
+    <div class="collapse in">
+       <div class="list-group" id="list1">
+    <ul>
+    
+
+
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/index.html" class="list-group-item-lay 
pjaxlink">开发快速指南</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/dev_env.html" class="list-group-item-lay 
pjaxlink">搭建开发环境</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/coding_naming_convention.html" 
class="list-group-item-lay pjaxlink">编码和命名惯例</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/howto_test.html" class="list-group-item-lay 
pjaxlink">如何测试</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/howto_contribute.html" 
class="list-group-item-lay pjaxlink">如何贡献</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/howto_become_apache_committer.html" 
class="list-group-item-lay pjaxlink">如何成为 Apache Committer</a></li>     
 
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/howto_docs.html" class="list-group-item-lay 
pjaxlink">如何写文档</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/doc_spec.html" class="list-group-item-lay 
pjaxlink">Kylin 文档撰写规范</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/howto_package.html" 
class="list-group-item-lay pjaxlink">如何打二进制包</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/howto_release.html" 
class="list-group-item-lay pjaxlink">如何发布</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/plugin_arch.html" 
class="list-group-item-lay pjaxlink">插件架构</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/web_tech.html" class="list-group-item-lay 
pjaxlink">Kylin Web 摘要</a></li>      
+      
+
+
+   
+  
+
+  
+    
+  
+
+
+
+  
+    
+      <li class="navlist">
+        <a href="/cn/development40/about_temp_files.html" 
class="list-group-item-lay pjaxlink">关于临时文件</a></li>      
+      
+
+
+
+
+
+        <ul>
+  </div>
+</div>
+    
+
+    </ul>
+</div>
+                       </div>
+               </div>          
+               <!--
+* 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.
+-->
+
+<footer id="underfooter">
+    <div>
+        <div class="row">
+            <div class="col-md-12 widget">
+                <div class="widget-body">
+                    <div class="footer-img">
+                        <a href="http://www.apache.org";>
+                            <img id="asf-logo" height="78px" alt="Apache 
Software Foundation" src="/assets/images/apache_footer.png">
+                        </a>
+                    </div>
+                    <p style="padding-top: 11px;">
+                        The contents of this website are © 2015 Apache 
Software Foundation under the terms of the 
+                        <a href="http://www.apache.org/licenses/LICENSE-2.0";> 
Apache License v2 </a>. 
+                    </p>
+                    <p style="margin-bottom: 11px;">    
+                        Apache Kylin and its logo are trademarks of the Apache 
Software Foundation.
+                    </div>
+
+                </div>
+            </div>
+        </div>
+        <!-- /row of widgets -->
+
+    </div>
+    <div></div>
+
+</footer>
+
+       <script src="/assets/js/jquery-1.9.1.min.js"></script> 
+       <script src="/assets/js/bootstrap.min.js"></script> 
+       <script src="/assets/js/main.js"></script>
+       </body>
+</html>


Reply via email to