<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Contributor 指南 on Apache Dubbo</title><link>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/contact/contributor/</link><description>Recent content in Contributor 指南 on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://deploy-preview-3199--dubbo.netlify.app/zh-cn/contact/contributor/index.xml" rel="self" type="application/rss+xml"/><item><title>如何成为 Dubbo Committer</title><link>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/contact/contributor/become-a-committer_dev/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/contact/contributor/become-a-committer_dev/</guid><description>&lt;p>每个人都可以成为 Apache 项目的贡献者。作为一个贡献者只是意味着你对项目感兴趣并以某种方式做出贡献，从提出合理的问题（这些问题记录了项目并向开发人员提供反馈）到提供新的特性作为补丁。&lt;/p>
&lt;p>如果你成为对一个项目有价值的贡献者，你有可能被邀请成为一个 Committer。Committer 是 ASF（Apache 软件基金会）中用来表示提交特定项目的人的术语。它给你带来对项目仓库和资源写的权限。&lt;/p>
&lt;p>在 Dubbo 社区，如果一个 Committer 获得大量的优秀成绩，就可以被邀请加入项目管理委员会（PMC）。&lt;/p>
&lt;p>当您不熟悉ASF使用的开源的开发过程时，有时难以理解的一点，就是我们更重视社区而不是代码。一个强大而健康的社区将受到尊重，成为一个有趣和有益的地方。更重要的是，一个多元化和健康的社区可以长时间的持续支持代码，即使个别公司在这个领域来来往往，也是如此。&lt;/p>
&lt;p>更多详细信息可以在 &lt;a href="https://community.apache.org/contributors/">这里&lt;/a> 找到。&lt;/p>
&lt;h3 id="我可以贡献什么">我可以贡献什么？&lt;/h3>
&lt;p>请参阅&lt;a href="../new-contributor-guide_dev/">新的贡献者指南&lt;/a>。&lt;/p></description></item><item><title>新贡献者向导</title><link>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/contact/contributor/new-contributor-guide_dev/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/contact/contributor/new-contributor-guide_dev/</guid><description>&lt;p>这篇向导旨在给正在准备向 Dubbo 提交贡献的新手提供指导。&lt;/p>
&lt;h3 id="邮件列表描述">邮件列表描述&lt;/h3>
&lt;p>邮件列表是 Dubbo 官方推荐的讨论方式，所有与 Dubbo 相关的内容都可以在这里讨论，请点击 &lt;a href="https://github.com/apache/dubbo/issues/1393">Issue&lt;/a> 了解更多关于邮件列表订阅的内容&lt;/p>
&lt;p>如需订阅如下邮件列表，请参考 &lt;a href="../mailing-list-subscription-guide_dev">邮件列表订阅向导&lt;/a>&lt;/p>
&lt;ul>
&lt;li>&lt;a href="mailto:dev@dubbo.apache.org">dev@dubbo.apache.org&lt;/a>：开发邮件列表，您在使用或者开发 Dubbo 的过程中遇到的任何问题，都可以在这里进行提问。&lt;/li>
&lt;li>&lt;a href="mailto:commits@dubbo.apache.org">commits@dubbo.apache.org&lt;/a>：所有的提交内容都会推送到这个邮件列表，如果您对 Dubbo 的进展感兴趣，可以订阅这个邮件列表。&lt;/li>
&lt;li>&lt;a href="mailto:issues@dubbo.apache.org">issues@dubbo.apache.org&lt;/a>：所有的 &lt;a href="https://issues.apache.org/jira/projects/DUBBO/issues">JIRA Issues&lt;/a> 和修改信息都会推送到这个邮件列表。Dubbo 社区已经决定使用 GitHub Issues 代替 JIRA Issues，因此大部分 Issues 将由 GitHub Issues 进行跟踪。JIRA Issues 用于跟踪 ASF 相关问题。&lt;/li>
&lt;/ul>
&lt;h3 id="报告问题">报告问题&lt;/h3>
&lt;ul>
&lt;li>非安全问题直接在 GitHub Issue 中提出，另请参考 &lt;a href="https://github.com/apache/dubbo/blob/master/.github/ISSUE_TEMPLATE/dubbo-issue-report-template.md">Issue Template&lt;/a> 。&lt;/li>
&lt;li>安全问题请参考 &lt;a href="../reporting-security-issues_dev">“反馈漏洞”&lt;/a> 。&lt;/li>
&lt;/ul>
&lt;h3 id="贡献代码流程">贡献代码流程&lt;/h3>
&lt;p>此贡献流程适用于所有的 Apache Dubbo 社区内容，包括但不限于 dubbo（主干仓库）、dubbo-admin、dubbo-website。&lt;/p>
&lt;p>以下以贡献 dubbo （主干仓库） 为例，详细说明贡献流程。&lt;/p>
&lt;h4 id="1-fork-apachedubbo-项目到您的-github-帐号下">1. &lt;strong>Fork apache/dubbo 项目到您的 GitHub 帐号下&lt;/strong>&lt;/h4>
&lt;h4 id="2-克隆您-fork-的-dubbo-代码仓库到您本地">2. &lt;strong>克隆您 Fork 的 Dubbo 代码仓库到您本地&lt;/strong>&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>git clone &lt;span style="color:#2aa198">${&lt;/span>&lt;span style="color:#268bd2">your&lt;/span> fork dubbo repo address，for example：https://github.com/&lt;span style="color:#2aa198">${&lt;/span>&lt;span style="color:#268bd2">your&lt;/span> github id&lt;span style="color:#2aa198">}&lt;/span>/dubbo.git&lt;span style="color:#2aa198">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#b58900">cd&lt;/span> dubbo
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="3-添加-apachedubbo-仓库为-upstream-仓库">3. &lt;strong>添加 apache/dubbo 仓库为 upstream 仓库&lt;/strong>&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>git remote add upstream https://github.com/apache/dubbo.git
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>git remote -v
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> origin &lt;span style="color:#2aa198">${&lt;/span>&lt;span style="color:#268bd2">your&lt;/span> fork dubbo repo address&lt;span style="color:#2aa198">}&lt;/span> &lt;span style="color:#719e07">(&lt;/span>fetch&lt;span style="color:#719e07">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> origin &lt;span style="color:#2aa198">${&lt;/span>&lt;span style="color:#268bd2">your&lt;/span> fork dubbo repo address&lt;span style="color:#2aa198">}&lt;/span> &lt;span style="color:#719e07">(&lt;/span>push&lt;span style="color:#719e07">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> upstream https://github.com/apache/dubbo.git &lt;span style="color:#719e07">(&lt;/span>fetch&lt;span style="color:#719e07">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> upstream https://github.com/apache/dubbo.git &lt;span style="color:#719e07">(&lt;/span>push&lt;span style="color:#719e07">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>git fetch origin
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>git fetch upstream
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h4 id="4-我们的工作以-issue-为驱动认领个-issue或者创建一个-issue-并描述清楚要做什么">4. &lt;strong>我们的工作以 Issue 为驱动，认领个 Issue，或者创建一个 Issue 并描述清楚要做什么。&lt;/strong>&lt;/h4>
&lt;p>新人推荐标记为： &lt;code>good first issue&lt;/code> 的 Issue&lt;/p></description></item><item><title>邮件列表订阅向导</title><link>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/contact/contributor/mailing-list-subscription-guide_dev/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/contact/contributor/mailing-list-subscription-guide_dev/</guid><description>&lt;p>Apache incubator 的 Dubbo 开发者邮件列表（dev@dubbo.apache.org）已经建立，请随时订阅并参考[^1]获取更多细节。&lt;/p>
&lt;p>你也可以直接查看&lt;a href="https://lists.apache.org/list.html?dev@dubbo.apache.org">历史邮件&lt;/a>&lt;/p>
&lt;p>下面是一个关于 Dubbo 邮件列表订阅的简短指南：&lt;/p>
&lt;ol>
&lt;li>发一封邮件到 &lt;a href="mailto:dev-subscribe@dubbo.apache.org">dev-subscribe@dubbo.apache.org&lt;/a>，其内容和标题均可为空。随后，您会收到一封邮件，其内容如下：&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>from: dev-help@dubbo.apache.org
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>reply-to: dev-sc.xxxxxxx.xxxxxxxx-hello=example.com@dubbo.apache.org
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>to: hello@example.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>date: Sat, Feb 24, 2018 at 3:12 PM
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>subject: confirm subscribe to dev@dubbo.apache.org
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mailed-by: apache.org
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Hi! This is the ezmlm program. I&amp;#39;m managing the
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>dev@dubbo.apache.org mailing list.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>I&amp;#39;m working for my owner, who can be reached
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at dev-owner@dubbo.apache.org.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>To confirm that you would like
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> hello@example.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>added to the dev mailing list, please send
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>a short reply to this address:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> dev-sc.xxxxxxx.xxxxxxxx-hello=example.com@dubbo.apache.org
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Usually, this happens when you just hit the &amp;#34;reply&amp;#34; button.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>If this does not work, simply copy the address and paste it into
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>the &amp;#34;To:&amp;#34; field of a new message.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>or click here:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> mailto:dev-sc.xxxxxxx.xxxxxxxx-hello=example.com@dubbo.apache.org
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>...
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ol start="2">
&lt;li>直接回复邮件，其内容和标题仍然可以为空，随后，您将再次收到一封邮件，其内容如下：&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>from: dev-help@dubbo.apache.org
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>to: hello@example.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>date: Sat, Feb 24, 2018 at 3:14 PM
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>subject: WELCOME to dev@dubbo.apache.org
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mailed-by: apache.org
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Hi! This is the ezmlm program. I&amp;#39;m managing the
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>dev@dubbo.apache.org mailing list.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>I&amp;#39;m working for my owner, who can be reached
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>at dev-owner@dubbo.apache.org.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Acknowledgment: I have added the address
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> hello@example.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>to the dev mailing list.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Welcome to dev@dubbo.apache.org!
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Please save this message so that you know the address you are
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>subscribed under, in case you later want to unsubscribe or change your
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>subscription address.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>...
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ol start="3">
&lt;li>
&lt;p>到此，邮件列表订阅完毕，从现在开始，您将收到很多发送到该邮件列表的邮件，如果您有更多的问题，只需发送邮件到dev@dubbo.apache.org，就会有人回答您的问题。&lt;/p></description></item><item><title>报告安全问题</title><link>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/contact/contributor/reporting-security-issues_dev/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/contact/contributor/reporting-security-issues_dev/</guid><description>&lt;p>Apache Software Foundation 在消除其软件项目中的安全性问题方面采取严格的立场。Apache Dubbo 对与其功能和特性有关的问题非常敏感并很快提出。&lt;/p>
&lt;h2 id="报告漏洞">报告漏洞&lt;/h2>
&lt;p>如果您对 Dubbo 的安全性有担心，或者发现漏洞或潜在威胁，请发送电子邮件至 &lt;a href="mailto:security@dubbo.apache.org">security@dubbo.apache.org&lt;/a> 与 Apache Dubbo 安全团队联系。在邮件中，指定问题或潜在威胁的描述。还敦促您推荐重现和复制问题的方法。Dubbo 社区会在评估和分析调查结果之后与您联系。&lt;/p>
&lt;p>请先注意在安全电子邮件中报告安全问题，然后再在公共领域公开该问题。&lt;/p>
&lt;h2 id="漏洞处理">漏洞处理&lt;/h2>
&lt;p>漏洞处理过程的概述是：&lt;/p>
&lt;ul>
&lt;li>报告者将漏洞秘密报告给 Apache。&lt;/li>
&lt;li>相应项目的安全团队与报告者私下合作来解决漏洞。&lt;/li>
&lt;li>制作了包含该修复程序的有关 Apache 产品的新版本。&lt;/li>
&lt;li>该漏洞已公开宣布。&lt;/li>
&lt;/ul>
&lt;p>有关此过程的详细说明，请参见&lt;a href="https://www.apache.org/security/committers.html">此处&lt;/a>&lt;/p></description></item><item><title>软件捐献向导</title><link>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/contact/contributor/software-donation-guide_dev/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/contact/contributor/software-donation-guide_dev/</guid><description>&lt;p>在您阅读这篇指南之前，请确保您已经向PMC确认了实际需要的 SGA。&lt;/p>
&lt;p>如果您向 Apache Dubbo 捐赠了大量的代码或文档，则需要在合并代码或者文档之前签署&lt;a href="https://www.apache.org/licenses/#grants">软件授权书&lt;/a>。&lt;/p>
&lt;h3 id="操作步骤">操作步骤&lt;/h3>
&lt;ol>
&lt;li>下载这篇&lt;a href="https://www.apache.org/licenses/software-grant-template.pdf">pdf文档&lt;/a>&lt;/li>
&lt;li>打印下载好的文档&lt;/li>
&lt;li>按要求填充表格（请看下边示例）&lt;/li>
&lt;li>请您的领导在上边签字&lt;/li>
&lt;li>扫描&lt;/li>
&lt;li>将扫描好的文档以邮件的方式发送给secretary@apache.org，并抄送给private@dubbo.apache.org&lt;/li>
&lt;/ol>
&lt;h3 id="示例">示例&lt;/h3>
&lt;p>下边是一个文本示例，原始文本可以在&lt;a href="https://www.apache.org/licenses/software-grant.txt">这里&lt;/a>找到&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>License Agreement
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> This License Agreement is entered into as of the _12th_ day of
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>___April____, __2018__ by ___ABC Software Co., Ltd.____ (&amp;#34;Licensor&amp;#34;),
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>in favor of The Apache Software Foundation, a Delaware nonstock
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>membership corporation (the &amp;#34;Foundation&amp;#34;).
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> WHEREAS, Licensor owns or has sufficient rights to contribute the
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>software source code and other related intellectual property as
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>itemized on Exhibit A (&amp;#34;Software&amp;#34;) under the terms of this agreement
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>to the Foundation for use within Foundation software development
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>projects (&amp;#34;Projects&amp;#34;).
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> NOW, THEREFORE, FOR GOOD AND VALUABLE CONSIDERATION, the receipt
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>and legal sufficiency of which are hereby acknowledged, the parties
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>hereto, intending to be legally bound, agree as follows:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>1. Subject to the terms and conditions of this License, Licensor
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>hereby grants to the Foundation:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> a) a non-exclusive, worldwide, royalty-free, irrevocable
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> copyright license to reproduce, prepare derivative works of,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> publicly display, publicly perform, distribute and sublicense,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> internally and externally, the Software and such derivative
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> works, in source code and object code form; and,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> b) a non-exclusive, worldwide, royalty-free, irrevocable
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> patent license under Licensed Patents to make, use, sell,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> offer to sell, import and otherwise transfer the Software
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> in source code and object code form. &amp;#34;Licensed Patents&amp;#34; mean
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> patent claims owned by Licensor which are necessarily
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> infringed by the use or sale of the Software alone.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2. Licensor represents that, to Licensor&amp;#39;s knowledge, Licensor is
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>legally entitled to grant the above license. Licensor agrees to notify
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>the Foundation of any facts or circumstances of which Licensor becomes
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>aware and which makes or would make Licensor&amp;#39;s representations in this
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>License Agreement inaccurate in any respect.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>3. This Software is provided AS-IS, WITHOUT WARRANTIES OR CONDITIONS
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>OR FITNESS FOR A PARTICULAR PURPOSE. NEITHER THE LICENSOR NOR ITS
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>SUPPLIERS WILL BE LIABLE TO THE FOUNDATION OR ITS LICENSEES FOR ANY
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>THE USE OR DISTRIBUTION OF THE WORK OR THE EXERCISE OF ANY RIGHTS
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>This License Agreement is the entire agreement of the parties
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>with respect to its subject matter, and may only be amended by a
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>writing signed by each party. This License Agreement may be
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>executed in one or more counterparts, each of which shall be
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>considered an original.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> IN WITNESS WHEREOF, Licensor has executed this License Agreement
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>as of the date first written above.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> LICENSOR:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Signed By: _____________________________________ &amp;lt;--- Your boss&amp;#39;s sign here
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Print Name: _____Lei Li_________________________ &amp;lt;--- Your boss&amp;#39;s name here
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Title: ____Director_____________________________ &amp;lt;--- Your boss&amp;#39;s title here
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Representing: ____ABC Software Co., Ltd. _______ 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ________________________________________________
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Contact Name: ____Lei Li________________________ &amp;lt;--- Your boss&amp;#39;s name here
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Contact Email: ____lilei@abc.com________________ &amp;lt;--- Your boss&amp;#39;s email here
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Exhibit A
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>List of software and other intellectual property covered by this agreement:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>* Github address where your code is hosted
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>* Pull request link
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>扩展 Dubbo 向导</title><link>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/contact/contributor/dubbo-extension-guide_dev/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/contact/contributor/dubbo-extension-guide_dev/</guid><description>&lt;p>Dubbo 使用微内核+插件的设计模式。内核只负责组装插件，Dubbo 的功能都是由扩展点（插件）实现，这就意味着 Dubbo 的所有功能都可以被用户定制的扩展所替代。&lt;/p>
&lt;h3 id="dubbo-生态系统">Dubbo 生态系统&lt;/h3>
&lt;p>我们建议您将扩展加入到 Dubbo 生态系统。使用这种模式，可以使 Dubbo 的核心仓库更干净，并且可以减少维护工作。更少的代码也可以提高核心仓库的构建速度。&lt;/p>
&lt;h3 id="依赖">依赖&lt;/h3>
&lt;p>要实现您自己的 Dubbo 扩展，通常只需依赖 API jar 就可以满足您的需求。例如：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">&amp;lt;dependency&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;groupId&amp;gt;&lt;/span>org.apache.dubbo&lt;span style="color:#268bd2">&amp;lt;/groupId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;artifactId&amp;gt;&lt;/span>dubbo-serialization-api&lt;span style="color:#268bd2">&amp;lt;/artifactId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#268bd2">&amp;lt;version&amp;gt;&lt;/span>${dubbo.version}&lt;span style="color:#268bd2">&amp;lt;/version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#268bd2">&amp;lt;/dependency&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="src指导">Src指导&lt;/h3>
&lt;p>通常，要实现特殊的扩展，只需要参考&lt;a href="../new-contributor-guide_dev">开发者指南&lt;/a>，实现Dubbo必要的接口和合适的扩展即可。除此之外，还有一些其它的事项需要注意：&lt;/p>
&lt;ol>
&lt;li>良好的测试，您需要编写单元测试和冒烟测试以消除潜在的 bug。&lt;/li>
&lt;li>没有警告，如有不可避免的警告，请使用 @SuppressWarnings 阻止它，但是请不要乱用。&lt;/li>
&lt;li>README。添加必要的自述以说明如何使用扩展，以及需要注意的事项。&lt;/li>
&lt;li>许可证：请确保使用Apache License 2.0。&lt;/li>
&lt;/ol>
&lt;h3 id="通知社区">通知社区&lt;/h3>
&lt;ol>
&lt;li>提交您的代码到 &lt;a href="https://github.com">github&lt;/a>。&lt;/li>
&lt;li>加入邮件列表（建议）。点击&lt;a href="https://github.com/apache/dubbo/wiki/Mailing-list-subscription-guide">这里&lt;/a>查看如何加入邮件列表。&lt;/li>
&lt;li>发送一封邮件到 &lt;a href="mailto:dev@incubator.dubbo.apache.org">dev@incubator.dubbo.apache.org&lt;/a> 通知社区。&lt;/li>
&lt;li>通常，发送邮件之后，社区会对您的扩展进行讨论，dubbo 组的管理员会联系您转移您的项目到 dubbo 生态系统。&lt;/li>
&lt;/ol>
&lt;h3 id="转移项目到dubbo生态系统">转移项目到dubbo生态系统&lt;/h3>
&lt;ol>
&lt;li>dubbo 组的管理员会请您将您的项目的所有者转让给 dubbo。&lt;/li>
&lt;li>dubbo 组的管理员会在 dubbo 组下新建一个项目并邀请您加入到这个项目。&lt;/li>
&lt;li>一旦您接受邀请，您可以将您的项目转移到 dubbo 组下的新项目里。&lt;/li>
&lt;li>dubbo 组的成员会对您的项目进行代码审查。随后，您可以对这些代码进行改进。&lt;/li>
&lt;/ol></description></item><item><title>测试覆盖率向导</title><link>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/contact/contributor/test-coverage-guide_dev/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/contact/contributor/test-coverage-guide_dev/</guid><description>&lt;h3 id="写单元测试的收益">写单元测试的收益&lt;/h3>
&lt;ul>
&lt;li>单元测试能帮助每个人深入代码细节，了解代码的功能。&lt;/li>
&lt;li>通过测试用例我们能发现bug，并提交代码的健壮性。&lt;/li>
&lt;li>测试用例同时也是代码的demo用法。&lt;/li>
&lt;/ul>
&lt;h3 id="单元测试用例的一些设计原则">单元测试用例的一些设计原则&lt;/h3>
&lt;ul>
&lt;li>应该精心设计好步骤，颗粒度和组合条件。&lt;/li>
&lt;li>注意边界条件。&lt;/li>
&lt;li>单元测试也应该好好设计，不要写无用的代码。&lt;/li>
&lt;li>当你发现一个&lt;code>方法&lt;/code>很难写单元测试时，如果可以确认这个&lt;code>方法&lt;/code>是&lt;code>臭代码&lt;/code>，那么就和开发者一起重构它。&lt;/li>
&lt;li>Dubbo中用的mock框架是: &lt;a href="http://site.mockito.org/">mockito&lt;/a>. 下面是一些开发向导:&lt;a href="https://www.baeldung.com/bdd-mockito">mockito tutorial&lt;/a>,&lt;a href="https://site.mockito.org/">mockito refcard&lt;/a>&lt;/li>
&lt;li>TDD（可选）：当你开始写一个新的功能时，你可以试着先写测试用例。&lt;/li>
&lt;/ul>
&lt;h3 id="测试覆盖率设定值">测试覆盖率设定值&lt;/h3>
&lt;ul>
&lt;li>在现阶段，Delta更改代码的测试覆盖设定值为：&amp;gt;＝60%，越高越好。&lt;/li>
&lt;li>我们可以在这个页面中看到测试报告: &lt;a href="https://codecov.io/gh/apache/dubbo">https://codecov.io/gh/apache/dubbo&lt;/a>&lt;/li>
&lt;/ul></description></item></channel></rss>