Contributing to Liferay Development

You can contribute to Liferay DXP by opening a pull request against the liferay-portal repository on GitHub. This section covers the two common contribution paths — fixing a bug and proposing a new feature. Before working through either path, build Liferay DXP from source and learn the codebase layout:

Fix a Bug

  1. Reproduce the bug against the tip of the master branch of liferay/liferay-portal. The bug may already be fixed in a development build.

  2. Use Organizing the Source to locate the relevant code. Liferay DXP is large, but the codebase follows consistent patterns.

  3. Fix the bug, rebuild, and restart Liferay DXP to verify. Keep changes minimal — don’t touch more code than necessary.

  4. File a bug report at issues.liferay.com (or find the existing ticket) and click Contribute Solution to accept the Contributor License Agreement. See Filing a Jira Ticket for details.

  5. Commit your changes referencing the Jira ticket key (for example, LPS-XXXXX) and open a pull request against the master branch of liferay/liferay-portal. Pull requests targeting other branches are not accepted unless a maintainer asks you to backport. See Submitting a Pull Request on GitHub for the full workflow.

  6. Add a link to your pull request in the Jira ticket.

Contribute a New Feature

If you’ve never developed for Liferay DXP, work through a bug fix first to learn the contribution process.

Most new functionality in Liferay DXP ships as a module published through Liferay Marketplace. If a feature can ship as a Marketplace plugin, build it as one — Marketplace plugins are easier to accept than core contributions.

For features that can’t ship as a Marketplace plugin, contribute through the core repository.

  1. Start a discussion in the Product Ideas category of the Liferay Discussion Forums to gauge interest and find collaborators before investing significant implementation effort.

  2. File a feature request at issues.liferay.com and click Contribute Solution to accept the Contributor License Agreement. See Filing a Jira Ticket for details.

  3. Build Liferay DXP from source (see Building Liferay DXP from Source) and use Organizing the Source to find where the feature belongs.

  4. Implement the feature with associated tests and verify it behaves as intended.

  5. Commit your changes referencing the Jira ticket key and open a pull request against the master branch of liferay/liferay-portal. See Submitting a Pull Request on GitHub for the full workflow.

  6. Add a link to your pull request in the Jira ticket.