Contributions Portlet
The purpose of this portlet is to guide the user into making a contribution to a project.
Competitor's Designs
Before we look at a new design it is helpful to look at what our competitors are doing.
Glassfish
From the Get Involved link on the home page you can follow the links under the Contribute code section that point into the Guidelines and Conventions page:
https://glassfish.dev.java.net/public/GuidelinesandConventions.html
These explain what you need to do in a fairly straightforward way.
Geromino
The Getting Involved link on the home page gives little information on how you contribute a patch. It simply points to the JIRA installation and the wiki:
http://geronimo.apache.org/get-involved.html
Ubuntu
Ubuntu has a nice page explaining all of the different tasks that you can do to contribute in addition to coding:
http://www.ubuntu.com/community/participate
This is a great way to invite people to participate as it is not limited to submitting code. This is something that we should do for our Community Page.
Fedora
There is a Help Wanted page that gives a similar overview to the one given by Ubuntu:
http://fedoraproject.org/wiki/HelpWanted
One thing I don't like about this is that it asks for donations. As Red Hat is funding the project I don't see why the community should pay. We should not ask for financial help from the community to run jboss.org.
jboss.org Current
Currently the contribution process for jboss.org is very confused. There are 3 separate links from the home page that lead into differing paths of pages both on the original JSPWiki and the portlet based JSPWIki. Some links into JIRA are broken and the information is often out-of-date or incorrect.
See this wiki page for more details.
New Design
First of all I would like to make a point of emphasizing that contributions do not necessarily have to be code. They could also be documentation, examples, success stories or advocacy.
Secondly I would like to integrate contributions as much as possible with JIRA. This means creating Issue Types for different types of contribution such as documentation and advocacy etc...
Finally I would like to streamline the process of finding out how to contribute by having instructions within the contributions portlet per project. In this way we can clearly show how to access source code whether it be in CVS or Subversion. Ideally we could provide the ability for a user to browse JIRA and create a new issue from the contributions portlet so that they don't have to leave the page. (Maybe we should deactivate the create feature until a search has been performed to enforce good behaviour.) This process needs to be as seamless as possible to encourage proper use of JIRA and new ideas. By creating new issues in this way we can make sure that they appear in an unscheduled section of the JIRA project so that they don't get in the way of issues created by known contributors. This has been achieved in the past by using the TODO Forum as an intermediary step.
For example the Contribute portlet for the application server could look as follows:
Making a contribution
Choose a type of contribution:
Code
New Feature
Bug Fix
Improvement of existing feature
Test
Unit Test
Performance Test
Documentation
Getting Started Guide
User Guide
Reference Guide
Examples (Tips and Tricks)
FAQ
Community
Forums
Mailing Lists
JBoss User Group
Other...
Clicking on the New Feature item would give the following information:
Steps:
Browse JIRA to see if an issue has already been created
Make sure you have signed a Committer's Agreement.
Create a new issue in JIRA explaining the new feature
Check-out the source code for the version you wish to add the feature to
Develop code for the new feature and unit tests if possible.
Make sure that all tests still pass in the testsuite.
Submit code for inclusion in the source.
Update JIRA to mark the issue as resolved.
Clicking on any of the above items will reveal a larger description in a text area below that gives more details about each step.
Comments