100 PaperCuts

Project Goal

100 Paper Cuts程序的作用是识别和修复Liferay Portal中高频率的和易于修复的漏洞。它是由广泛的Liferay社区承载,经志愿者们的识别,排序,分配来解决问题。




1. 识别问题。 社区鼓励成员为最想解决的问题投票。这样Liferay社区经理就可以根据成员的反馈 来安排解决问题的主次。对于100 PaperCuts程序来说,投票就更加重要。对于高频率出现的漏洞和易于修复的漏洞,我们都使用相同的投票系统。100 PaperCuts程序开始的一段时间鼓励投票。如果您想为问题投票,请阅读投票方法

2. 分配和修复。约有10个问题会在两周内被选择,并根据他们的作用和影响进行修复。我们针对那些修复事件不超过1个开发日的漏洞。这一时期被称为"社区进度",并显示相关问题的修复时间。进度时期结束之后,我们会重复这个过程。

3. 跟踪进度。在修复期间和修复结束的时我们都会对问题修复的进展进行跟踪,直到问题被与一个或多个版本的Liferay合并。

Fixing Issues

The Community Contribute page documents how to contribute to Liferay.  For the 100 PC program, contributions are in the form of bug fixes.  The goal of the program is to get the bug into the Community Resolved state.  Once in this state, Liferay staff take over to shephard the fix into the source base.  For more information on development and bugfixing on Liferay, see the following resources:

To fix a papercut:

1. Make sure you have an account on issues.liferay.com. If you do not, sign up for one (it's free!).

2. Browse the list of open issues.  For any issue you feel is a papercut, regardless of whether or not you want to personally work on it, you should mark the issue by adding the following text in a comment on the issue: "This issue is a backlog candidate for the 100 PaperCuts program. Please consider participating! See http://liferay.com/community/100-papercuts".

3. Select an issue from the backlog to work on for a given sprint.

4. Read and understand the issue you want to work on.  Attempt to reproduce the issue on the latest (trunk) version of Liferay.  If you cannot reproduce it on trunk, and the bug was reported against an earlier version, attempt to reproduce it using that version. If you can reproduce it on the earlier version, but not on the latest version, then the bug is most likely fixed!  Add a comment on the bug indicating you think it is fixed, and if the original submitter agrees, Liferay will handle the resolution of this issue.

5. If you CAN reproduce it on the latest revision, then the first thing to do is to add a comment to the issue using the template: "This issue is currently being addressed in Sprint X the 100 PaperCuts program.  Please see http://liferay.com/community/100-papercuts".  This comment will allow us to filter and find papercuts using JIRA filters

6. Fix the issue using the above development guidelines and tools.

7. Once the issue is fixed, you must generate a patch using svn diff > LPS-[ISSUE]-build-[SVN REVISION].patch. For example, to generate a patch for LPS-12322 on SVN revision 43533, the filename would be LPS-12322-build-43533.patch.

8. Attach this patch to the issue using JIRA's attachment feature.  Along with the patch, add a comment explaining the nature of your fix.  Also, ask the original submitter to review and test your fix, and tell them to click the "Accept Contribution" option (see below) once they have verified your fix.

9. Important!  Click the "Contribute Solution" link on the issue.  This is an indication that the issue has been fixed by you, and it is now in the hands of the original submitter of the bug. It is their responsibility to review and test your fix, and click "Accept Contribution".  This will move the ticket into the "Community Resolved" state, where Liferay Program Management will take over to shephard it into a future Liferay release.  At this point, you are done!  Congratulations!

10. If the original submitter is no longer active and you do not get a response after a week or so, let the team know, and we will ping the submitter, and in the worst case, accept it on their behalf (after testing of course).

Good luck, and good hunting!