You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@linkis.apache.org by pe...@apache.org on 2022/02/08 17:54:56 UTC

[incubator-linkis-website] branch dev updated: add blog and how to add new committer

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

peacewong pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-linkis-website.git


The following commit(s) were added to refs/heads/dev by this push:
     new 2c7aad3  add blog and how to add new committer
     new abb4bfb  Merge pull request #150 from casionone/dev
2c7aad3 is described below

commit 2c7aad36b5279b70a66333aa50d20b5eb6f27f7b
Author: casionone <ca...@gmail.com>
AuthorDate: Wed Feb 9 01:52:43 2022 +0800

    add blog and how to add new committer
---
 blog/2022-02-08-how-to-user-blog.md                | 123 ++++++++++
 blog/authors.yml                                   |   5 +
 blog/how-to-used.md                                |   1 -
 community/development_specification/license.md     | 142 +++++++++++
 community/development_specification/overview.md    |   1 +
 community/how-to-join.md                           | 200 ---------------
 community/how-to-vote-a-committer-ppmc.md          | 271 ++++++++++++++++++++
 docusaurus.config.js                               |  90 +++++--
 i18n/zh-CN/code.json                               |  26 +-
 .../2022-02-08-how-to-user-blog.md                 | 137 +++++++++++
 .../docusaurus-plugin-content-blog/authors.yml     |   5 +
 .../docusaurus-plugin-content-blog/how-to-used.md  |   1 -
 .../docusaurus-plugin-content-blog/options.json    |   2 +-
 .../current/development_specification/license.md   | 143 +++++++++++
 .../current/development_specification/overview.md  |   1 +
 .../current/how-to-join.md                         | 161 ------------
 .../current/how-to-vote-a-committer-ppmc.md        | 273 +++++++++++++++++++++
 17 files changed, 1184 insertions(+), 398 deletions(-)

