Contributing to Plone
Contributing to Plone#
This part of the documentation describes how to contribute to Plone, including all its projects and repositories under the Plone GitHub organization.
This chapter covers policies that apply to all Plone projects. Other chapters cover any variations and additional policies for each project.
Sign and return the Plone Contributor Agreement#
You must give permission to the Plone Foundation to publish your contribution, according to the license we use. Plone uses the GNU General Public License, version 2 for most of its projects and for any new projects. A few other projects use the modified BSD license, MIT License, or Creative Commons Attribution-ShareAlike 4.0 International license. You grant permission by signing and returning the Plone Contributor Agreement.
After a member of the Plone Foundation reviews and accepts your signed agreement, your GitHub account will be added to a team in the Plone GitHub organization with appropriate access. This process may take a few business days.
Code of Conduct#
The Plone Foundation has published a Code of Conduct. All contributors to the Plone Documentation follow the Code of Conduct.
First-time contributors should read and follow our guide First-time contributors.
Plone project repositories use continuous integration (CI) to run tests, ensure code quality, or provide previews for every contribution. Plone uses GitHub Actions, Jenkins, Cypress, Netlify, and other services for CI. All of a project's CI jobs must pass before a contribution may be accepted.
Change log entry#
Plone packages require that you include a change log entry or news item with your contribution. This is enforced by continuous integration through GitHub Actions.
towncrier to manage change log entries and to automatically generate history or change log files from the entries.
The log file is usually named
CHANGELOG.md, and is located at the root of the package.
When a package is released with a new version, the release manager runs
towncrier as part of the release process.
Because the log file is automatically generated, you should not edit it directly, except to make corrections, such as broken links.
To create a change log entry or news item, create a file in the
news directory, located in the root of the package.
Its format must be
### is the referenced GitHub issue or pull request number,
. is the literal extension delimiter, and
type is one of the following strings.
breakingfor breaking changes
bugfixfor bug fixes
featurefor new features
internalfor internal changes
A package configures the types it allows in a file
towncrier.toml located at the root of its package directory.
The content of this file must include the following.
A brief message that summarizes the changes in your contribution.
An attribution to yourself, in the format of
The following text is an example change log entry, placed inside
Fixed broken links for ReactJS.org. @stevepiercy
Project configuration files#
To standarize the developer experience across packages, a configuration tool is used.
See the tool documentation for more information.
Specific contribution policies of projects#
Each Plone project may have specific contribution policies and guidance. This may include writing tests, developing add-ons, internationalization and localization, logging, and debugging.
The following is an abridged list of actively developed Plone projects with links to how to contribute to them.
The primary Plone project. See its repository.
"If it's not documented, it's broken." See Contributing to documentation.
- Plone API
API methods for Plone functionality. See Contributing to plone.api.
- Plone REST API
A RESTful API for Plone. See Contributing to plone.restapi.
Plone 6 default frontend. See Contributing to Volto.
The Plone Release Team manages the release of new versions of Plone.