Contributing to Plone Core¶
There are many people and companies who rely on Plone on a day-to-day basis so we have to introduce some level of code quality control. Plone's source code is hosted in a git repository at https://github.com/plone, but only members of the developer team have commit-rights.
Just sending in a contributors agreement does not guarantee you access to the repository, but once you send it in we will always have it on file for when you are ready to contribute. We do ask that before requesting core access you familiarize yourself a little with the community since they will help you get ramped up:
- Ask and (especially) answer questions on stack overflow and IRC with a focus on getting to know the active developers a bit.
- Attend a conference / symposium or participate in a sprint / tune-up. There are plenty of opportunities to meet the community and start contributing through various coding sessions, either in person or on the web. You may even be able to get immediate core access at a conference if you are flexing your mad coding skills and the right people are attending.
- Get your feet wet by contributing to the collective. Don't worry about getting it perfect or asking for help; this way you get to know us and we improve our code together as a community.
- Patches: Historically we encouraged people to submit patches to the ticket collector. These tickets are usually ignored forever. Technically, in order for us to accept your patch you must sign the contributors agreement. If you want to contribute fixes, please just sign the agreement and go through the standard github pull request process described until you feel comfortable to bypass review. If the ticket is trivial, or you're fixing documentation, you do not need to sign a contributor's agreement.
Once you have familiarized yourself with the community and you are excited to contribute to the core:
- Sign the contributor agreement at https://plone.org/foundation/contributors-agreement/agreement.pdf/at_download/file, then either snail mail it to the address provided or scan and email it to assignments@plone.org. This offers both copyright protection and ensures that the Plone Foundation is able to exercise some control over the codebase, ensuring it is not appropriated for someone's unethical purposes. For questions about why the agreement is required, please see Contributor’s Agreement for Plone Explained.
If you aren't sure where to start or just want more direction, feel free to get on IRC, mailing lists, Twitter, etc... and ask for help. While there is no official mentoring process, there are plenty of people willing to act in that role and guide you through the steps of getting involved in the community. A common way to start contributing is to participate in a Plone tune-up day. Tune-ups are filled with a good mix of newbies and experienced devs alike. For more information, please see https://plone.org/tuneup.
Welcome to the Plone community!
Dealing with pull requests on GitHub¶
Before we can merge a pull request, we have to check that the author has signed the contributor's agreement.
If they're listed in https://github.com/plone?tab=members, the author has signed so we can go ahead and merge.
If they aren't listed there, there's still a chance they have signed the contributor's agreement. Check on IRC #plone-framework.
Pull requests without contributor's agreement can only be merged in trivial cases, and only by the release manager.