diff --git a/blog/2022-02-08-how-to-user-blog.md b/blog/2022-02-08-how-to-user-blog.md
new file mode 100644
index 0000000..685da26
--- /dev/null
+++ b/blog/2022-02-08-how-to-user-blog.md
@@ -0,0 +1,123 @@
+---
+title: How to Write a Blog
+authors: [Casion]
+tags: [blog,guide]
+---
+> _This article mainly guides you how to publish blog posts on the Linkis official website. You are welcome to submit blog post documents about Apache Linkis, including but not limited to Linkis installation/source code analysis/architecture/experience sharing. _
+
+This article mainly refers to Docusaurus' official [blog post specifications and examples] (https://docusaurus.io/zh-CN/blog). The guidelines and specifications may not be perfect. Any comments or suggestions are welcome.
+
+<!--truncate-->
+## Resource path
+
+- Chinese blog post warehouse path: https://github.com/apache/incubator-linkis-website/tree/dev/i18n/zh-CN/docusaurus-plugin-content-blog
+- English blog post warehouse path: https://github.com/apache/incubator-linkis-website/tree/dev/blog
+
+Each blog post needs to support both Chinese and English. Please do not omit the corresponding English documents when submitting.
+
+## File naming
+The framework will automatically parse the release date in YYYY-MM-DD format from the directory/file name
+- eg: blog/2021-02-08-how-to-user-blog.md
+- The access path of http is: http://xxxxx/blog/2021/02/08/how-to-user-blog
+
+The blog post release log will automatically parse the corresponding date according to the file: 2021-02-08, so the default is to sort by date.
+
+## Graphic blog specification
+- ⚠ If the blog post involves image resources and needs to load local image resources, please use the form of a folder, so that the resources such as images required by the blog can be conveniently put together with the Markdown document.
+- ⚠ If it is a picture of the architecture/process, the original project file, such as .vsdx file, please upload it to the img directory for subsequent modification. Please ensure that no Chinese pictures appear in English blog posts.
+
+```shell script
+|-- blog
+| |--2021-02-08-how-to-user-blog
+| | |-- img //Store the image
+| | |-- index.md //Blog content
+````
+
+Reference example:
+- Source: https://github.com/facebook/docusaurus/tree/main/website/blog/2022-01-24-docusaurus-2021-recap
+- Visual Effects: https://docusaurus.io/zh-CN/blog/2022/01/24/docusaurus-2021-recap
+
+## Summary
+The blog's home page ( /blog by default) is the blog list page, which displays all blog posts.
+
+Use <!--truncate--> in blog posts to mark article abstracts. <!--truncate--> The above content will become a summary and will be displayed on the blog homepage.
+for example:
+````markdown
+---
+title: Abstract example
+---
+
+All these will be part of the blog post summary.
+
+Even include this line.
+
+<!--truncate-->
+
+But this line and the content below this line will not be truncated.
+
+This line will not.
+
+Neither will this line.
+````
+
+## Metadata information
+
+Markdown documents can use the following Markdown frontend metadata fields, enclosed by lines on either side of ---.
+
+````markdown
+---
+title: Welcome Docusaurus v2
+description: This is my first post on Docusaurus 2.
+data:2022-02-01
+slug: welcome-docusaurus-v2
+authors:
+  - name: Joel Marcey
+    title: Co-creator of Docusaurus 1
+    url: https://github.com/JoelMarcey
+    image_url: https://github.com/JoelMarcey.png
+  - name: Sébastien Lorber
+    title: Docusaurus maintainer
+    url: https://sebastienlorber.com
+    image_url: https://github.com/slorber.png
+tags: [hello, docusaurus-v2]
+image: https://i.imgur.com/mErPwqL.png
+hide_table_of_contents: false
+---
+
+Welcome to this blog. This blog is built using [**Docusaurus 2**](https://docusaurus.io/).
+
+<!--truncate-->
+
+This is my first blog post.
+
+Below is a list of content.
+````
+Common parameters
+
+| Name | Type | Default | Description |
+| --- | --- | --- | --- |
+| `authors` | `Authors` | `undefined` | List of blog post authors (or unique author).|
+| `authors.url` | `string` | `undefined` | The URL that the author's name will be linked to. This could be a GitHub, Twitter, Facebook profile URL, etc. |
+| `authors.image_url` | `string` | `undefined` | The URL to the author's thumbnail image. |
+| `authors.title` | `string` | `undefined` | A description of the author. |
+| `title` | `string` | Markdown title | The blog post title. |
+| `date` | `string` | File name or file creation time | The blog post creation date. If not specified, this can be extracted from the file or folder name, eg, `2021-04-15-blog-post. mdx`, `2021-04-15-blog-post/index.mdx`, `2021/04/15/blog-post.mdx`. Otherwise, it is the Markdown file creation time. |
+| `tags` | `Tag[]` | `undefined` | A list of strings or objects of two string fields `label` and `permalink` to tag to your post. |
+| `keywords` | `string[]` | `undefined` | Keywords meta tag, which will become the `<meta name="keywords" content="keyword1,keyword2,..."/>` in `<head> `, used by search engines. |
+| `description` | `string` | The first line of Markdown content | The description of your document, which will become the `<meta name="description" content="..."/>` and `<meta property= "og:description" content="..."/>` in `<head>`, used by search engines. |
+| `image` | `string` | `undefined` | Cover or thumbnail image that will be used when displaying the link to your post. |
+| `slug` | `string` | File path | Allows to customize the blog post url (`/<routeBasePath>/<slug>`). Support multiple patterns: `slug: my-blog-post`, `slug: / my/path/to/blog/post`, slug: `/`. |
+
+
+## Author information
+
+For the average blog post author, maintaining author information inline in each blog post can be tedious.
+Can be globally in the config file declare these authors:
+`blog/authors.yml`
+````yaml
+Casion:
+   name: Casion
+   title: Development Engineer of WeBank
+   url: https://github.com/casionone/
+   image_url: https://avatars.githubusercontent.com/u/7869972?v=4
+````
\ No newline at end of file
diff --git a/blog/authors.yml b/blog/authors.yml
new file mode 100644
index 0000000..d15fb6d
--- /dev/null
+++ b/blog/authors.yml
@@ -0,0 +1,5 @@
+Casion:
+  name: Casion
+  title: Development Engineer of WeBank
+  url: https://github.com/casionone/
+  image_url: https://avatars.githubusercontent.com/u/7869972?v=4
\ No newline at end of file
diff --git a/blog/how-to-used.md b/blog/how-to-used.md
deleted file mode 100644
index 8b68f79..0000000
--- a/blog/how-to-used.md
+++ /dev/null
@@ -1 +0,0 @@
-#todo
\ No newline at end of file
diff --git a/community/development_specification/license.md b/community/development_specification/license.md
new file mode 100644
index 0000000..43bb0a4
--- /dev/null
+++ b/community/development_specification/license.md
@@ -0,0 +1,142 @@
+---
+title: License Notes
+sidebar_position: 0.1
+---
+
+> Note: This article applies to Apache projects only.
+>This article refers to the Dolphinscheduler project's License Instructions document https://dolphinscheduler.apache.org/zh-cn/community/development/DS-License.html
+
+The open source projects under the ASF (Apache Foundation) have extremely strict requirements for the license. When you contribute code to Linkis, you must follow the Apache rules. In order to avoid the contributors wasting too much time on the license,
+This article will explain the ASF-License and how to avoid the license risk when participating in the Linkis project development.
+
+## License file directory description
+[Linkis source code](https://github.com/apache/incubator-linkis) The directory related to the license is as follows
+```shell script
+# in the outermost directory
+
+|-- LICENSE //LICENSE of the project source code
+|-- LICENSE-binary //LICENSE of binary package
+|-- LICENSE-binary-ui //LICENSE of the front-end web compilation package
+|-- NOTICE //NOTICE of project source code
+|-- NOTICE-binary // NOTICE of binary package
+|-- NOTICE-binary-ui //NOTICE of front-end web binary package
+|-- licenses-binary The detailed dependent license file of the binary package
+|-- licenses-binary-ui //The license file that the front-end web compilation package depends on in detail
+
+````
+
+
+## How to legally use third-party open source software on Linkis
+
+When the code you submit has the following scenarios:
+
+- Scenario 1. The source code uses third-party code or static resources. For example, the source code directly uses a code file of another project, and adds text, css, js, pictures, icons, audio and video files. , and modifications made on a third-party basis.
+- Scenario 2. The runtime dependencies of the project are added (that is, the final compilation and packaging will be packaged into the released installation package)
+
+- The imported file in Scenario 1 must be a Class A License of [ASF Third Party License Policy](https://apache.org/legal/resolved.html)
+- The dependencies introduced in Scenario 2 must be Class A/Class B licenses in [ASF Third Party License Policy](https://apache.org/legal/resolved.html), not Class C licenses
+
+We need to know the NOTICE/LICENSE of the files introduced by our project or jar dependencies, (most open source projects will have NOTICE files), these must be reflected in our project. In Apache's words, "Work" shall be mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a
+copyright notice that is included in or attached to the work.
+
+### Example Scenario 1
+For example, the third-party file `linkis-engineconn-plugins/engineconn-plugins/python/src/main/py4j/py4j-0.10.7-src.zip` is introduced into the source code
+
+Find the source branch of the version corresponding to py4j-0.10.7-src.zip, if there is no `LICENSE/NOTICE` file in the corresponding version branch, select the main branch
+- The project source code is located at: https://github.com/bartdag/py4j/tree/0.10.7/py4j-python
+- LICENSE file: https://github.com/bartdag/py4j/blob/0.10.7/py4j-python/LICENSE.txt
+- NOTICE file: none
+
+The license information of `py4j-0.10.7-src.zip` needs to be specified in the `linkis/LICENSE` file.
+The detailed license.txt file corresponding to `py4j-0.10.7-src.zip` is placed in the same level directory `linkis-engineconn-plugins/engineconn-plugins/python/src/main/py4j/LICENSE-py4j-0.10 .7-src.txt`
+Since https://github.com/bartdag/py4j/tree/0.10.7/py4j-python does not have a NOTICE file, there is no need to append to the `linkis/NOTICE` file.
+
+### Example Scene 2
+
+The compilation of the project depends on `org.apache.ant:ant:1.9.1`, and ant-1.9.1.jar will be compiled and installed in the final package `target/apache-linkis-xxx-incubating-bin/linkis-package/lib `medium
+You can decompress ant-1.9.1.jar and extract the LICENSE/NOTICE file from the jar package. If not, you need to find the corresponding version source code
+Find the source branch of the version corresponding to py4j-0.10.7-src.zip, if the corresponding version branch is not available, select the main branch
+- The project source code is located at: https://github.com/apache/ant/tree/rel/1.9.1
+- LICENSE file: https://github.com/apache/ant/blob/rel/1.9.1/LICENSE
+- NOTICE file: https://github.com/apache/ant/blob/rel/1.9.1/NOTICE
+
+The license information of `ant-1.9.1.jar` needs to be specified in the `linkis/LICENSE-binary` file.
+The detailed license.txt file corresponding to `ant-1.9.1.jar` is placed in `licenses-binary/LICENSE-ant.txt`
+The detailed notice.txt corresponding to `ant-1.9.1.jar` is appended to the `NOTICE-binary` file
+
+Regarding the specific open source protocol usage protocols, I will not introduce them one by one here. If you are interested, you can check them yourself.
+
+## License detection rules
+We build a license-check script for our own project to ensure that we can avoid license problems as soon as we use it.
+
+When we need to add new Jars or other external resources, we need to follow these steps:
+
+* Add the jar name + version you need in tool/dependencies/known-dependencies.txt.
+* Add relevant license information in LICENSE/LICENSE-binary/LICENSE-binary-ui (depending on the actual situation).
+* Append the relevant NOTICE file to NOTICE/NOTICE-binary/NOTIC-binary-ui (determined according to the actual situation). This file must be consistent with the NOTICE file in the code version repository of the dependencies.
+
+** check dependency license fail**
+
+After compiling, execute the tool/dependencies/diff-dependenies.sh script to verify
+````
+--- /dev/fd/63 2020-12-03 03:08:57.191579482 +0000
++++ /dev/fd/62 2020-12-03 03:08:57.191579482 +0000
+@@ -1,0 +2 @@
++HikariCP-java6-2.3.13.jar
+@@ -16,0 +18 @@
++c3p0-0.9.5.2.jar
+@@ -149,0 +152 @@
++mchange-commons-java-0.2.11.jar
+Error: Process completed with exit code 1.
+````
+Generally speaking, the work of adding a jar is often not so easy to end, because it often depends on various other jars, and we also need to add corresponding licenses for these jars.
+In this case, we will get the error message of check dependency license fail in check. As above, we are missing the license statement of HikariCP-java6-2.3.13, c3p0, etc.
+Follow the steps to add jar to add it.
+
+
+## Appendix
+Attachment: Mail format of new jar
+````
+[VOTE][New Jar] jetcd-core(registry plugin support etcd3 )
+
+
+(state the purpose, and what the jar needs to be added) Hi, the registry SPI will provide the implementation of etcd3. Therefore, we need to introduce a new jar (jetcd-core, jetcd-launcher (test)), which complies with the Apache-2.0 License. I checked his related dependencies to make sure it complies with the license of the Apache project.
+
+new jar :
+
+jetcd-core version -x.x.x license apache2.0
+
+jetcd-launcher (test) version -x.x.x license apache2.0
+
+Dependent jar (which jars it depends on, preferably the accompanying version, and the relevant license agreement):
+grpc-core version -x.x.x license XXX
+grpc-netty version -x.x.x license XXX
+grpc-protobuf version -x.x.x license XXX
+grpc-stub version -x.x.x license XXX
+grpc-grpclb version -x.x.x license XXX
+netty-all version -x.x.x license XXX
+failsafe version -x.x.x license XXX
+
+Related addresses: mainly github address, license file address, notice file address, maven central warehouse address
+
+github address: https://github.com/etcd-io/jetcd
+
+
+license: https://github.com/etcd-io/jetcd/blob/master/LICENSE
+
+
+notice: https://github.com/etcd-io/jetcd/blob/master/NOTICE
+
+
+Maven repository:
+
+
+https://mvnrepository.com/artifact/io.etcd/jetcd-core
+
+
+https://mvnrepository.com/artifact/io.etcd/jetcd-launcher
+````
+
+## Reference articles
+* [COMMUNITY-LED DEVELOPMENT "THE APACHE WAY"](https://apache.org/dev/licensing-howto.html)
+* [ASF 3RD PARTY LICENSE POLICY](https://apache.org/legal/resolved.html)
\ No newline at end of file
diff --git a/community/development_specification/overview.md b/community/development_specification/overview.md
index 5b44ce0..c524ec5 100644
--- a/community/development_specification/overview.md
+++ b/community/development_specification/overview.md
@@ -4,6 +4,7 @@ sidebar_position: 0
 ---
 
 In order to standardize Linkis's community development environment, improve the output quality of subsequent development iterations of Linkis, and standardize the entire development and design process of Linkis, it is strongly recommended that Contributors follow the following development specifications:
+- [License Notes](license.md)
 - [Programming Specification](programming_specification.md)
 - [Log Specification](log.md)
 - [Exception Handling Specification](exception_catch.md)
diff --git a/community/how-to-join.md b/community/how-to-join.md
deleted file mode 100644
index 5cbda22..0000000
--- a/community/how-to-join.md
+++ /dev/null
@@ -1,200 +0,0 @@
----
-
-Title: how to join a development group
-
-sidebar_ position: 1.0
-
----
-
->Introduce the requirements and process of joining linkis candidates
-
-
-
-For details of the format of candidate application email, please refer to [application email] here( https://linkis.apache.org/zh-CN/development/how-to-vote-a-committer-ppmc )
-
-## 1. Applicant review specification
-
-When voting, all PMC members need to decide whether to approve the candidate as the submitter. They may search mailing lists and JIRA to find out how candidates interact with others and their contributions (code or document patches, suggestions, participation in conversations).
-
-Here are some key points to consider when assessing a candidate's commitment qualifications.
-
-1. How do we evaluate the ability to cooperate with peers?
-    - 1.1 through their interaction via email.
-    - 1.2 through how they respond to criticism.
-    - 1.3 through how they participate in the group decision-making process.
-
-2. How do we evaluate the ability to become a mentor?
-    - 2.1 through their clarity and their willingness to identify and even create appropriate background materials.
-    
-3. How do we evaluate the community?
-    - 3.1 are they helpful in answering the questions raised in the mailing list?
-    - 3.2 do they show a helpful attitude and respect the ideas of others?
-    
-4. How do we evaluate the commitment?
-    - 4.1 completion of tasks according to the time given to the project.
-    - 4.2 how do they stick to the process through difficult problems.
-    - 4.3 through how they help complete less interesting tasks.
-
-5. How do we evaluate personal skills/abilities?
-    - 5.1 have a solid overall understanding of the project.
-    - 5.2 quality discussed in email.
-    - 5.3 whether their patches (if applicable) are easy to apply requires only a rough review.
-
-
-
-## 2. Approval process
-
-This section describes the process of a typical linkis project processing votes to add new submitters
-
-1. General
-    - 1.1 initiate voting (templates/committervote.txt)
-    - 1.2 close voting
-    - 1.3 if the result is positive, please invite a new submitter (templates/committerinvite.txt)
-
-2. Invitation process
-    - 2.1 accept submitters (templates/committeraccept.txt)
-    - 2.2 wait until we see the receipt recording cla
-    - 2.3 request to create submitter account (template/committercreate. Txt)
-        ```html
-        2.3.1 wait until the root is finished
-        2.3.2 PMC chairman enables SVN and other access
-        2.3.3 add the submitter to the corresponding group in JIRA and cwiki
-        ```
-    - 2.4 notify the submitter of completion (template/committerdone.txt)
-    - 2.5 if the submitter is also a PMC member, the PMC chairman will send an email to board @ requesting confirmation of the new PMC member (templates/email-member-ack.txt)
-    - 2.6 announce new submitters (template / committerannouncement.txt)
- 
- ## 3. Detailed selection process
-
-1. Initiate community private email group voting discussion: any PPMC member of linkis can initiate voting discussion. After PPMC finds any valuable contribution of community contributors and obtains the consent of the candidate, it can initiate discussion on the private email list of linkis. In the discussion email, the proposer should clarify the candidate's contribution and give the address of the corresponding contribution for review, so as to facilitate discussion and analysis. Disc [...]
-
-```html
-
-[DISCUSS] YYYYY as an linkis XXXXXX
-
-    I nominate YYYYY as an linkis XXXXXX
-
-    Judging from the contributions in recent months, YYYYY has submitted many implementations[1],[2] to the project and improved the management module for the project. During        the optimization and improvement period of the project, it is hoped that more people will participate in the actual project optimization and improvement, to let the project      more perfect and easier to use.
-
-    So I nominated YYYYY as XXXXXX of the linkis project.
-
-    one https://github.com/apache/incubator-linkis/issues/created_by/YYYYY
-    two https://github.com/apache/incubator-linkis/commits?author=YYYYY
-
-    ```
-
-
-
-2. Initiate community private email group voting: if the discussion email does not receive disagreement information within the specified time, the voting initiator needs to initiate the election voting of committee or PPMC on the private email list of linkis. Main delivery of voting mail private@linkis.apache.org , lasting at least 72 hours, at least 3 votes + 1 pass; If there are 0 votes or 1-1 votes, the whole voting fails; If A-1 vote is initiated, voters need to clarify the reasons f [...]
-
-    ```html
-
-    [VOTE] YYYYY as an linkis XXXXXX
-
-    Judging from the contributions in recent months, YYYYY has submitted many implementations[1],[2],[3] to the project and improved the management module for the project.           During the optimization and improvement period of the project, it is hoped that more people will participate in the actual project optimization and improvement, to let the       project more perfect and easier to use.
-
-    I think making him a XXXXXX will be a recognition of his outstanding work for linkis. So, I am happy to call VOTE to accept YYYYY as an linkis XXXXXX.
-
-    Voting will continue for at least 72 hours or until the required number of votes is reached.
-
-    Please vote accordingly:
-    [ ] +1 approve
-    [ ] +0 no opinion
-    [ ] -1 disapprove with the reason
-
-    Here are three links to his contributions to linkis:
-    1. Issues: https://github.com/apache/incubator-linkis/pulls?q=YYYYY
-    2. PRs : https://github.com/apache/incubator-linkis/issues?q=YYYYY
-    3. Others: https://xxx.com/xxx/xxx/?q=YYYYY
-
-```
-
-3. Feedback of voting results: after the voting email is completed, the voting initiator needs to remind the end of voting in the second [vote] email; At the same time, the voting initiator needs to launch a stamp summary email, which is sent by the main sender private@linkis.apache.org 。 The following is a sample voting summary email:
-
-    ```html
-
-    [RESULTS][VOTE] YYYYY as an linkis XXXXXX
-
-    Hi everyone,
-
-    The vote for "YYYYY as an linkis XXXXXX" has PASSED and closed now.
-
-    The result is as follows:
-
-    3 PPMC +1 Votes
-    - aaa
-    - bbb
-    - ccc
-
-    Vote thread:
-    https://lists.apache.org/thread/aaaaaxxxx
-
-    Then I'm going to invite YYYYY to join us.
-
-    Thanks for everyone's support!
-    ```
-
-  Note: if it fails, the result is "the vote for" yyyyy as an linkis XXXXXX "has failed and closed now."
-
-4. Add PPMC notification email: this step is only for the PPMC that has passed the vote. If the election is a committee, this step will be skipped and will not be executed. The voting initiator needs to send a notification email to the private email group of IPMC and wait for at least 72 hours; Mail delivery private@incubator.apache.org , CC private@linkis.apache.org ; IPMC will analyze the compliance until there is no doubt. The following is an example of a new PPMC notification email:
-
-```html
-    [NOTICE] YYYYY for linkis PPMC
-
-    Hi everyone,
-
-    YYYYY has been voted as a new member of the linkis PPMC.
-
-    The vote thread is at:
-    https://lists.apache.org/thread/aaaaaxxxx
-
-    Thanks!
-    ```
-
-5. Initiate invitation email: after the voting summary email is sent, the voting initiator shall send invitation email to the candidate. The invitation email is sent to the invitee with a CC private@linkis.apache.org ; The invited candidate must reply to accept or reject the invitation through the specified email address. The following is a sample email inviting candidates:
-
-    ```html
-
-    [Invitation] Invitation to join Apache linkis as a XXXXXX
-
-    Hi YYYYY,
-
-    In recognition of your contributions to Apache linkis, the linkis PPMC
-    has recently voted to add you as a XXXXXX. The XXXXXX role gives
-    you access to merge patches into Apache linkis and is also a
-    stepping-stone towards membership in the
-    Podling Project Management Committee (PPMC). We hope that you accept
-
-    this invitation and continue to help us make Apache linkis better.
-    If you'd like to accept, you will need to send an Individual
-    Contributor License Agreement (ICLA) to secretary@apache.org , CCing
-    private@linkis.apache.org , and request an Apache account name as
-    described at http://www.apache.org/dev/new-committers-guide.html if
-    you don’t already have one, once you get an account name, or if you
-    have one already, please email it to me.
-
-    With the expectation of your acceptance, welcome!
-
-    The Apache linkis PPMC
-
-    ```
-
-6. Processing after accepting the invitation: create an Apache account and add the candidate account to the project. After the candidate accepts the invitation, if the candidate does not have an Apache email account, the voting initiator needs to assist the candidate to create an Apache account according to the guidelines. When signing icla, the candidate needs to write the name of Apache links project in the "notify project:" column, so that the candidate account can be added to the lis [...]
-
-7. Send a statement email to the community: after the above steps are completed, the voting sponsor shall send a message to the community dev@linkis.apache.org Send notification email to the mail group. The following is a sample notification email:
-
-    ```html
-    [ANNOUNCE] New XXXXXX: YYYYY
-
-    Hi everyone,
-
-    The Project Management Committee(PMC) for Apache linkis has invited YYYYY to become a XXXXXX and we are pleased to announce that he has accepted.
-
-    YYYYY is being active in the linkis community, and we are glad to see his more interactions with the community in the future.
-
-    Welcome YYYYY, and please enjoy your journey.:)
-
-    Thanks!
-    ```
-
-  YYYYY is being active in the linkis community, and we are glad to see
diff --git a/community/how-to-vote-a-committer-ppmc.md b/community/how-to-vote-a-committer-ppmc.md
new file mode 100644
index 0000000..860e882
--- /dev/null
+++ b/community/how-to-vote-a-committer-ppmc.md
@@ -0,0 +1,271 @@
+---
+title: How to Vote New Committer/PPMC
+sidebar_position: 6
+---
+> Introduce the selection requirements and process for Committer and PPMC. Official guidelines can be found at: https://community.apache.org/newcommitter.html
+
+## 1. Candidate Requirements
+When voting, all PMC members need to decide for themselves whether candidates should be approved as committers. This can be done by searching the [mailing list](https://lists.apache.org/list?dev@linkis.apache.org)/[ISSUES/PR](https://github.com/apache/incubator-linkis/issues )/[Official Website Documentation Contribution](https://github.com/apache/incubator-linkis-website) to understand how candidates interact with others, and the contributions they make (code or documentation patches, s [...]
+
+Below are some points to consider when evaluating candidates for commitment eligibility.
+1. Ability to develop collaboration with the community?
+   - Interaction via email
+   - Participate in certain group voting or decision-making discussions
+2. How does the community evaluate it?
+   - Is it helpful to answer questions asked on the mailing list
+   - Shows a helpful attitude and respects the ideas of others
+3. How to evaluate the content of the commitment work?
+   - Completion of tasks according to the project task plan
+   - Attitude and process for handling difficult issues
+   - How to help with less fun tasks
+4. How are personal skills/competencies assessed?
+   - Have a solid general understanding of the project
+   - Quality of discussions in emails
+   - Are their patches (if applicable) easy to apply with just a cursory review
+5. PPMC competency requirements
+   - Have a more comprehensive understanding of the project
+   - Ability to control project progress and version quality
+   - Actively participate in/lead the construction of the community, promote the healthy development of the community, and take the initiative to undertake the responsibility and governance of the project
+   - Actively revive the issues raised by the ASF Board and take necessary action
+   - Familiar with the release process of ASF
+
+In most cases, new PPMC members are nominated from the Committer team. But it is also possible to become a member of the PPMC directly, as long as the PPMC agrees to the nomination and is confident that the candidate is ready. This can be demonstrated, for example, by the fact that he/she was an Apache member, an Apache official, or a PPMC member of another project.
+
+## 2. Detailed process of recommendation
+
+### 2.1 Initiate community mail discussion
+
+>Any linkis PPMC member can initiate a voting discussion. After PPMC finds any valuable contributions from community contributors and obtains the consent of the candidate, they can initiate a discussion on the linkis private mailing list. In the discussion email, the proposer should clarify the candidate's contribution and give the address for reviewing the corresponding contribution, so that everyone can discuss and analyze. The discussion email should be sent to private@linkis.apache.o [...]
+
+Here is a sample discussion email:
+
+```html
+To: private@linkis.apache.org
+Subject: [DISCUSS] YYYYY as an Linkis XXXXXX candidate
+Content:
+
+Hi all:
+    I nominate YYYYY as an Linkis XXXXXX candidate
+ 
+    Judging from the contributions in recent months, YYYYY has submitted many implementations[1],[2] to the project and improved the management module for the project. During the optimization and improvement period of the project, it is hoped that more people will participate in in the actual project optimization and improvement, to let the project more perfect and easier to use.
+  
+    So I nominated YYYYY as XXXXXX of the Linkis project.
+  
+    1. https://github.com/apache/incubator-linkis/issues/created_by/YYYYY
+    2. https://github.com/apache/incubator-linkis/commits?author=YYYYY
+    3.....
+Thanks!
+XXXX
+````
+    
+### 2.2 Initiate a community mail poll
+>If the discussion email does not receive any disagreement information within the specified time, the vote initiator needs to initiate a Committer or PPMC election vote on the linkis private mailing list. The main voting email is sent to private@linkis.apache.org, which lasts for at least 72 hours, and requires at least 3 votes + 1 to pass; if there is 1 -1 vote, the entire vote will fail; if a -1 vote is initiated, the voter needs to put -1 The reasons are clearly stated so that everyon [...]
+
+Here is a sample poll email:
+```html
+To: private@linkis.apache.org
+Subject: [VOTE] YYYYY as an Linkis XXXXXX candidate
+Content:
+Hi all:
+    Judging from the contributions in recent months, YYYYY has submitted many implementations[1],[2],[3] to the project and improved the management module for the project. During the optimization and improvement period of the project, it is hoped that more people will participate in the actual project optimization and improvement, to let the project more perfect and easier to use.
+
+    I think making him a XXXXXX will be a recognition of his outstanding work for Linkis. So, I am happy to call VOTE to accept YYYYY as an Linkis XXXXXX.
+  
+    Voting will continue for at least a week or until the required number of votes is reached.
+ 
+    Please vote accordingly:
+    [ ] +1 approve
+    [ ] +0 no opinion
+    [ ] -1 disapprove with the reason
+   
+    Here are three links to his contributions to Linkis:
+    1. Issues: https://github.com/apache/incubator-linkis/pulls?q=YYYYY
+    2. PRs: https://github.com/apache/incubator-linkis/issues?q=YYYYY
+
+    3. Others: https://xxx.com/xxx/xxx/?q=YYYYY
+
+Thanks!
+XXXX
+````
+### 2.3 Announcement of voting results
+>After the voting email ends, the voting initiator needs to remind the voting end in the second [VOTE] email; at the same time, the voting initiator needs to issue a stamp to announce the voting result and send it to private@linkis.apache.org.
+
+Here is an example of voting results:
+```html
+To: private@linkis.apache.org
+Subject: [RESULTS][VOTE] YYYYY as an Linkis XXXXXX
+Content:
+
+Hi all:
+    The vote for "YYYYY as an Linkis XXXXXX" has PASSED and closed now.
+
+    The result is as follows:
+
+    3 PPMC +1 Votes
+    - aaa
+    - bbb
+    - ccc
+
+    Vote thread:
+    https://lists.apache.org/thread/aaaaaxxxx
+
+    Then I'm going to invite YYYYY to join us.
+
+    Thanks for everyone's support!
+Thanks!
+XXXX
+````
+**Note: If it is not passed, the result is "The vote for "YYYYY as an Linkis XXXXXX" has FAILED and closed now."**
+   
+### 2.4 Added PPMC notification email
+>This step is only for the new PPMC election process. If the Committer is elected, this step is skipped and not executed.
+>The initiator of the vote needs to send a notification email to the board@apache.org mailing group and wait at least 72 hours;
+> Email board@apache.org, cc private@linkis.apache.org; IPMCs will analyze compliance until there is no objection.
+
+The following is a sample notification email for adding a PPMC:
+```html
+To: board@apache.org
+Cc: private@seatunnel.apache.org
+Subject: [NOTICE] YYYYY for Linkis PPMC
+Content:
+Hi everyone,
+
+    YYYYY has been voted as a new member of the Linkis PPMC.
+
+    The vote thread is at:
+    https://lists.apache.org/thread/aaaaaxxxx
+
+Thanks!
+xxxxx
+````
+
+After 72 hours, if the board has no objection to the nomination (which in most cases will not), an invitation may be sent to the candidate.
+
+### 2.5 Send email invitations to candidates
+> After announcing the voting results, the voting initiator should send an invitation email to the candidates. The invitation email is sent to the invitees, cc private@linkis.apache.org; the invited candidates must reply to accept or reject the invitation through the specified email address.
+
+The following is a sample invitation email: Take the invitee Joe Bloggs as an example
+
+```html
+To: JoeBloggs@foo.net
+Cc: private@linkis.apache.org
+Subject: Invitation to become Linkis committer: Joe Bloggs
+    
+Hello [invitee name],
+
+    The Linkis Podling Project Management Committee] (PPMC)
+    hereby offers you committer privileges to the project
+    [as well as membership in the PPMC]. These privileges are
+    offered on the understanding that you'll use them
+    reasonably and with common sense. We like to work on trust
+    rather than unnecessary constraints.
+    
+    Being a committer enables you to more easily make
+    changes without needing to go through the patch
+    submission process. [Being a PPMC member enables you
+    to guide the direction of the project.]
+    
+    Being a committer does not require you to
+    participate any more than you already do. It does
+    tend to make one even more committed. You will
+    probably find that you spend more time here.
+    
+    Of course, you can decline and instead remain as a
+    contributor, participating as you do now.
+    
+    A. This personal invitation is a chance for you to
+    accept or decline in private. Either way, please
+    let us know in reply to the [private@linkis.apache.org]
+    address only.
+    
+    B. If you accept, the next step is to register an iCLA:
+        1. Details of the iCLA and the forms are found
+        through this link: https://www.apache.org/licenses/#clas
+    
+        2. Instructions for its completion and return to
+        the Secretary of the ASF are found at
+        https://www.apache.org/licenses/#submitting
+    
+        3. When you transmit the completed iCLA, request
+        to notify the Apache Linkis(Incubating) and choose a
+        unique Apache ID. Look to see if your preferred
+        ID is already taken at
+        https://people.apache.org/committer-index.html
+        This will allow the Secretary to notify the PPMC
+        when your iCLA has been recorded.
+    
+    When recording of your iCLA is noted, you will
+    receive a follow-up message with the next steps for
+    establishing you as a committer.
+
+    With the expectation of your acceptance, welcome!
+
+The Apache Linkis(Incubating) PPMC
+````
+
+### 2.6 Invitation Acceptance Process
+>Requires candidates for processing
+
+The new Committer should reply to `private@linkis.apache.org` (select `reply all`) and express his/her acceptance of the invitation.
+The invitation will then be considered accepted by the project's PPMC. Of course, new committers can also choose to decline the invitation.
+
+Once the invitation is accepted, new submitters must take the following steps:
+- Subscribe to `dev@seatunnel.apache.org`. Usually this is already done.
+- Choose an Apache ID that has not been used [apache committers list page](http://people.apache.org/committer-index.html).
+- Download [ICLA](https://www.apache.org/licenses/icla.pdf org/licenses/cla-corporate.pdf) is expected).
+- After filling in the correct information in `icla.pdf` (or `ccla.pdf`), print it, sign it by hand, scan it into PDF, and send it as an attachment to [secretary@apache.org] (email: secretary@apache.org). (If electronic signatures are preferred, follow the steps on [this page](http://www.apache.org/licenses/contributor-agreements.html#submitting))
+- PPMC will wait for the Apache Secretary to confirm ICLA (or CCLA) filing. New submitters and PPMC will receive the following email:
+
+For detailed instructions, see [Opening Apache's github repository permissions](https://docs.qq.com/doc/DVURNYkhMV3llWEhR)
+```html
+Dear XXX,
+
+This message acknowledges receipt of your ICLA, which has been filed in the Apache Software Foundation records.
+
+Your account has been requested for you and you should receive email with next steps
+within the next few days (can take up to a week).
+
+Please refer to https://www.apache.org/foundation/how-it-works.html#developers
+for more information about roles at Apache.
+````
+
+In the unlikely event that the account has not been processed, PPMC members should contact the project [Apache Incubator's VP](https://www.apache.org/foundation/), which can be accessed through the [Apache Account Submission Helper Form](https://whismy. apache.org/officers/acreq) request.
+
+In a few days, new committers will receive an email confirming account creation with the title `Welcome to the Apache Software Foundation (ASF)!`.
+
+PPMC members should add new committers to the official committer list via [Roster](https://whismy.apache.org/roster/committee/linkis).
+
+### 2.7 Setting up Apache ID and development environment
+>Requires candidates for processing
+
+- Enter [Apache Account Utility Platform] (https://id.apache.org/), create a password, set up a personal email address (`forwarding email address`) and a GitHub account (`Your GitHub Username`). An organization invitation will be emailed to you shortly thereafter (within 2 hours).
+- If you want to use `xxx@apache.org` mail service, please refer to [here](https://infra.apache.org/committer-email.html). Gmail is recommended as this forwarding mode is not easily found in most email service setups.
+- Follow【Authorize GitHub 2FA wiki】(https://help.github.com/articles/configuring-two-factor-authentication-via-a-totp-mobile-app/) to enable two-factor authorization (2FA) in [Github ](http://github.com/). When you set 2FA to "off", it will be delisted from the corresponding Apache committer write permission group until you set it again. (**Note: pay attention to recovery codes like passwords!**)
+- Use the [GitBox Account Linking Utility] (https://gitbox.apache.org/setup/) to obtain the write permission of the Linkis project.
+- [linkis-website](https://linkis.apache.org/team) related page update
+
+If you want to make a public appearance in the Apache GitHub organization, you need to go to the [Apache GitHub people page](https://github.com/orgs/apache/people),
+Search for yourself, then select `Organization visibility` for `Public`.
+
+## 3 Post announcement email
+>After the above steps are completed, the voting initiator will send a notification email to the dev@linkis.apache.org mailing group.
+
+The following is a sample notification email:
+```html
+To: private@linkis.apache.org
+Subject: [ANNOUNCE] New XXXXXX: YYYYY
+Content:
+Hi all:
+     Hi everyone,
+
+     The Project Management Committee(PMC) for Apache Linkis has invited YYYYY to become a XXXXXX and we are pleased to announce that he has accepted.
+
+     YYYYY is being active in the Linkis community, and we are glad to see his more interactions with the community in the future.
+
+     Welcome YYYYY, and please enjoy your journey. :)
+
+Thanks!
+The Apache Linkis(Incubating) PPMC
+````
+   
+At this point, the whole process is over, and the candidate officially becomes the Committer or PPMC of the project.
\ No newline at end of file
diff --git a/docusaurus.config.js b/docusaurus.config.js
index cf7e443..396fe28 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -58,12 +58,23 @@ const darkCodeTheme = require('prism-react-renderer/themes/dracula');
                }
             }
         },
-        blog: {
-          // showReadingTime: true,
-          // Please change this to your repo.
-          editUrl:
-            'https://github.com/apache/incubator-linkis-website/edit/dev/blog/',
-        },
+         blog: {
+                  // routeBasePath: '/',
+                  path: 'blog',
+                  editUrl: ({locale, blogDirPath, blogPath}) => {
+                   if (locale !== 'en') {
+                     return `https://github.com/apache/incubator-linkis-website/edit/dev/i18n/${locale}`;
+                   }
+                   return `https://github.com/apache/incubator-linkis-website/edit/dev/${blogDirPath}/${blogPath}`;
+                 },
+
+                  postsPerPage: 5,
+                  feedOptions: {
+                    type: 'all',
+                    //copyright: `Copyright © ${new Date().getFullYear()} Facebook, Inc.`,
+                  },
+                  blogSidebarCount: 'ALL'
+                },
         theme: {
           customCss: require.resolve('./src/css/custom.css'),
         },
@@ -118,6 +129,12 @@ const darkCodeTheme = require('prism-react-renderer/themes/dracula');
             activeBaseRegex: `/community/`,
           },
           {
+            to: 'blog',
+            label: 'Blog',
+            position: 'left',
+            activeBaseRegex: `/blog/`,
+          },
+          {
               to: '/team',
               label: 'Team',
               position: 'left',
@@ -294,20 +311,51 @@ const darkCodeTheme = require('prism-react-renderer/themes/dracula');
       },
     ],
 
-     [
-          '@docusaurus/plugin-content-docs',
-          {
-            id: 'faq',
-            path: 'faq',
-            routeBasePath: 'faq',
-            editUrl: ({locale, versionDocsDirPath, docPath}) => {
-              if (locale !== 'en') {
-                return `https://github.com/apache/incubator-linkis-website/edit/dev/i18n/${locale}/${docPath}`;
-              }
-              return `https://github.com/apache/incubator-linkis-website/edit/dev/${versionDocsDirPath}/${docPath}`;
-            },
-            sidebarPath: require.resolve('./sidebarsCommunity.js'),
-          },
-     ],
+    [
+      '@docusaurus/plugin-content-docs',
+      {
+        id: 'faq',
+        path: 'faq',
+        routeBasePath: 'faq',
+        editUrl: ({locale, versionDocsDirPath, docPath}) => {
+          if (locale !== 'en') {
+            return `https://github.com/apache/incubator-linkis-website/edit/dev/i18n/${locale}/${docPath}`;
+          }
+          return `https://github.com/apache/incubator-linkis-website/edit/dev/${versionDocsDirPath}/${docPath}`;
+        },
+        sidebarPath: require.resolve('./sidebarsCommunity.js'),
+      },
+    ],
+//    [
+//      '@docusaurus/plugin-content-docs',
+//      {
+//        id: 'blog',
+//        path: 'blog',
+//        routeBasePath: 'blog',
+//        editUrl: ({locale, versionDocsDirPath, docPath}) => {
+//          if (locale !== 'en') {
+//            return `https://github.com/apache/incubator-linkis-website/edit/dev/i18n/${locale}/${docPath}`;
+//          }
+//          return `https://github.com/apache/incubator-linkis-website/edit/dev/${versionDocsDirPath}/${docPath}`;
+//        },
+//        sidebarPath: require.resolve('./sidebarsCommunity.js'),
+//      },
+//    ],
+
+//    [
+//      '@docusaurus/plugin-content-docs',
+//      {
+//        id: 'blog',
+//        path: 'blog',
+//        routeBasePath: 'blog',
+//        editUrl: ({locale, versionDocsDirPath, docPath}) => {
+//          if (locale !== 'en') {
+//            return `https://github.com/apache/incubator-linkis-website/edit/dev/i18n/${locale}/${docPath}`;
+//          }
+//          return `https://github.com/apache/incubator-linkis-website/edit/dev/${versionDocsDirPath}/${docPath}`;
+//        },
+//        sidebarPath: require.resolve('./sidebarsCommunity.js'),
+//      },
+//    ],
   ]
 });
diff --git a/i18n/zh-CN/code.json b/i18n/zh-CN/code.json
index ad86773..42ce970 100644
--- a/i18n/zh-CN/code.json
+++ b/i18n/zh-CN/code.json
@@ -16,55 +16,55 @@
     "description": "The ARIA label for close button of announcement bar"
   },
   "theme.blog.archive.title": {
-    "message": "Archive",
+    "message": "历史博文",
     "description": "The page & hero title of the blog archive page"
   },
   "theme.blog.archive.description": {
-    "message": "Archive",
+    "message": "历史博文",
     "description": "The page & hero description of the blog archive page"
   },
   "theme.blog.paginator.navAriaLabel": {
-    "message": "Blog list page navigation",
+    "message": "博文列表分页导航",
     "description": "The ARIA label for the blog pagination"
   },
   "theme.blog.paginator.newerEntries": {
-    "message": "Newer Entries",
+    "message": "较新的博文",
     "description": "The label used to navigate to the newer blog posts page (previous page)"
   },
   "theme.blog.paginator.olderEntries": {
-    "message": "Older Entries",
+    "message": "较旧的博文",
     "description": "The label used to navigate to the older blog posts page (next page)"
   },
   "theme.blog.post.readingTime.plurals": {
-    "message": "One min read|{readingTime} min read",
+    "message": "1 分钟阅读|{readingTime} 分钟阅读",
     "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
   },
   "theme.blog.post.readMore": {
-    "message": "Read More",
+    "message": "阅读更多",
     "description": "The label used in blog post item excerpts to link to full blog posts"
   },
   "theme.blog.post.paginator.navAriaLabel": {
-    "message": "Blog post page navigation",
+    "message": "博文分页导航",
     "description": "The ARIA label for the blog posts pagination"
   },
   "theme.blog.post.paginator.newerPost": {
-    "message": "Newer Post",
+    "message": "上一篇",
     "description": "The blog post button label to navigate to the newer/previous post"
   },
   "theme.blog.post.paginator.olderPost": {
-    "message": "Older Post",
+    "message": "下一篇",
     "description": "The blog post button label to navigate to the older/next post"
   },
   "theme.blog.sidebar.navAriaLabel": {
-    "message": "Blog recent posts navigation",
+    "message": "最新博文导航",
     "description": "The ARIA label for recent posts in the blog sidebar"
   },
   "theme.blog.post.plurals": {
-    "message": "One post|{count} posts",
+    "message": "{count} 篇博文",
     "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
   },
   "theme.blog.tagTitle": {
-    "message": "{nPosts} tagged with \"{tagName}\"",
+    "message": "{nPosts} 含有标签「{tagName}",
     "description": "The title of the page for a blog tag"
   },
   "theme.tags.tagsPageLink": {
diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/2022-02-08-how-to-user-blog.md b/i18n/zh-CN/docusaurus-plugin-content-blog/2022-02-08-how-to-user-blog.md
new file mode 100644
index 0000000..d8dc12d
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-blog/2022-02-08-how-to-user-blog.md
@@ -0,0 +1,137 @@
+---
+title: 如何编写博客
+authors: [Casion]
+tags: [blog,guide]
+---
+> _本文主要指引大家如何在 Linkis 官网发布博文,欢迎大家提交关于Apache Linkis的博文文档,包括但不仅限于Linkis的安装/源码解析/架构/经验分享等。_
+
+本文主要参考Docusaurus的官方[博文规范和示例](https://docusaurus.io/zh-CN/blog),指引和规范可能并不完善,有任何意见或建议,欢迎提出。
+
+<!--truncate-->
+## 资源路径 
+
+- 中文博文仓库路径:https://github.com/apache/incubator-linkis-website/tree/dev/i18n/zh-CN/docusaurus-plugin-content-blog
+- 英文博文仓库路径:https://github.com/apache/incubator-linkis-website/tree/dev/blog
+
+每篇博文需要支持中文和英文,提交时请不要遗漏对应的英文文档。
+
+## 文件命名
+框架会自动从目录/文件名中,解析出 YYYY-MM-DD 格式的发布日期
+- 如:blog/2021-02-08-how-to-user-blog.md 
+- http的访问路径是: http://xxxxx/blog/2021/02/08/how-to-user-blog
+
+博文发布日志会根据文件自动解析出对应的日期:2021-02-08,这样默认就是按照日期进行排序。
+
+## 图文博客规范
+- ⚠ 如果博文有涉及到图片资源,需要加载本地图片资源,请使用文件夹的形式,这样可以方便的把博客所需要的图片等资源和Markdown 文档放在一起。
+- ⚠ 如果是架构/流程等图片,原始的工程文件,如.vsdx文件,也请上传至img目录下,方便后续修改。请保证不要再英文博文中出现中文图片。 
+
+```shell script
+|-- blog
+|   |--2021-02-08-how-to-user-blog 
+|   |    |-- img //存放图片
+|   |    |-- index.md //博文内容
+```
+
+参考示例:
+- 源码:https://github.com/facebook/docusaurus/tree/main/website/blog/2022-01-24-docusaurus-2021-recap
+- 视觉效果:https://docusaurus.io/zh-CN/blog/2022/01/24/docusaurus-2021-recap
+
+## 摘要
+博客的首页(默认为 /blog )是博客列表页,会展示所有的博客文章。
+
+在博文中使用 <!--truncate--> 来标记文章摘要。 <!--truncate--> 以上的内容均将成为摘要,会在博客主页进行展示。 
+举个例子:
+```markdown
+---
+title: 摘要示例
+---
+
+All these will be part of the blog post summary.
+
+甚至包括这一行。
+
+<!--truncate-->
+
+但这一行和这一行下方的内容将不会被截取。
+
+这行不会。
+
+这行也不会。
+```
+
+## 元数据信息
+
+Markdown 文档可以使用以下 Markdown 前端元数据字段,由---两边的线括起来。
+
+```markdown
+---
+title: Welcome Docusaurus v2
+description: This is my first post on Docusaurus 2.
+data:2022-02-01 
+slug: welcome-docusaurus-v2
+authors:
+  - name: Joel Marcey
+    title: Co-creator of Docusaurus 1
+    url: https://github.com/JoelMarcey
+    image_url: https://github.com/JoelMarcey.png
+  - name: Sébastien Lorber
+    title: Docusaurus maintainer
+    url: https://sebastienlorber.com
+    image_url: https://github.com/slorber.png
+tags: [hello, docusaurus-v2]
+image: https://i.imgur.com/mErPwqL.png
+hide_table_of_contents: false
+---
+
+Welcome to this blog. 此博客使用 [**Docusaurus 2**](https://docusaurus.io/) 搭建。
+
+<!--truncate-->
+
+这是我的首篇博文。
+
+下方是一系列内容。
+```
+常用参数 
+
+|姓名 |类型 |默认 |说明 |
+| --- | --- | --- | --- |
+| `authors` | `string` | `未定义` |博客文章作者(或唯一作者)列表。|
+| `authors.url` | `string` | `未定义` |作者姓名将链接到的 URL。这可能是 GitHub、Twitter、Facebook 个人资料 URL 等。
+| `authors.image_url` | `string` | `未定义` |作者缩略图的 URL。 |
+| `authors.title` | `string` | `未定义` |作者的描述。 |
+| `title` | `string` |降价标题 |博文标题。 |
+| `date` | `string` |文件名或文件创建时间 |博文创建日期。如果未指定,则可以从文件或文件夹名称中提取,例如,`2021-04-15-blog-post.mdx`、`2021-04-15-blog-post/index.mdx`、`2021/ 04/15/blog-post.mdx`。否则,就是 Markdown 文件的创建时间。 |
+| `tags` | `Tag[]` | `未定义` |两个字符串字段“标签”和“永久链接”的字符串或对象列表,用于标记您的帖子。 |
+| `keywords` | `string[]` | `未定义` |关键字元标记,将成为 `<head>` 中的 `<meta name="keywords" content="keyword1,keyword2,..."/>`,供搜索引擎使用。 |
+| `description` | `string` |第一行 Markdown 内容 |您的文档的描述,它将成为 `<meta name="description" content="..."/>` 和 `<meta property="og:description" content="..."/>` in `<head>`,被搜索引擎使用。 |
+| `image` | `string` | `未定义` |显示帖子链接时将使用的封面或缩略图。 |
+| `slug` | `string` |文件路径 |允许自定义博客文章 url (`/<routeBasePath>/<slug>`)。支持多种模式:`slug: my-blog-post`, `slug: /my/path/to/blog/post`, slug: `/`。 |
+
+| Name | Type | Default | Description |
+| --- | --- | --- | --- |
+| `authors` | `Authors` | `undefined` | List of blog post authors (or unique author).|
+| `authors.url` | `string` | `undefined` | The URL that the author's name will be linked to. This could be a GitHub, Twitter, Facebook profile URL, etc. |
+| `authors.image_url` | `string` | `undefined` | The URL to the author's thumbnail image. |
+| `authors.title` | `string` | `undefined` |  A description of the author. |
+| `title` | `string` | Markdown title | The blog post title. |
+| `date` | `string` | File name or file creation time | The blog post creation date. If not specified, this can be extracted from the file or folder name, e.g, `2021-04-15-blog-post.mdx`, `2021-04-15-blog-post/index.mdx`, `2021/04/15/blog-post.mdx`. Otherwise, it is the Markdown file creation time. |
+| `tags` | `Tag[]` | `undefined` | A list of strings or objects of two string fields `label` and `permalink` to tag to your post. |
+| `keywords` | `string[]` | `undefined` | Keywords meta tag, which will become the `<meta name="keywords" content="keyword1,keyword2,..."/>` in `<head>`, used by search engines. |
+| `description` | `string` | The first line of Markdown content | The description of your document, which will become the `<meta name="description" content="..."/>` and `<meta property="og:description" content="..."/>` in `<head>`, used by search engines. |
+| `image` | `string` | `undefined` | Cover or thumbnail image that will be used when displaying the link to your post. |
+| `slug` | `string` | File path | Allows to customize the blog post url (`/<routeBasePath>/<slug>`). Support multiple patterns: `slug: my-blog-post`, `slug: /my/path/to/blog/post`, slug: `/`. |
+
+
+##  作者信息维护
+
+对于普通的博客文章作者来说,维护每篇博客文章中内联的作者信息可能很乏味。
+可以在配置文件中全局声明这些作者:
+`blog/authors.yml`
+```yaml
+Casion:
+  name: Casion
+  title: Development Engineer of WeBank
+  url: https://github.com/casionone/
+  image_url: https://avatars.githubusercontent.com/u/7869972?v=4
+```
diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/authors.yml b/i18n/zh-CN/docusaurus-plugin-content-blog/authors.yml
new file mode 100644
index 0000000..29ce21f
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-blog/authors.yml
@@ -0,0 +1,5 @@
+Casion:
+  name: Casion
+  title: 微众银行开发工程师
+  url: https://github.com/casionone/
+  image_url: https://avatars.githubusercontent.com/u/7869972?v=4
\ No newline at end of file
diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/how-to-used.md b/i18n/zh-CN/docusaurus-plugin-content-blog/how-to-used.md
deleted file mode 100644
index 8b68f79..0000000
--- a/i18n/zh-CN/docusaurus-plugin-content-blog/how-to-used.md
+++ /dev/null
@@ -1 +0,0 @@
-#todo
\ No newline at end of file
diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/options.json b/i18n/zh-CN/docusaurus-plugin-content-blog/options.json
index bdb1643..852e60b 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-blog/options.json
+++ b/i18n/zh-CN/docusaurus-plugin-content-blog/options.json
@@ -8,7 +8,7 @@
     "description": "The description for the blog used in SEO"
   },
   "sidebar.title": {
-    "message": "Recent posts",
+    "message": "最新博文",
     "description": "The label for the left sidebar"
   }
 }
\ No newline at end of file
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs-community/current/development_specification/license.md b/i18n/zh-CN/docusaurus-plugin-content-docs-community/current/development_specification/license.md
new file mode 100644
index 0000000..15b6b5b
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs-community/current/development_specification/license.md
@@ -0,0 +1,143 @@
+---
+title: License 须知
+sidebar_position: 0.1
+---
+
+>注:本文仅适用于Apache项目。
+>本文参考 Dolphinscheduler项目的License须知文档 https://dolphinscheduler.apache.org/zh-cn/community/development/DS-License.html
+
+ASF(Apache基金会)下的开源项目,对于License有着极其严苛的要求,当您为Linkis贡献代码时,就必须按照Apache的规则来,为了避免贡献者在License上浪费过多的时间,
+本文将为您讲解ASF—License以及参与 Linkis 项目开发时如何规避掉License风险。
+
+## License 文件目录说明 
+[Linkis源码](https://github.com/apache/incubator-linkis)涉及到license的目录如下
+```shell script
+#位于最外层的目录下
+
+|-- LICENSE //项目源码的LICENSE
+|-- LICENSE-binary //二进制包的LICENSE
+|-- LICENSE-binary-ui //前端web编译包的LICENSE 
+|-- NOTICE  //项目源码的NOTICE
+|-- NOTICE-binary //二进制包的NOTICE
+|-- NOTICE-binary-ui //前端web二进制包的NOTICE
+|-- licenses-binary  二进制包的详细依赖的license文件
+|-- licenses-binary-ui //前端web编译包详细依赖的license文件
+
+```
+
+
+## 如何在 Linkis 合法的使用第三方开源软件
+
+当你提交的代码有如下场景时:
+
+- 场景1. 源码中有新增使用第三方代码或则静态资源,如源码中直接使用了某个其他项目的代码文件文件,新增了文本、css、js、图片、图标、音视频等文件,以及在第三方基础上做的修改。
+- 场景2. 项目的运行态依赖有新增(即最后编译打包会被打包到发布的安装包中的)
+
+- 场景1中的引入的文件必须是[ASF第三方许可证策](https://apache.org/legal/resolved.html)的A类License 
+- 场景2中的引入的依赖必须是[ASF第三方许可证策](https://apache.org/legal/resolved.html)中的A类/B类License,不能是C类License
+
+我们需要知道被我们项目引入的文件或jar依赖的NOTICE/LICENSE,(绝大多数的开源项目都会有NOTICE文件),这些必须在我们的项目中体现,用Apache的话来讲,就是"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a
+copyright notice that is included in or attached to the work.
+
+### 示例 场景1
+比如源码中引入了`linkis-engineconn-plugins/engineconn-plugins/python/src/main/py4j/py4j-0.10.7-src.zip`第三方文件
+
+找到py4j-0.10.7-src.zip 对应的版本源码分支,如果对应版本分支无`LICENSE/NOTICE`文件,则选择主分支
+- 项目源码位于:https://github.com/bartdag/py4j/tree/0.10.7/py4j-python
+- LICENSE文件:https://github.com/bartdag/py4j/blob/0.10.7/py4j-python/LICENSE.txt
+- NOTICE文件:无
+
+需要在`linkis/LICENSE`文件中说明`py4j-0.10.7-src.zip`的license信息。
+`py4j-0.10.7-src.zip`对应的详细的license.txt文件放在同级的目录下`linkis-engineconn-plugins/engineconn-plugins/python/src/main/py4j/LICENSE-py4j-0.10.7-src.txt`
+因为https://github.com/bartdag/py4j/tree/0.10.7/py4j-python 没有NOTICE文件,所以`linkis/NOTICE`文件中无需追加。
+
+### 示例 场景 2
+
+项目编译依赖了`org.apache.ant:ant:1.9.1`,ant-1.9.1.jar会在最后的编译安装包`target/apache-linkis-x.x.x-incubating-bin/linkis-package/lib`中
+可以解压ant-1.9.1.jar,从jar包中提取LICENSE/NOTICE文件,如果没有,则需要找到对应的版本源码 
+找到py4j-0.10.7-src.zip 对应的版本源码分支,如果对应版本分支没有,则选择主分支
+- 项目源码位于:https://github.com/apache/ant/tree/rel/1.9.1
+- LICENSE文件:https://github.com/apache/ant/blob/rel/1.9.1/LICENSE
+- NOTICE文件:https://github.com/apache/ant/blob/rel/1.9.1/NOTICE
+
+需要在`linkis/LICENSE-binary`文件中说明`ant-1.9.1.jar`的license信息。
+`ant-1.9.1.jar`对应的详细的license.txt文件放在`licenses-binary/LICENSE-ant.txt`
+`ant-1.9.1.jar`对应的详细的notice.txt,追加到 `NOTICE-binary`文件中
+
+关于具体的各个开源协议使用协议,在此不做过多篇幅一一介绍,有兴趣可以自行查询了解。
+
+##  license 检测规则
+我们为自己的项目建立license-check脚本,是为了确保我们在使用过程中能够第一时间避免License的问题。
+
+当我们需要添加新的Jar或其他外部资源的时候,我们需要按照以下步骤:
+
+* 在 tool/dependencies/known-dependencies.txt中添加你所需要的jar名称+版本。
+* 在 LICENSE/LICENSE-binary/LICENSE-binary-ui(根据实际情况决定)中添加相关的license信息。
+* 在 NOTICE/NOTICE-binary/NOTIC-binary-ui(根据实际情况决定)中追加相关的NOTICE文件,此文件请务必和依赖项的代码版本仓库中的NOTICE文件一致。
+
+** check dependency license fail**
+
+编译后 执行tool/dependencies/diff-dependenies.sh 脚本验证
+```
+--- /dev/fd/63	2020-12-03 03:08:57.191579482 +0000
++++ /dev/fd/62	2020-12-03 03:08:57.191579482 +0000
+@@ -1,0 +2 @@
++HikariCP-java6-2.3.13.jar
+@@ -16,0 +18 @@
++c3p0-0.9.5.2.jar
+@@ -149,0 +152 @@
++mchange-commons-java-0.2.11.jar
+Error: Process completed with exit code 1.
+```
+一般来讲,添加一个jar的工作往往不会如此轻易的结束,因为它往往依赖了其它各种各样的jar,这些jar我们同样需要添加相应的license。
+这种情况下,我们会在check里面得到 check dependency license fail的错误信息,如上,我们缺少了HikariCP-java6-2.3.13、c3p0等的license声明,
+按照添加jar的步骤补充即可。
+
+
+## 附件
+附件:新jar的邮件格式 
+```
+[VOTE][New Jar] jetcd-core(registry plugin support etcd3 ) 
+
+
+(说明目的,以及需要添加的 jar 是什么)Hi, the registry SPI will provide the implementation of etcd3. Therefore, we need to introduce a new jar (jetcd-core, jetcd-launcher (test)), which complies with the Apache-2.0 License. I checked his related dependencies to make sure it complies with the license of the Apache project.
+
+new jar : 
+
+jetcd-core             version -x.x.x   license apache2.0
+
+jetcd-launcher (test)  version -x.x.x   license apache2.0
+
+dependent jar(它依赖了哪些jar,最好附带版本,以及相关采用的license协议):
+grpc-core     version -x.x.x  license XXX
+grpc-netty    version -x.x.x  license XXX
+grpc-protobuf version -x.x.x  license XXX
+grpc-stub     version -x.x.x  license XXX
+grpc-grpclb   version -x.x.x  license XXX
+netty-all     version -x.x.x  license XXX
+failsafe      version -x.x.x  license XXX
+
+相关地址:主要有github地址、license文件地址、notice 文件地址、maven中央仓库地址
+
+github address:https://github.com/etcd-io/jetcd
+
+
+license:https://github.com/etcd-io/jetcd/blob/master/LICENSE
+
+
+notice:https://github.com/etcd-io/jetcd/blob/master/NOTICE
+
+
+Maven repository:
+
+
+https://mvnrepository.com/artifact/io.etcd/jetcd-core
+
+
+https://mvnrepository.com/artifact/io.etcd/jetcd-launcher
+```
+
+## 参考文章
+* [COMMUNITY-LED DEVELOPMENT "THE APACHE WAY"](https://apache.org/dev/licensing-howto.html)
+* [ASF 3RD PARTY LICENSE POLICY](https://apache.org/legal/resolved.html)
+
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs-community/current/development_specification/overview.md b/i18n/zh-CN/docusaurus-plugin-content-docs-community/current/development_specification/overview.md
index 766e026..d322668 100644
--- a/i18n/zh-CN/docusaurus-plugin-content-docs-community/current/development_specification/overview.md
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs-community/current/development_specification/overview.md
@@ -4,6 +4,7 @@ sidebar_position: 0
 ---
 为了规范 Linkis 的社区开发环境,提高 Linkis 后续版本开发迭代的产出质量,规范 Linkis 的整个开发设计流程,强烈建议各位 Contributor 遵守以下开发规范:
 
+- [License 须知](license.md)
 - [编程规范](programming_specification.md)
 - [日志规范](log.md)
 - [异常规范](exception_catch.md)
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs-community/current/how-to-join.md b/i18n/zh-CN/docusaurus-plugin-content-docs-community/current/how-to-join.md
deleted file mode 100644
index 72db8cd..0000000
--- a/i18n/zh-CN/docusaurus-plugin-content-docs-community/current/how-to-join.md
+++ /dev/null
@@ -1,161 +0,0 @@
----
-title: 如何使用加入开发组
-sidebar_position: 1.0
----
-> 介绍加入linkis候选人的要求以及流程
-
-## 1. 申请者评审规范
-    在投票时,所有 PMC 成员都需要自己决定是否应批准候选人成为提交者。他们可能会搜索邮件列表和 JIRA,以了解候选人如何与他人互动,以及他们所做的贡献(代码或文档补丁、建议、参与对话)。
-    以下是在评估候选人的承诺资格时需要考虑的一些要点。
-1. 与同行合作的能力我们如何评价?
-   - 1.1 通过他们通过电子邮件进行的互动。
-   - 1.2 通过他们如何回应批评。
-   - 1.3 通过他们如何参与群体决策过程。
-2. 成为导师的能力我们如何评价?  
-   - 2.1 通过他们的清晰程度以及他们识别甚至创建适当的背景材料的意愿。
-3. 社区我们如何评价?
-   - 3.1 他们是否有助于回答邮件列表中提出的问题?
-   - 3.2 他们是否表现出乐于助人的态度并尊重他人的想法?
-4. 承诺我们如何评价?
-   - 4.1 按已经给项目的时间完成任务的情况。
-   - 4.2 他们如何通过棘手的问题坚持这个过程。
-   - 4.3 通过他们如何帮助完成不那么有趣的任务。
-5. 个人技能/能力我们如何评价?
-   - 5.1 对项目有扎实的总体了解。
-   - 5.2 电子邮件中讨论的质量。
-   - 5.3 他们的补丁(如果适用)是否易于应用,只需粗略的审查。
-
-## 2. 审批过程
-    本节描述了一个典型的 Linkis 项目处理投票以添加新提交者的过程
-1. 概括 
-    - 1.1 发起投票(templates/committerVote.txt)
-    - 1.2 关闭投票 
-    - 1.3 如果结果是肯定的,请邀请新的提交者 (templates/committerInvite.txt)
-2. 邀请流程
-    - 2.1 接受提交者 (templates/committerAccept.txt)
-    - 2.2 等到我们看到记录了 CLA 的收据
-    - 2.3 请求创建提交者帐户 (template/committerCreate.txt)
-        ```html
-        2.3.1 等到root说完成。
-        2.3.2 PMC 主席启用 svn 和其他访问。
-        2.3.3 将提交者添加到 JIRA 和 CWiki 中的相应组。
-        ```
-
-    - 2.4 通知提交者完成(template/committerDone.txt)
-    - 2.5 如果提交者也是 PMC 成员,PMC 主席会向 board@ 发送电子邮件,要求确认新 PMC 成员(templates/email-member-ack.txt)
-    - 2.6 宣布新的提交者 (template/committerAnnounce.txt)
-## 3. 推举详细流程
-1. 发起社区Private邮件组投票讨论:任何linkis的PPMC成员都可以发起投票讨论,在PPMC发现社区贡献者任何有价值的贡献并取得候选人本人同意后,可以在linkis的private邮件列表发起讨论。讨论邮件里提议者要把候选人的贡献说清楚,并且给出复核对应贡献的地址,便于大家讨论分析。讨论邮件主送private@linkis.apache.org邮箱,讨论将持续至少72个小时,项目组成员,包括mentor们会针对提议邮件充分发表自己的看法。如下是讨论邮件样例:
-    ```html 
-    [DISCUSS]  YYYYY as an linkis XXXXXX
-
-    I nominate YYYYY as an linkis XXXXXX
- 
-    Judging from the contributions in recent months, YYYYY has submitted many implementations[1],[2] to the project and improved the management module for the project. During the optimization and improvement period of the project, it is hoped that more people will participate in the actual project optimization and improvement, to let the project more perfect and easier to use.
-  
-    So I nominated YYYYY as XXXXXX of the linkis project.
-  
-    1. https://github.com/apache/incubator-linkis/issues/created_by/YYYYY 
-    2. https://github.com/apache/incubator-linkis/commits?author=YYYYY 
-    ```
-    
-2. 发起社区Private邮件组投票: 如果讨论邮件在规定时间内没有收到分歧信息,投票发起者需要在linkis的private邮件列表发起Committer或PPMC的选举投票。投票邮件主送private@linkis.apache.org,至少持续72小时,至少要3票+1通过;如果0票或者有1票-1投票票则整个投票失败;如果发起-1投票,投票人需要把打分-1的原因说清楚,便于大家理解和知晓。如下是投票邮件样例:
-    ```html
-    [VOTE] YYYYY as an linkis XXXXXX
-  
-    Judging from the contributions in recent months, YYYYY has submitted many implementations[1],[2],[3] to the project and improved the management module for the project. During the optimization and improvement period of the project, it is hoped that more people will participate in the actual project optimization and improvement, to let the project more perfect and easier to use.
-
-    I think making him a XXXXXX will be a recognition of his outstanding work for linkis. So, I am happy to call VOTE to accept YYYYY as an linkis XXXXXX.
-  
-    Voting will continue for at least 72 hours or until the required number of votes is reached.
- 
-    Please vote accordingly:
-    [ ] +1 approve
-    [ ] +0 no opinion
-    [ ] -1 disapprove with the reason  
-   
-    Here are three links to his contributions to linkis:
-    1. Issues: https://github.com/apache/incubator-linkis/pulls?q=YYYYY
-    2. PRs   : https://github.com/apache/incubator-linkis/issues?q=YYYYY
-
-    3. Others:  https://xxx.com/xxx/xxx/?q=YYYYY
-    ```
-3. 投票结果反馈:投票邮件结束后,投票发起者需要在第二封[VOTE]邮件里提醒投票结束;同时,投票发起者需要发起邮票总结邮件,总结邮件主送private@linkis.apache.org。如下是投票总结邮件样例:
-    ```html
-    [RESULTS][VOTE] YYYYY as an linkis XXXXXX
-
-    Hi everyone,
-
-    The vote for "YYYYY as an linkis XXXXXX" has PASSED and closed now.
-
-    The result is as follows:
-
-    3 PPMC  +1 Votes
-    - aaa
-    - bbb
-    - ccc
-
-    Vote thread:
-    https://lists.apache.org/thread/aaaaaxxxx
-
-    Then I'm going to invite YYYYY to join us.
-
-    Thanks for everyone's support!   
-    ```
-   备注:如果是未通过,结果是 "The vote for "YYYYY as an linkis XXXXXX" has FAILED and closed now."
-4. 新增PPMC通知邮件:该步骤只针对投票通过的PPMC进行处理,如果选举的是Committer,该步跳过不执行。投票发起者需要向IPMC的private邮件组发送知会邮件,并等待至少72小时;邮件主送private@incubator.apache.org,抄送private@linkis.apache.org;IPMC们会分析合规性,直到没有疑义。如下是新增PPMC通知邮件样例:
-    ```html
-    [NOTICE] YYYYY for linkis PPMC
-
-    Hi everyone,
-
-    YYYYY has been voted as a new member of the linkis PPMC. 
-
-    The vote thread is at:
-    https://lists.apache.org/thread/aaaaaxxxx
-
-    Thanks!
-    ```
-    
-5. 发起邀请邮件:投票总结邮件发出后,投票发起人要给候选人发送邀请邮件。邀请邮件主送被邀请人,抄送private@linkis.apache.org;被邀请的候选人必须通过指定的邮箱地址回复接受或者拒绝该邀请。如下是邀请候选人邮件样例:
-    ```html
-    [Invitation] Invitation to join Apache linkis as a XXXXXX
-
-    Hi YYYYY,
-
-    In recognition of your contributions to Apache linkis, the linkis PPMC
-    has recently voted to add you as a XXXXXX. The XXXXXX role gives
-    you access to merge patches into Apache linkis and is also a
-    stepping-stone towards membership in the
-    Podling Project Management Committee (PPMC). We hope that you accept
-    this invitation and continue to help us make Apache linkis better.
-
-    If you'd like to accept, you will need to send an Individual
-    Contributor License Agreement (ICLA) to secretary@apache.org, CCing
-    private@linkis.apache.org, and request an Apache account name as
-    described at http://www.apache.org/dev/new-committers-guide.html if
-    you don’t already have one, once you get an account name, or if you
-    have one already, please email it to me.
-
-    With the expectation of your acceptance, welcome!
-
-    The Apache linkis PPMC
-    ```
-6. 接受邀请后处理:创建Apache帐号并将候选人帐号加入项目。候选人接受邀请后,如果候选人没有apache邮箱帐号,投票发起人需要协助候选人按照指引创建好apache帐号。在签署ICLA时,候选人需要在“notify project:”栏目写上Apache linkis项目名,这样候选人帐号才会被Apache加入对应项目人员名单,如果候选人没有加入项目,投票发起人需要向Mentors申请添加项目组成员,开通apache项目的权限帐号,确认候选人的Apache帐号已加入项目的地址:http://people.apache.org/phonebook.html?podling=linkis .
-
-    
-7. 向社区发布申明邮件:如上步骤都完成后,投票发起人向dev@linkis.apache.org邮件组发通知邮件。如下是通知邮件样例:
-    ```html
-    [ANNOUNCE] New XXXXXX: YYYYY
-
-    Hi everyone,
-
-    The Project Management Committee(PMC) for Apache linkis has invited YYYYY to become a XXXXXX and we are pleased to announce that he has accepted.
-
-    YYYYY is being active in the linkis community, and we are glad to see his more interactions with the community in the future.
-
-    Welcome YYYYY, and please enjoy your journey.:)
-
-    Thanks!
-    ```
-  到此,整个流程才算走完,候选人才正式的成为项目的Committer或者PPMC。
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs-community/current/how-to-vote-a-committer-ppmc.md b/i18n/zh-CN/docusaurus-plugin-content-docs-community/current/how-to-vote-a-committer-ppmc.md
new file mode 100644
index 0000000..63372fc
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs-community/current/how-to-vote-a-committer-ppmc.md
@@ -0,0 +1,273 @@
+---
+title: 如何提名新的Committer 和 PPMC
+sidebar_position: 6
+---
+> 介绍Committer 和 PPMC 的推选要求以及流程。官方指引可参见:https://community.apache.org/newcommitter.html
+
+## 1.候选人要求
+在投票时,所有 PMC 成员都需要自己决定是否应批准候选人成为提交者。可以通过搜索[邮件列表](https://lists.apache.org/list?dev@linkis.apache.org)/[ISSUES/PR](https://github.com/apache/incubator-linkis/issues)/[官网文档贡献](https://github.com/apache/incubator-linkis-website),以了解候选人如何与他人互动,以及他们所做的贡献(代码或文档补丁、建议、参与答疑等)。
+
+以下是在评估候选人的承诺资格时需要考虑的一些要点。
+1. 与社区开发合作的能力?
+   - 通过电子邮件进行的互动
+   - 参与某些群体投票或决策讨论过程
+2. 社区如何评价?
+   - 是否有助于回答邮件列表中提出的问题
+   - 是否表现出乐于助人的态度并尊重他人的想法
+3. 承诺工作内容如何评价?
+   - 按项目任务计划完成任务的情况
+   - 对于棘手的问题处理态度和过程
+   - 如何帮助完成不那么有趣的任务
+4. 个人技能/能力如何评价?
+   - 对项目有扎实的总体了解
+   - 电子邮件中讨论的质量
+   - 他们的补丁(如果适用)是否易于应用,只需粗略的审查
+5. PPMC 的能力要求
+   - 对项目有比较全面的了解
+   - 能够把控项目进度和版本质量
+   - 积极参与/主导社区建设,推动社区健康发展,主动承当项目的责任和治理工作
+   - 积极恢复 ASF 董事会提出的问题,并采取必要的行动
+   - 熟悉 ASF 的版本发布流程
+
+在大多数情况下,新的 PPMC 成员是从 Committer 团队中提名的。但也可以直接成为 PPMC 成员,只要 PPMC 同意提名,并确信候选人已经准备好。例如,这可以通过他/她曾是 Apache 成员、Apache 官员或另一个项目的 PPMC 成员这一事实来证明。
+
+## 2. 推举详细流程
+
+### 2.1 发起社区邮件讨论
+
+>任何linkis的 PPMC 成员都可以发起投票讨论,在 PPMC 发现社区贡献者任何有价值的贡献并取得候选人本人同意后,可以在linkis的private邮件列表发起讨论。讨论邮件里提议者要把候选人的贡献说清楚,并且给出复核对应贡献的地址,便于大家讨论分析。讨论邮件主送private@linkis.apache.org邮箱,讨论将持续至少72个小时,项目组成员,包括mentor们会针对提议邮件充分发表自己的看法。
+
+如下是讨论邮件样例:
+
+```html
+To: private@linkis.apache.org
+Subject: [DISCUSS]  YYYYY as an Linkis XXXXXX candidate
+Content:
+
+Hi all:
+    I nominate YYYYY as an Linkis XXXXXX candidate
+ 
+    Judging from the contributions in recent months, YYYYY has submitted many implementations[1],[2] to the project and improved the management module for the project. During the optimization and improvement period of the project, it is hoped that more people will participate in the actual project optimization and improvement, to let the project more perfect and easier to use.
+  
+    So I nominated YYYYY as XXXXXX of the Linkis project.
+  
+    1. https://github.com/apache/incubator-linkis/issues/created_by/YYYYY 
+    2. https://github.com/apache/incubator-linkis/commits?author=YYYYY 
+    3.....
+Thanks!
+XXXX
+```
+    
+### 2.2 发起社区邮件投票
+>如果讨论邮件在规定时间内没有收到分歧信息,投票发起者需要在linkis的private邮件列表发起Committer或 PPMC 的选举投票。投票邮件主送private@linkis.apache.org,至少持续72小时,至少要3票+1通过;如果有1票-1投票票则整个投票失败;如果发起-1投票,投票人需要把-1的原因说清楚,便于大家理解和知晓。
+
+如下是投票邮件样例:
+```html
+To: private@linkis.apache.org
+Subject: [VOTE] YYYYY as an Linkis XXXXXX candidate
+Content: 
+Hi all:
+    Judging from the contributions in recent months, YYYYY has submitted many implementations[1],[2],[3] to the project and improved the management module for the project. During the optimization and improvement period of the project, it is hoped that more people will participate in the actual project optimization and improvement, to let the project more perfect and easier to use.
+
+    I think making him a XXXXXX will be a recognition of his outstanding work for Linkis. So, I am happy to call VOTE to accept YYYYY as an Linkis XXXXXX.
+  
+    Voting will continue for at least a week or until the required number of votes is reached.
+ 
+    Please vote accordingly:
+    [ ] +1 approve
+    [ ] +0 no opinion
+    [ ] -1 disapprove with the reason  
+   
+    Here are three links to his contributions to Linkis:
+    1. Issues: https://github.com/apache/incubator-linkis/pulls?q=YYYYY
+    2. PRs   : https://github.com/apache/incubator-linkis/issues?q=YYYYY
+
+    3. Others:  https://xxx.com/xxx/xxx/?q=YYYYY
+
+Thanks!
+XXXX
+```
+### 2.3 宣布投票结果
+>投票邮件结束后,投票发起者需要在第二封[VOTE]邮件里提醒投票结束;同时,投票发起者需要发起邮票宣布投票结果,发送至private@linkis.apache.org。
+
+如下投票结果样例:
+```html
+To: private@linkis.apache.org
+Subject: [RESULTS][VOTE] YYYYY as an Linkis XXXXXX
+Content: 
+
+Hi all:
+    The vote for "YYYYY as an Linkis XXXXXX" has PASSED and closed now.
+
+    The result is as follows:
+
+    3 PPMC  +1 Votes
+    - aaa
+    - bbb
+    - ccc
+
+    Vote thread:
+    https://lists.apache.org/thread/aaaaaxxxx
+
+    Then I'm going to invite YYYYY to join us.
+
+    Thanks for everyone's support!   
+Thanks!
+XXXX
+```
+**备注:如果是未通过,结果是 "The vote for "YYYYY as an Linkis XXXXXX" has FAILED and closed now."**
+   
+### 2.4 新增 PPMC 的通知邮件
+>该步骤只针对新的 PPMC 推举流程,如果选举的是Committer,该步跳过不执行。
+>投票发起者需要向board@apache.org邮件组发送知会邮件,并等待至少72小时;
+>邮件发送board@apache.org,抄送private@linkis.apache.org;IPMC们会分析合规性,直到没有异议。
+
+如下是新增推选 PPMC 的通知邮件样例:
+```html
+To: board@apache.org
+Cc: private@seatunnel.apache.org
+Subject:[NOTICE] YYYYY for Linkis PPMC
+Content:
+Hi everyone,
+
+    YYYYY has been voted as a new member of the Linkis PPMC. 
+
+    The vote thread is at:
+    https://lists.apache.org/thread/aaaaaxxxx
+
+Thanks!
+xxxxx
+```
+
+72 小时后,如果董事会不反对提名(大多数情况下不会反对),则可以向候选人发送邀请。
+
+
+### 2.5 向候选人发起邮件邀请 
+>宣布投票结果邮件发出后,投票发起人要给候选人发送邀请邮件。邀请邮件发送被邀请人,抄送private@linkis.apache.org;被邀请的候选人必须通过指定的邮箱地址回复接受或者拒绝该邀请。
+
+如下是邀请候选人邮件样例:以被邀请人Joe Bloggs为例 
+
+```html
+To: JoeBloggs@foo.net
+Cc: private@linkis.apache.org
+Subject: Invitation to become Linkis committer: Joe Bloggs
+    
+Hello [invitee name],
+
+    The Linkis Podling Project Management Committee] (PPMC) 
+    hereby offers you committer privileges to the project 
+    [as well as membership in the PPMC]. These privileges are
+    offered on the understanding that you'll use them
+    reasonably and with common sense. We like to work on trust
+    rather than unnecessary constraints. 
+    
+    Being a committer enables you to more easily make 
+    changes without needing to go through the patch 
+    submission process. [Being a PPMC member enables you 
+    to guide the direction of the project.]
+    
+    Being a committer does not require you to 
+    participate any more than you already do. It does 
+    tend to make one even more committed.  You will 
+    probably find that you spend more time here.
+    
+    Of course, you can decline and instead remain as a 
+    contributor, participating as you do now.
+    
+    A. This personal invitation is a chance for you to 
+    accept or decline in private.  Either way, please 
+    let us know in reply to the [private@linkis.apache.org] 
+    address only.
+    
+    B. If you accept, the next step is to register an iCLA:
+        1. Details of the iCLA and the forms are found 
+        through this link: https://www.apache.org/licenses/#clas
+    
+        2. Instructions for its completion and return to 
+        the Secretary of the ASF are found at
+        https://www.apache.org/licenses/#submitting
+    
+        3. When you transmit the completed iCLA, request 
+        to notify the Apache Linkis(Incubating) and choose a 
+        unique Apache ID. Look to see if your preferred 
+        ID is already taken at 
+        https://people.apache.org/committer-index.html
+        This will allow the Secretary to notify the PPMC 
+        when your iCLA has been recorded.
+    
+    When recording of your iCLA is noted, you will 
+    receive a follow-up message with the next steps for 
+    establishing you as a committer.
+
+    With the expectation of your acceptance, welcome!
+
+The Apache Linkis(Incubating) PPMC
+```
+
+### 2.6 接受邀请流程
+>需要候选人进行处理
+
+新的 Committer 应回复 `private@linkis.apache.org`(选择`reply all`),并表达他/她接受邀请。
+然后,该邀请将被项目的 PPMC 视为已接受。当然,新的 committer 也可以选择拒绝邀请。
+
+一旦邀请被接受,新的提交者必须采取以下步骤:
+- 订阅`dev@seatunnel.apache.org`。通常这已经完成了。
+- 选择一个未被使用过 [apache committers list page](http://people.apache.org/committer-index.html) 的 Apache ID。
+- 下载 [ICLA](https://www.apache.org/licenses/icla.pdf) org/licenses/cla-corporate.pdf)是预期的)。
+- `icla.pdf`(或`ccla.pdf`)填写正确信息后,打印,手写签名,扫描成PDF,作为附件发送至[secretary@apache.org ](邮箱:secretary@apache.org)。 (如果首选电子签名,请按照[此页面](http://www.apache.org/licenses/contributor-agreements.html#submitting)上的步骤操作)
+- PPMC 将等待Apache秘书确认ICLA(或CCLA)备案。新的提交者和 PPMC 将收到以下电子邮件:
+
+详细指引见[开通Apache的github仓库权限](https://docs.qq.com/doc/DVURNYkhMV3llWEhR)
+```html
+Dear XXX,
+
+This message acknowledges receipt of your ICLA, which has been filed in the Apache Software Foundation records.
+
+Your account has been requested for you and you should receive email with next steps
+within the next few days (can take up to a week).
+
+Please refer to https://www.apache.org/foundation/how-it-works.html#developers
+for more information about roles at Apache.
+```
+
+万一该帐户未被处理,PPMC 成员应联系项目[Apache Incubator的VP](https://www.apache.org/foundation/), 可以通过 [Apache Account Submission Helper Form](https://whimsy.apache.org/officers/acreq) 请求。
+
+几天后,新的提交者将收到一封确认帐户创建的电子邮件,标题为`Welcome to the Apache Software Foundation (ASF)!`。
+
+PPMC 成员应通过 [Roster](https://whimsy.apache.org/roster/committee/linkis) 将新的提交者添加到官方提交者列表中。
+
+### 2.7 设置 Apache ID 和开发环境
+>需要候选人进行处理
+
+- 进入【Apache Account Utility Platform】(https://id.apache.org/),创建密码,设置个人邮箱(`转发邮箱地址`)和GitHub账号(`Your GitHub Username`)。此后不久(2 小时内)将通过电子邮件向您发送组织邀请。
+- 如果您想使用`xxx@apache.org`邮件服务,请参考[这里](https://infra.apache.org/committer-email.html)。推荐使用 Gmail,因为这种转发模式在大多数邮箱服务设置中都不容易找到。
+- 关注【授权GitHub 2FA wiki】(https://help.github.com/articles/configuring-two-factor-authentication-via-a-totp-mobile-app/) 开启双因素授权(2FA ) 在 [Github](http://github.com/) 上。当您将 2FA 设置为“关闭”时,它将被相应的 Apache committer 写入权限组除名,直到您再次设置它。 (**注意:像对待密码一样注意恢复代码!**)
+- 使用【GitBox Account Linking Utility】(https://gitbox.apache.org/setup/)获取Linkis项目的写权限。
+- [linkis-website](https://linkis.apache.org/team)相关页面更新
+
+如果您想在 Apache GitHub 组织中公开露面,您需要前往 [Apache GitHub 人员页面](https://github.com/orgs/apache/people),
+搜索自己,然后选择`Organization visibility`为`Public`。
+
+   
+## 3 发布公告邮件
+>如上步骤都完成后,投票发起人向dev@linkis.apache.org邮件组发通知邮件。
+
+如下是通知邮件样例:
+```html
+To: private@linkis.apache.org
+Subject: [ANNOUNCE] New XXXXXX: YYYYY
+Content: 
+Hi all:
+    Hi everyone,
+
+    The Project Management Committee(PMC) for Apache Linkis has invited YYYYY to become a XXXXXX and we are pleased to announce that he has accepted.
+
+    YYYYY is being active in the Linkis community, and we are glad to see his more interactions with the community in the future.
+
+    Welcome YYYYY, and please enjoy your journey.:)
+
+Thanks!
+The Apache Linkis(Incubating) PPMC
+```
+   
+到此,整个流程才算走完,候选人才正式的成为项目的Committer或者PPMC。

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@linkis.apache.org
For additional commands, e-mail: commits-help@linkis.apache.org