Not so long ago we have spotted some issues in the Joomla event dispatching system. An incomplete API led to some events not being triggered as expected. This was a problem for our LOGman extension so it was a perfect occasion to give back to the community and take the time to work on a solution.
Fork it, fix it
With Joomla being hosted on GitHub, collaboration couldn’t be easier. It was just a matter of forking the repository, work out the changes in the staging branch and create a Pull Request. It's that easy!
We tried to be as specific as we could when submitting our Pull Request. We felt that a good explanation of the problem on how it was addressed was very important. Making it as easy as possible for the volunteers to review our changes was part of the deal.
For easing the testing process we went ahead and developed a package for catching and reporting Joomla events: Catcher. We realized that this tool was not only of great help for testing our submitted changes. It also makes the perfect companion for any developer working with events. We can say this by experience!
Writing good and clean code matters, but so does styling. Seconds after submitting our Pull Request, a check against the Travis CI tool was executed. This helps on raising any problems with the submitted code, which includes formatting issues.
Making sure that the code complies with the Joomla Coding Standards is something that needs to be done before submitting a Pull Request. This is a workflow that not only makes sense, but also helps in maintaining quality.
More than just code
There is so much more than just code in a Pull Request. It is the whole ecosystem leads a patch through a safely road. It starts with an idea, a need, which leads to contribution. This first step is crucial and require a bit of preparation, but when the workflow takes over, it makes everyone's lives easier.
We were pleasantly surprised to see how easy and effective the process for contributing to the Joomla project has become. Our Pull Request was well received by the team of testers and reviewers. GitHub really helped in maintaining the discussion focused throughout the acceptance process.
Overall this was a very good experience. This is surely the first Pull Requests of many more to come.