Contributing to Oro Source Code¶
We’d love for you to contribute to a free OroCommerce Community Edition open source code and related documentation. The following guidelines and recommendations help synchronize the community actions and provide a blueprint for seamless and non-intrusive collaboration.
Code Version Control¶
The following is a set of conventions about code version control that strives to provide the best way to communicate enough context about every committed code change to fellow developers. These code version control conventions should be used in all Oro projects, except for the projects that adopted some other conventions.
Git and Tools¶
Git is the official version control system used for the majority of the Oro projects. It allows for easy distribution of the source code and keeps each change under version control.
There is a number of tools to manage git repositories, for instance:
- CLI git tools
- PhpStorm Git Integration plugin
- SmartGit, to name a few.
Submitting a Pull Request¶
Before you submit your pull request consider the following guidelines:
- Search GitHub for an open or closed Pull Request that relates to your submission. You don’t want to duplicate effort.
- Please sign our Contributor License Agreement before submitting pull requests. The CLA must be signed for any code or documentation changes to be accepted.
The merge commit message contains the message from the author of the changes. This can help understand what the changes were about and the reasoning behind the changes. Therefore, commit messages should include a list of performed actions or changes in the code:
- <action 1>
- <action 2>
- <action 3>
Signing a Contributor License Agreement¶
Although signing the Contributor License Agreement is a prerequisite for accepting your pull request, you only need to do it once. So, if you’ve done this for any of our open source projects, you’re good to go with all of them. If you are submitting a pull request for the first time, our friendly orocla robot will automatically add a reminder to your pull request.