=== Introduction === This document intends to give few information about how to contribute to the i-MSCP project. The i-MSCP development team is using git as version control management system. All i-MSCP git repositories are hosted on Github, allowing any user to fork them and submit patches. === How to start === If you want contribute to the i-MSCP project, you must first fork the development branch located at [[https://github.com/i-MSCP/imscp]]. In order, you must do the following: * Create an account on [[https://github.com/i-MSCP/imscp|Github]] * Create a fork of the i-MSCP development branch located at [[https://github.com/i-MSCP/imscp]] * Clone your fork on your local system The latest task can be done like this on your local system: git clone git://github.com//imscp.git Once you did that, it's also recommended to create a specific feature branch. For instance, if you want create a new feature for i-MSCP called **new-feature**, just create the new-feature branch as follow: git branch new-feature and then, you can start to add/modify files. See http://gitref.org/ to learn more about how to work with git. When your work is ready, you can do a pull request to ask the i-MSCP development team to merge it in the development branch. This can be done from the Github interface. See [[https://help.github.com/articles/using-pull-requests|Howto do a pull request]] === Keep your fork synced with the upstream branch === Sometimes is takes a while to merge your changes with upstream, a good way to sync your branch with the upstream is to add a second remote url (the upstream repository) and periodically fetch the changes from there: * Add the upstream (official) code into your server (needed to rebase) git remote add upstream https://github.com/i-MSCP/imscp.git * Fetch any new changes from the original repository git fetch upstream * Merge the upstream code with yours, no more steps if there aren't code conflicts. git merge upstream/master