If you're interested in contributing to CakePHP and supporting the community then we'd love for you to join us, there are a variety of ways to get involved and help out.
One of the greatest ways to contribute to CakePHP is by directly supporting the developer community. There's no need to be a genius or guru to get involved, you may just have the answer to some of the questions being asked. Here are some ways you can get started:
- Join the #cakephp IRC channel and talk to developers who need help. *
- Answer questions on platforms such and Q&A, StackOverflow and Quora.
- Comment on posts asking for help with a specific problem.
* For those who don't have an IRC client we have a web-based client available here.
Education and Training
Helping others to learn CakePHP is another valuable way to contribute to the community. There are many ways you can help others, these include:
- Coding Seminars
- Live Workshops
- Training Courses
Additionally, we offer professional training for CakePHP, as well as the opportunity to become an officially certified CakePHP developer through the developer certification program.
Marketing and Evangelism
As an open source project, backed by the Cake Software Foundation, Inc, we don't have a massive budget to market and advertise the framework, so we depend on people like you getting involved and helping support the community. There are many actions which can help raise awareness, share experiences and educate your fellow developers about CakePHP.
Write and Talk About CakePHP
Actively writing and talking about CakePHP helps spread the word about the framework.
- Write an article or blog post about a certain feature or development experience.
- Comment on articles or posts and provide ideas and arguments which invite further conversation and feedback.
- Use social platforms such as Facebook, Google+ or Twitter to provide links to articles, posts, plugins, events, etc.
Help Your Local Community
We depend on people who know and understand their local community. This not only refers to the difference in the language, but also the local customs and cultural differences. You can help us by connecting with your local community and supporting CakePHP. A few actions you can undertake include:
- Starting or joining a local user group
- Organizing events or meet-ups
- Distributing information and awareness
If you want to contribute code for a bug fix then coordinate your patch in the comments of the ticket, either by uploading the patch file, or linking to the commit(s) for the fix. You can find a clear outline for contribution to the framework here.
Contributing via Patch Files.
Patch files should be either in unified diff files, or generated with git format-patch.
Contributing via Commits on a GitHub Fork.
Contributing via commits on a GitHub fork is the preferred way of submitting fixes. If your fix is more than a single commit, you should put the fix on an appropriately named branch. This makes integration of the fix easier.
Testing and Quality Assurance
Filing tickets is a great way to start contributing to CakePHP. By finding and reporting issues in the code you notify the maintainers of any issues and help get them resolved. Tickets for all CakePHP projects are located at Lighthouse.
Found a Bug?
Sometimes there are problems in CakePHP. If you think you've come across one you can:
- Search for a similar existing ticket.
- Create a new ticket if you're sure it doesn't already exist OR update the existing ticket.
- Add detailed instructions on how to reproduce the bug. This could be in the form of test cases or a code snippet that demonstrates the issue. Not having a way to reproduce an issue, means its less likely to get fixed.
New Tickets That Need Triaging
All new tickets need to be triaged and have the correct tags, as well as having a milestone assigned to them. You can help by looking at new tickets and adding the correct tags. Additionally, confirming or asking for more information on unclear tickets doesn't take much time, and helps speed up the process.
Tags for tickets usually contain which classes, methods, and other generic properties are involved. The tags defect, enhancement and rfc move tickets into related bins.
Confirm or Invalidate Existing Tickets That Need a Way to Reproduce
If a ticket cannot be easily reproduced, or is unclear, it will be set to hold. Tickets on hold generally need a way to be confirmed or require additional information. You can help by finding out ways to reproduce tickets, or prodding ticket authors for more information. Tickets that are on hold can be found here.
Bug Tickets for Maintenance Releases
Existing releases usually have a few issues open against them. These issues generally need patches and test cases created for them, so they can be resolved. Preparing patches for open unresolved issues is a great way to get involved with CakePHP, and is one of the first steps to becoming a core contributor. If you're interested in a particular version, there are lists of open unassigned tickets for.
Features and Enhancements for Future Releases
We are currently working towards the 3.0 milestone. There are still a number of incomplete tasks and unresolved tickets. If a ticket has been moved into the 3.0 milestone it is planned for inclusion in the release. Tickets are moved into this milestone based on community feedback and the core team's plans. If you plan on contributing a feature, please also include relevant test cases for the feature. We want to keep CakePHP as bug free as possible, and test cases have proven to help immensely. If you submit features without test cases, and no documentation it is highly unlikely it will be merged in.
Documentation is another excellent way to start getting involved with CakePHP. We have two primary forms of documentation, the API and the CookBook. The API is generated from the source code, so if you find an inaccuracy or issue with the API documentation, you can file a patch against the source code. The CookBook is a community edited and moderated wiki. Once you have a Bakery account you can edit and add any documentation you think is useful. Also, submitting an article to the Bakery is a good way to share your code, processes, and experiences with CakePHP. Submissions are moderated and reviewed before publishing.
We have developers from countries all over the world who use CakePHP. If you're a non-english speaker, translating the API or the CookBook content into your language is another way to help support the community. Providing the official documentation and support material in as many languages as possible helps lower the barrier to entry to using the framework.