If you are reading this blog post, you are undoubtedly familiar with open source in general, and Liferay and its open source mission in particular. Our community is spread out both globally and with respect to the technology that can be used on the web and on the Liferay Platform. Over the years, numerous contributors have donated their time and resources into what we now know of as Liferay. The kinds of contributions that are being made on a daily basis range from simply suggesting a new feature or finding and reporting a bug, through localizations, documentation, bugfixes, new features, feature improvements, and a host of other efforts that can be readily identified.
As Liferay grows, so to do the kinds of contributions that are useful. At the highest level, we have Official Liferay Projects that you are all familiar with: Liferay Portal, Social Office, AlloyUI, and Liferay IDE round out the current top-level projects. These are projects that Liferay has deemed important enough to be imbued with special attributes (such as being shipped with Liferay directly, or staffed with Liferay personnel, or using Liferay's software engineering resources like issues.liferay.com). Within these top-level projects are all kinds of contributions and innovation.
Zooming way in, at the lowest level there are contributions such as simple community-contributed bugfixes (e.g. those that have arrived via the 100 PaperCuts or BugSquad projects), one-liner translations, minor code improvements, or javadocs. While no less important than other types of contributions, these at the lowest level are generally short-lived, focused contributions that do not require a team to contribute or maintain.
As you may have guessed, there is a missing void in the middle - there are non-trivial project ideas that community members have suggested, or some that are underway or have already been completed, and that represent non-trivial, community-led software efforts that make the Liferay Platform a better place to be. Some have been contributed in the form of community plugins, or simply exist out on the web. More importantly, they represent innovation coming from outside of the influence of existing Liferay technology.
In an effort to bring these non-Liferay-led, non-trivial projects to light, and to encourage participation in these projects, we bring you the concept of Liferay Community Projects.
What is a Liferay Community Project?
A Liferay Community Project is an open source contribution driven by one or more Liferay Community members. It represents a non-trivial addition to the open source Liferay ecosystem that is bigger than the simple contributions listed above, but not officially sponsored or developed by Liferay (the company). Liferay Community projects have space on liferay.org, our community's home, on the new Community Projects Listing page. As these are open source projects, participation is open to all.
What qualifies as a Liferay Community Project?
There are no hard and fast rules as to what would make up a good project and what would not. Any non-trivial open source project that relates to and improves Liferay and Liferay technology would make for a good Liferay Community Project. If you have an idea for a new project, but you haven't written a single line of code, contact us! (see below). If you have been working on a project for some time, already have builds available, and simply want to more directly associate your project with Liferay (and obtain new developer talent), give us a call! (well, email us)
Why should I care? What are the benefits?
Of course, open source projects are free to manage their projects on any website of their choosing (or have no web presence at all!). However, the primary benefit of being listed as a community project at Liferay is to have a more direct relationship with Liferay and its open source ecosystem. Each projects gets listed on the community projects page in a consistent way, along with a contributor listing, dedicated forum category, wiki space, and links to the project's deliverables. Developers can connect and collaborate with other team members through the project's homepage. Prospective contributors can quickly learn about available projects, try them out, and get involved. On the other side of the coin, Liferay benefits through ever-increasing activity associated with Liferay. In short, rather than just listeners, we want active participants in our open source conversation.
Are these incubation projects?
Existing incubation projects (such as Apache Incubator) have an implied governance model, one that governs contributions and the progression of a project from an incubation state to some sort of "accepted"/"approved" state. Liferay Community Projects do not get "promoted" from one state to another, there is no implied governance model for contributions, and there is no promise that a project will be integrated into Liferay proper or otherwise be promoted.
What about Licensing?
Project maintainers are free to choose any open source license they wish. In addition, it is up to each project to determine the governance model (if any), the rights assigned to contributions, and the mechanism by which contributions are made. The only requirement for being a Liferay Community Project is that it must be open source (and the code must be licensed using an accepted open source license), be associated with and offer an improvement to Liferay technology in some way, and be willing to accept contributions and participants who which to get involved.
How do I start my own Liferay Community Project?
If you have an idea for a Liferay Project, simply contact firstname.lastname@example.org and talk about your idea. We want to encourage new projects from any and all community members who have the time and energy to lead a project. We'll get you set up with an information page, project collaboration tools, and appropriate links for potential and existing project members and developers, and answer any questions you may have. Again, it is not required that your project already exist -- the best ideas often come from an initial idea seed that is acted upon and refined through community collaboration from day one.
Note that this program does not provide facilities for source code management, issue management, or build systems. It is up to each project to provide that. There are many resources available for open source, such as Github (which Liferay uses for its top-level projects), SourceForge, and a host of other online resources for maintaining open source.
Where do we go from here?
As I discussed in an earlier blog post, we already have one community project led by Jan Gregor - The Liferay/JRebel Integration project. There are a couple more projects in the pipeline which you'll be hearing about soon, but we want more! As the program grows, we'll be adding more features (blogs anyone?) and streamlining the process by which new projects are born. I am personally looking forward to 2012 and seeing what is possible with Liferay and open source! Keep an eye on the projects page for new and upcoming projects in which you may be interested in participating.