====== Contribute to EEROS ======
The development on the EEROS Framework is done with the workflow **"develop with a fork"**. For contribution, EEROS must be [[https://help.github.com/articles/about-forks/|forked]]. The implementation is done in the fork. Afterwards, the changes are merged into the master branch of the main project repository. The merge is initiated by the pull request feature of GitHub. This workflow allows an easy way to contribute for everyone. It also improves the code quality since the pull requests are reviewed before the merge.
The following is a step-by-step procedure to implement new features on the EEROS Framework. [[http://eeros.org/wordpress/eeros-team/|The EEROS Team]] is asking all contributors to test the new or changed code by implementing unit tests with the [[https://github.com/google/googletest|Google Test]] testing framework and follow the guidelines put together [[http://wiki.eeros.org/for_developers/start|here]]. This ensures a standard of code quality.
**1.** Fork the **eeros-framework** repository over the GitHub Website with the **Fork** button. GitHub will copy the repository and enables the user to work on its own repository.
**2.** Clone the repository to the computer (create a local clone).
git clone https://github.com/myGithubUsername/eeros-framework.git
**3.** Configure a second remote repository to be able to get the updates from the eeros-project/eeros-framework repository (main project repository). After this step, the local clone has two references to remote repositories. The one with the name "origin" is for the own fork and the one named "upstream" is for the main repository.
cd eeros-framework
git remote add upstream https://github.com/eeros-project/eeros-framework.git
**4.** To update the fork with the newest commits from the main repository, the commits must be pulled from the repository with the name "upstream".
git pull upstream master
**5.** The new features can be implemented as usually and pushed to GitHub with the git commands **"git commit"** and **"git push"**.
**6.** Once the work is finished, a [[https://help.github.com/articles/creating-a-pull-request-from-a-fork/|pull request]] must be issued. This can be done by clicking on the button **"New pull request"** on the GitHub Website.