Contribute

Make a difference by giving back.

Giving Back.

You've been using Liferay for a while now, and have received lots of help from the community. Your Liferay deployment is looking great, and you've developed several extensions to meet your required functionality. You'd like to share your knowledge and expertise by giving back a little or a lot of what you've learned. Contributing to Liferay is a great way to help out those that are just getting started, or those that have faced the same hurdles as you have. Visit the following pages to discover how easy and rewarding your contributing can be!

By the way, Liferay as a company strongly believes in giving back to the open source ecosystem and to industry efforts around standardization. Check out Liferay's contributions to other open source projects to see how Liferay itself gives back to the open source communities, and check out Liferay's industry standardization participation to find out how we collaborate with other companies and foundations to further the industry as a whole.

The Basics

There are many ways in which you can contribute to the Liferay. Some examples include:

Some of these require little or no knowledge of how to code, so don't be afraid to jump in and get to work even if you don't consider yourself a great programmer! Details on the ways to contribute can be found below. Much of this content is borrowed from the Liferay Wiki.

Reporting and Fixing Bugs

You think you found a bug, and want to see it fixed in a future release of Liferay.  Reporting bugs is the first step to getting a fix.  To report a bug:

1. Search Liferay Issues to ensure the issue you are encountering has not already been reported and/or fixed. To search Liferay's Issues database, type in relevant terms in the upper-right search box at issues.liferay.com. If you find that your bug has already been reported, and you wish to escalate its priority, make sure to vote for the bug!  You can also provide additional details by commenting on the bug, especially if you've found the bug in an as-yet unreported version of Liferay.

2. If your bug has not been reported, but you are not 100% sure it is a bug, the next step is to post a message on the Liferay Forum asking about your issue.  Be sure to post as much relevant information as possible (while following the Forum FAQ, for example, don't revive old, dead threads, and don't post huge stack traces). 

3. If you determine that your issue is a bug, create a new bug in JIRA by following these guidelines and procedures.

4. If you are interested in fixing the bug, follow the new feature and bugfix contribution guidelines and procedures.

5. If your bug is related to the security of Liferay, be aware that Liferay believes in Responsible Disclosure. You can choose to file a new JIRA issue, or email Liferay directly at security@liferay.com and include the details of the vulnerability. If you are filing a JIRA issue related to security, it should be categorized under the Security category (in addition to the appropriate functional category in which the bug belongs), and the Privacy option set to Private when filing the bug, to avoid full disclosure until Liferay staff can evaluate and resolve the issue.  More details can be found on the JIRA Wiki Page under Security Level.

The Liferay Community is always looking for help making the product better, and your highly valued contributions will go a long way toward that goal!
 

Writing Documentation

Liferay's official documentation is the definitive source of information on the Liferay product.  This official documentation is regularly updated for new release of Liferay, and documents most of the features for users, administrators, and developers. 

The Community Wiki is the place where much of the official documentation can be incubated.  That is, community documentation contributions normally start out as collaborative wiki pages.  Once the content is complete and reviewed, our editors migrate this information into the official documentation, where appropriate.  Therefore, the best way to contribute documentation is to just write some!  It can be on any topic, though usually focused on a particular feature or problem domain. The following guidelines can help in your writing:

Writing Plugins

Writing new features for Liferay and its community does not always mean modifying the core Liferay source code.  Independent features are continually being developed outside of Liferay, and these features are usually made available as a Liferay Plugin.  A Plugin, as you can probably tell by its name, is a module that can be added to an existing Liferay installation to extend its existing functionality, or offer new features above and beyond what Liferay offers.  Having an external module makes maintenance and deployment much easier, and is highly encouraged for extending the Liferay platform.

 
To get started on writing a plugin, or learning more about the plugin framework, visit the following pages:
 

Implementing a New Feature

Liferay is developed by its community, including Liferay users, enthusiasts, employees, customers, partners, and others.  Creative and new features can originate with any community member, and are highly encouraged.  To maintain the quality and innovation Liferay has come to be known for, feature development goes through a software development lifecycle, from vision to implementation to sustaining to retirement.  This process ensures features are developed with high quality and easy maintenance.  If you have an idea for a new feature, and wish to implement it, follow the contribution steps outlined here

If you wish to make the community aware of a new feature, but do not wish to (or do not have the expertise needed to) implement, be sure to post on the forum to flesh out your feature, and suggest the feature on the Ideas Dashboard.  This page is regularly scoured for new and innovative ideas originating from the community, so be sure to socialize your new idea with the community to garner support!
 
You should also be familiar with the Liferay Developer's Guide, which provides a basic introduction to all the aspects of developing with Liferay Portal.

Providing Translations

Liferay has many user and administrative interfaces that must be translated to the various languages of the world.  The global Liferay Community continues to do an outstanding job at creating translations for all of Liferay's user interfaces.  It is one of the unique values that a global community can bring to Liferay, and you are highly encouraged to participate to provide new or updated translations for your native language.  It is also very satisfying and rewarding to see a product being used with your translations.  To learn more, and join the team, visit the following links:

 

Liferay Projects

Liferay is a large project, consisting of millions of lines of code and hundreds of individual features.  Occasionally, a focused problem domain or related set of features is identified for which a specific Liferay Project is created.  The project's purpose is to develop this area with extra attention paid to making the feature set consistent, appicable, and usable to a wide range of community users and requirements.  For example, the AlloyUI Project was developed to solve the problem of having a consistent and simple API for building web application interactions.

 
If you wish to become involved in a particular Liferay Project, visit the Projects homepage, read up on the existing projects, and send a message or post on the project's forum, to get more information. 
 
There are also plans to allow for incubator-style projects for smaller, but still focused, projects related to Liferay.  Stay tuned for details on this by keeping up with the Liferay Community homepage.