Contributing
Introduction #
There are several ways in which you can contribute to the Liferay open-source project. Some examples include:
- Write documentation in the wiki for a particular feature you know
- Report bugs you find while testing and using Liferay
- Implement a new feature or extend the existing ones
- Fix a bug
- Suggest a new feature
Write documentation #
Liferay has both an official documentation and a community based documentation created through a wiki (right where this page is).
To contribute to the wiki, please register for an account and then create articles using the following guidelines.
Report bugs #
Liferay uses Atlassian JIRA issue tracking system - http://issues.liferay.com. Anyone can register for an account and easily report bugs to help improve the overall stability of the product. Please follow these JIRA guidelines when reporting a bug: JIRA Wiki. Following these standards will help JIRA stay clutter-free and up-to-date so legitimate bugs can be quickly addressed. The JIRA wiki also explains how to register for a JIRA account and describes each data field in detail.
Some important take-aways from the JIRA wiki:
- Make sure it really is a bug - Questions are best handled in the community forums. If you are unsure if it's a bug, post in the forums and see if anyone else is having the same problem
- Provide as much detail as possible, including detailed steps on how to reproduce the bug. Also include a note outlining the intended results from performing the steps - How would it work if the bug did not exist?
- Search existing issues before posting a new one. The bug you encountered may have already been reported.
Implement a new feature #
- Make sure the feature does not exist
- Consider discussing the proposed new feature in the forums to allow others to give their opinion and give suggestions
- Create a "New Feature" or "Improvement" issue in JIRA issue tracking system. This will be the primary location to interact with Liferay developers and finally submit your new feature for review.
- Download Liferay's latest sources from the GitHub repositories
- Submit a Git pull request to the Liferay module owner (preferred) or attach a patch file to the JIRA issue you created earlier.
- Make sure your contribution satisfies Liferay's development guidelines: Liferay Core Development Guidelines.
- Finally, click the "Contribute Solution" workflow step in the left-hand navigation of the ticket and accept the Contributor's Agreement. There will be a place to paste a link to the Git pull request if you used Git to submit your code.
Now, wait to hear from Liferay regarding your contribution. It is not uncommon for a Liferay developer to ask questions, suggest additional improvements or attempt to fix a possible problem with portion of the contribution. This is completely normal. Interact with the developer and work to find a suitable solution. Undoubtedly, Liferay is thrilled with community contributions and wants to see them integrated into the product.
Some tips:
- It's much easier for Liferay's developers to receive several small patches than a huge one, because the latter takes more time to review.
- Follow the conventions of the existing code as strictly as you can: pay attention to class names, variable names and all the coding style.
- If you are planning to develop a large feature or send a set of related patches it's a good idea to write down the whole proposal as a wiki article within the Proposed Projects section
Fix a bug #
Similar to implementing a new feature, community members may contribute fixes for bugs. Follow the steps in the previous section with a few exceptions. Instead of creating a "New Feature" or "Improvement" request, you may file a "Bug" issue. Alternatively, if an issue covering this bug has already been created, add a comment explaining that you are attempting to contribute a solution for this bug. This way Liferay developers and other community members will know you are working on this particular issue. After that, continue to follow the steps to submit a pull request or attach a patch file to the ticket.
Suggest a new feature #
- Go to the message boards and suggest the feature in the Suggestions and Feature Requests Category.
- If the community likes it, once it's defined it will be added to this wiki under the Proposed Projects page.