First of all: thank you! Any kind of support is greatly appreciated and each contribution is increasing our motivation. This document outlines how to contribute to make our lives easier - both you, contributors, and core developers. It will be divided into sections describing most common ways to contribute to an open source project.
All bugs in Codice should be reported using GitHub issues. It makes them very easy to track and organize but also to give you feedback regarding your report. If you think you just found a bug, go ahead and fill a new issue, but please remember a couple of simple rules.
- Make sure it's not duplicated
- Shortly describe what the problem is and where it occurs.
- Tell us how to reproduce a bug - what actions resulted in incorrect behaviour.
- Don't forget to mention what is that incorrect behaviour (explanation why is it wrong, any kind of error messages etc) and how do you expect it to work correctly.
We will try to respond as soon as it's possible but please keep an eye on your issue - there might be questions for you and if you answer them it will drastically reduce time needed to fix the bug. GitHub is nice and sends email notifications so it's not that hard.
If you have encountered a bug related to the security of Codice, we would kindly
ask you to email
Suggesting new features
GitHub issues are also a good place for suggesting and discussing any new features, ideas etc. Make sure it hasn't been already submitted and fill in an issue. We will categorize it and try to give you feedback quickly.
Propositions in form of working code should be submitted as GitHub's Pull Requests. Give a detailed description, try to include some tests and hopefully your change will get merged into Codice core.
We try to adhere some widely known standards for source code and kindly remind you that any contribution regarding the code should follow them as well.
Keep in mind that (for server-side changes) running test suite using
phpunit command is a must.
Determining version to edit
Rules are very similar to contributing to Codice core - any change meant for all actively
supported versions should go into
master branch and fixes for a specific branch should
target this version's branch (e.g.
What does it mean in terms of documentation? Example of a change for a specific version is
missing information about the break in some version. If you, on the other hand, encounter
a typo in the page header, it probably happens regardless of documentation version - then
master is the right choice.