Liferay's source is now at GitHub! Go fork it.

While many people have already find out by themselves I think it's about time to make it official: Liferay's source code is now at GitHub. That includes all of the projects:

  • Liferay Portal
  • Liferay Plugins
  • Alloy UI
  • Liferay Faces
  • Liferay Docs

Why the change? We had been talking for a long time about using a distributed version control system such as Git or Mercurial but it seemed like a huge change. However the number of developers and casual contributors kept increasing and at one point while working on 6.1 we realized the centralized subversion repository was becoming a significant bottleneck. So overnight we decided to give Github a try. We weren't 100% it would work so we didn't make any announcement and made sure to keep SVN repositories in sync. In fact the first few months were quite hard for many developers because Git really requires some mindset changes.

But after around 1 year using it, we can officially say that we love Git and we love GitHub!

It's been a great improvement to our processes and it has allowed us to streamline the code review process (which is pretty strict at Liferay).

I would like to highlight that we are still syncing our old Subversion repositories so you can still use them. But I strongly recommend that you give Github a try. We don't have a date for it yet since some of our internal systems still use the Subversion repositories but eventually we'll stop using them.

Contributing

One of the great innovations of Github is how easy it is to fork a project and make modifications to it. And it is just as easy to send the changes back to the original project using what is known as a pull request. In fact, for small changes to a single file you can even do all of that through a web user interface. Once you have done the changes we hope you decide to contribute it back so that we all keep working on making Liferay such a great product.

For those of you who want to contribute here are some steps/recommendations:

  1. Find what you can contribute to: http://www.liferay.com/community/welcome/contribute
  2. Learn the details of how to do it: http://www.liferay.com/community/wiki/-/wiki/Main/How%20to%20contribute%20to%20Liferay
  3. Find an "sponsor" for your contribution. This step probably needs an larger explanation.

Like many successful Open Source projects Liferay has a very large community. And this large community also generates lots of contributions. Many of those contributions are awesome and are what has made Liferay such a good product, but sometimes they are lost among an avalanche of not so good contributions. GitHub is allowing us to improve this by easily implementing a trust network so that casual contributors can rely on more active contributors who can rely on full time developers. That's exactly how Linux handles its contributions so it cannot be such a bad method ;)

So, if you believe your contribution is awesome or you want to receive feedback about it, once you have created the JIRA ticket and set it to "Contributed" state as explained in the links above I recommend that you go to the Contributions category in the forums and you explain what you've done. Common contributors and full time developers are usually subscribed to this category so it should be easy to find someone who wants to review your code.

Additionally, Drew Blessing, from the Community Verifiers team, has started a new initiative to proactively review the contributions as they come to evaluate their value and make sure that the most valuable contributions are applied as soon as possible. Thanks a lot Drew!

Happy forking! Happy contributing!

Blogs
git is fantastic ! also excellent for individual projects created using the IDE/Studio as well (say with Egit plugin to Eclipse) ; and if your number of private repos at github is getting too numerous or if a client is afraid of clouds, one can, as an alternative to github, install gitolite