On this page
对 Apache Shiro 的贡献
Introduction
Shiro 项目是Open Source志愿者项目,在非常宽松的许可证下发布。这意味着可以通过多种方式为项目做出贡献-通过直接参与(编码,文档编制,回答问题,提出想法,报告错误,建议错误修复等)或通过资源捐赠(工作人员时间,会议演示,宣传,软件),甚至是通用硬件/金钱donations(通过Apache 软件基金会)。
首先,我们建议您订阅Shiro 邮件列表(单击链接以获取有关如何订阅和访问邮件列表 Files 的信息)。听一会儿,听听别人如何做出贡献。
您可以按照我们Download页面上的说明获取最新最好的代码的本地工作副本。查看issue tracker中的“待办事项”列表,然后选择您感兴趣的任务。也许您已经注意到某些需要修补的功能,或者具有新功能可以做出贡献。进行更改,进行测试,生成补丁并在开发邮件列表上进行讨论。 (不用担心,该过程很简单,下面将对其进行说明.)
文档编写者通常是最想要的人,因此,如果您想提供帮助,但是对最内在的技术细节不熟悉,请不要担心:您仍然可以提供极大的帮助!
此处需要帮助
通过在以下任一领域提供额外帮助,您将为您带来巨大的帮助:
协助改善文档和网站。
在各种配置上测试 Shiro(尤其是其较少使用的功能)并进行报告。
“ shiro-sample”的新示例可以简洁地描述和演示功能。这样的 samples 还可以实现自动化测试。
调试-产生可重现的测试用例和/或查找错误原因。大多数错误都记录为问题(请参见explanation below)。
提供新的用例和要求。如果您认为 Shiro 不能完全满足您的需求,请在邮件列表中告诉我们。
指定/分析/设计新功能-以及其他。如果您希望进一步参与此工作,请加入shiro-dev 邮件列表,安装并试用 Shiro 并阅读一些mail archives。您应该具有一定的安全技术 Fluent 程度,一些 Java 和 Maven 技能以及对 Shiro 架构的基本理解-不要仅仅在没有先阅读任何内容的前提下说“它应该具有 XYZ”-因为机会是,有人已经想到了该功能!)
包装易于安装的程序包(例如 RPM),以获取各种可能的配置。 (该项目除了基本的.zip 和.tar.gz 软件包以外,不保留其他任何内容,但是欢迎任何人构建自己的特定软件包,并在 forrest-dev 列表中宣布它们)
……还有一件事-不要忘了告诉所有询问的人 Shiro 有多棒!了解和开始使用 Shiro 的人越多,潜在贡献者的人数就越大。
报告错误和问题的步骤以及增强建议
如果您认为已发现错误或有改进建议,请在mailing lists之一上进行讨论。但是,请先检查我们的issue tracker,因为它可能已经被举报了。
Apache Shiro 问题跟踪器整理了我们的已知问题。显然,并非每个问题都在此处列出。邮件列表中已讨论了一些问题,但尚未记录问题。
Route 图是获得概述的最佳方法。未计划的列表也需要定期检查,提交者将为下一个版本计划一些计划。
创建新期刊时,请提供简洁的摘要标题和简短说明。将更多信息添加为 Comments,并包括指向邮件 Files 的链接。正常过程是在邮件列表上讨论问题,然后将相关 Comments 添加到问题跟踪器,否则它会变得混乱。
Git Usage
有关如何使用 Git 参与 Shiro 开发的概述。不必担心-您不能无意中破坏实际的代码存储库,因为您以匿名用户的身份使用本地副本。因此,您没有更改任何系统权限。您只能更新本地存储库,并将您的修订与真实存储库进行比较。 Download Shiro页说明了如何签出代码库并构建本地副本。
Git Committers
在开发人员持续提供贡献(代码,文档和讨论)并证明了其承诺之后,其他开发社区可以投票授予该开发人员对 Git 存储库的提交访问权限。请参见ASF 开发人员资源,尤其是源代码存储库。
提出开发问题的步骤
有两种讨论开发和提交补丁的方法。为了使每个人都能有所作为,重要的是要知道哪种方法适合特定情况,以及如何避免混乱。本节说明何时使用开发人员mailing list和issue tracker。
在开始讨论新的开发问题之前,请彻底研究主题。搜索和浏览电子邮件存档-您的问题以前可能已经讨论过。简洁明了地准备您的post。
大多数问题将被发现,解决,然后通过开发者邮件列表快速修补。较大的问题,以及尚未完全理解或难以解决的问题,将注定要用于问题跟踪器。
有经验的开发人员可以直接使用问题跟踪器,因为他们非常确定何时发现错误,何时不发现错误。但是,经验不足的用户应首先在用户或开发人员邮件列表(适当时)上进行讨论。急躁的人总是在不关心 Shiro 的错误或他们自己的安装/配置错误的情况下将所有内容 Importing 到问题跟踪器中-请不要这样做。
作为一个经验法则,首先在开发人员邮件列表上讨论一个问题,以解决所有问题。在确认它是值得的并且您很清楚之后,然后通过“错误跟踪”提交错误描述或补丁。
也许您的第一个答复没有得到任何答案,所以只需再次发布,直到得到答案为止。 (但请不要每隔一个小时-请 await 几天,以便处理该列表.)请记住,其他国家/地区会在您所在国家/地区的不同时间放假,并且它们在不同的时区。您也可以考虑重写您的初始发布。邮件列表上的 Reader 可能还不清楚。
作为非提交者进行贡献
如果您是 Apache 项目的提交者,则意味着您可以直接提交到项目的存储库。例如,使用 Apache Shiro 提交者被允许直接将提交推入 git 存储库。
但是,非提交者必须提交补丁进行审查。 Apache Shiro 接受 GitHub 拉取请求。如果您不熟悉 Git 和 GitHub,请检查以下两个链接:
Apache Shiro 在 GitHub 上具有只读镜像,该镜像与 Apache Software Foundation 维护的规范 Git 存储库保持同步。提交 GitHub 拉取请求是向上游捐款的最简单方法。有关详细说明,请参见下面的链接:
通过 JIRA 提交补丁
虽然我们鼓励您通过 GitHub 拉取请求提交贡献,但您也可以在 JIRA 票证中附加一个补丁。出于这些说明的目的,我们假设您已经拥有一个使用 Git 的系统,并且已找到要修复的错误或要提交的功能,并且愿意在以下位置提供该代码或文档。 Apache 许可 2.0.
此外,如果您要修复错误,我们将假定您已提交了错误报告(您将在其中附加补丁程序)或正在提交已知错误的修复程序。如果您发现错误并想修复它,那就太好了!不过,请务必也提交错误。
如果要添加功能,则应在实现之前在dev@shiro.apache.org邮件列表中进行讨论。这样可以确保它与其他贡献者为 Apache Shiro 制定的计划相吻合,并且您不会做多余的工作。其他开发人员也可能对功能有想法,或者有建议,这些功能可以帮助您无需重新进行工作就可以使用该功能。有关我们的邮件列表的更多信息,请参见此处。
简而言之,交流是对 Apache 项目做出贡献的重要组成部分。
Getting Started
首先,请确保已将姓名和电子邮件添加到~/.gitconfig
:
$ git config --global user.name "Your Name"
$ git config --global user.email you@domain.com
您将使用 git 获取 Shiro 源代码:
$ git clone https://gitbox.apache.org/repos/asf/shiro.git
如果您已经拥有源代码,请确保您使用的是最新版本。如果您在几个小时之前克隆了源,请执行git pull
。 (Apache Shiro 开发可以快速进行!)
$ git checkout -b mybranch
这有两件事:一是创建分支 mybranch,二是将工作分支更改为 mybranch。运行git branch
将显示您正在处理的分支,活动分支旁边带有一个星号,如下所示:
[user@localhost shiro]$ git branch
master
* mybranch
进行任何更改,请确保使用 git add 进行更改,然后将更改提交到工作分支:
git commit -m "Insert a meaningful summary of changes here."
最后,您可以创建补丁并将其附加到针对要修复的错误而创建的 JIRA 问题上。
git format-patch master --stdout > ~/patch-name.patch
Review
提交拉取请求后,您将在几天内收到答复。如果一周内未收到任何答复,请 ping shiro-dev 邮件列表(dev@shiro.apache.org) .html)。
贡献说明和技巧
这是一些技巧的集合,这些技巧可以以对各方都有帮助的方式为项目做出贡献。
参见一般 ASF 给电子邮件贡献者的提示
没有愚蠢的问题。始终检查archives,看看是否有人首先问过它,也许已经收到了答案。
每一项贡献都是值得的。即使代码不是完美的。即使文档有错别字。即使您第一次遇到错误。任何贡献都是特殊事物的开始。通过您的不断努力和社区的帮助,您的贡献将不断 Developing,并越来越接近“完美”。
使用简洁明了的电子邮件主题标题。搜索引擎,以及试图浏览大量列表的人员,将对描述性标题做出积极响应。
使用新主题开始新主题的新主题,而不是重用先前的主题行。
保持每个主题的重点。如果出现一些新的 Topic,请开始新的讨论。这使原始主题得以 continue 整理。
每当您决定开始一个新主题时,就从一个新的新电子邮件窗口开始。不要使用“回复”按钮,因为线程邮件阅读器会感到困惑(它们利用了“回复”标题)。如果是这样,那么您的新主题将在上一个主题中丢失并且无法回答。适当时,在电子邮件主题行前添加一个标记,例如[提案],[RT](迅速 Developing 成为研究主题的[Random Thought],STATUS。
请记住,大多数人都是在志愿者的基础上并在其“业余时间”参与开发的。这些爱好者将尝试回应问题。可能需要一些时间才能获得答案。
在开始讨论新的开发问题之前,请彻底研究主题。搜索和浏览电子邮件存档-您的问题以前可能已经讨论过。不要只是感知到一个问题,然后匆匆提出一个问题-而是钻研。
尝试至少提供部分解决方案,而不仅仅是问题 Statements。
花时间清楚地解释您的问题并撰写简洁的电子邮件。较少的混乱有助于快速而完整的解决方案。
不要费心发送一封简单的电子邮件,说“谢谢”。解决问题后,即结束-线程结束。减少混乱。
您通常会针对 Git 中的 master 分支进行任何开发工作。
发送补丁程序时,通常不必担心应该将其应用于哪个 Git 分支。存储库的维护者将决定。
将所有与项目相关的讨论都保留在邮件列表中。最好是利用更多的受众,而不是分成私人讨论组。您永远都不知道还有谁能解决您的问题,反正其他人对结果感兴趣。
熟悉邮件列表。当您浏览和搜索时,您将看到其他人做事的方式。遵循主要示例。