Version 7

    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:

    1. Browse JIRA to see if an issue has already been created

    2. Make sure you have signed a Committer's Agreement.

    3. Create a new issue in JIRA explaining the new feature

    4. Check-out the source code for the version you wish to add the feature to

    5. Develop code for the new feature and unit tests if possible.

    6. Make sure that all tests still pass in the testsuite.

    7. Submit code for inclusion in the source.

    8. 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.