Contributing to GateIn

Version 2

    Introduction

    So you are willing to contribute ? Awesome !

    If you don't know where to start here are some info. There are tasks waiting on you in the various Jiras and ideas can always come directly from you. Willing to contibute a translation ? Some doc ? Some code ? Please start by letting everyone know

    by hanging out in the #gatein IRC room and tell your intentions on the developer forums so we can know about it and have a better collaborative work.

    You will find some info about contributing at jboss.org/help but here you will find information specific to GateIn projects.

    How do I contribute ?

    There are several ways to contribute, it can be code contribution obviously but docs, improvment on the build mechanism, translations, feedback... are also very well appreciated. If you are willing to participate in the project, it would be helpful to hang out the #gatein IRC room.

    Any code or doccontribution should start by creating a jboss.org account and .

    The first contribution usually are patch files attached to Jira tasks or GIT pull requests, those patches will be applied by the developers team to check its quality, that it doesn't introduce a backward compatibility, that it follows the conventions... After a few patches that didn't require any editing we will gladly open the repository so you can directly write your changes.

    Looking for ideas, check out our "specifications" here.

    Contributor agreement

    Before we can accept any code, transation or doc contribution, you will need to 'sign' the contributor agreement located here.

    This is a mandatory step before we can include any patch or open the repository with write access.

    Links

    Jira

    Before opening a Jira, please use the user forum to validate the idea or bug, this will help us keeping the Jira clean.

    Portal: https://jira.jboss.org/jira/browse/GTNPORTAL

    Portlet Container component: https://jira.jboss.org/jira/browse/GTNPC

    Common component: https://jira.jboss.org/jira/browse/GTNCOMMON

    MOP component: https://jira.jboss.org/jira/browse/GTNMOP

    WCI component: https://jira.jboss.org/jira/browse/GTNWCI

    WSRP component: https://jira.jboss.org/jira/browse/GTNWSRP

    If you want to be notified about all issues and all their updates you can subscribe to the mailing list: https://lists.jboss.org/mailman/listinfo/gatein-issues

    If you don't subscribe to the list you will still receive notifications if you opened the issue, subscribed to watch the issue or are assigned the task.

    Forums

    There is a user forum for people to try to get their issue resolved, this is not a forum to receive support but a place for the community to help each other and share tips: http://community.jboss.org/en/gatein?view=discussions

    There is also a forum for contributors, to discuss contributions or propose new ideas, the developer forum is located here: http://community.jboss.org/en/gatein/dev?view=discussions

    If you want to be notified about all forum entried and their updates you can enable notifications on those forums (in the right column)

    Mailing-lists

    To discuss and participate to the development of GateIn: https://lists.jboss.org/mailman/listinfo/gatein-dev

    To receive all Jiras notifications: https://lists.jboss.org/mailman/listinfo/gatein-issues

    To receive all Hudson notifications: https://lists.jboss.org/mailman/listinfo/gatein-builds

    GIT

    We host project on github: https://github.com/gatein

    Here are our GIT usage guidelines: https://community.jboss.org/wiki/GateInPortalGitContributionGuide

    IRC

    #gatein on freenode

    Documentation

    All the documentation is using Docbook as the input format for documentation, it allows us to easily publish HTML in a single page, HTML in multiple pages, PDF and Eclipse Help file documentations.

    The main documentation sources (docbook) can be found here.

    Translation

    GateIn uses the resource bundle mechanism of Java. To add a new language you would have to translate and add files into the various /locale/ directories of the portal.

    • ./web/portal/src/main/webapp/WEB-INF/classes/locale
    • ./portlet/web/src/main/webapp/WEB-INF/classes/locale
    • ./portlet/exoadmin/src/main/webapp/WEB-INF/classes/locale
    • ./portlet/dashboard/src/main/webapp/WEB-INF/classes/locale
    • ./gadgets/eXoGadgets/src/main/webapp/locale
    • ./sample/application/map/src/main/webapp/WEB-INF/classes/locale

    You can either use the properties syntax such as:  Resource.Key=My Translationif you use this syntax do not forget to encode the file using native2ascii.

    You can also use the XML syntax (see the Arabic translation)  <?xml version="1.0" encoding="UTF-8"?> <bundle> <Resource> <Key>My Translation</Key> </Resource> </bundle>

    New languages must also be added in the descriptor of supported languages located at:

    • /web/portal/src/main/webapp/WEB-INF/conf/common/locales-config.xml

     

    See: http://community.jboss.org/docs/DOC-14616 For more details.

    Commits

    Reformat only if really necessary

    Please don't commit bug fixing and reformatting at the same time (Hard to stop what really fixed the issue)

    When committing, use the following format as GIT message:

    GTNPORTAL-xxx: Title of the Jira
    - Check for NPE
    - Throw InvalidArgumentException