Building new features is the most exciting part of contributing. It allows you to shape the CMS to your needs but it requires some technical knowledge and considerations.
Core or extension?
The first question you have to ask yourself is if you want your new feature to be part of the core or not. We want to keep the base of the system as small as possible for different reasons
- users can decide for thereselves if they want a feature or not
- easier to maintain
- bugs in a feature doesn't affect the whole system
In doubt, we advice you to always choose for an extension. Extensions can still easily be integrated by default afterwards. Alternatively you can ask on the Slack channel the opinion of the community.
How to make extensions can be found in our module guide guide. For adding new features in the core, we ask to add a pull-request on GitHub.
When collaborating on the same source you need a Version Control System to keep track of changes. We chose for the well-known GitHub. When you don't know it yet, it will not only be useful to learn it to participate in the Fork CMS project.
After you comitted all changes to your branch and pushed them to your forked version, you'll have to do a pull request. Make sure you explain what and why you want to change a part to the core. After the pull request has been voted or discussed on the technical board meeting it will get merged.
When you edit something in the core we will ask you to update the documentation too. Read our documentation article to find some tips.