]> git.p6c8.net - jirafeau.git/blobdiff - CONTRIBUTING.md
[FEATURE] Add walktrough to create merge requests
[jirafeau.git] / CONTRIBUTING.md
index 8c6752ef422bdc0289090d050675cb2e453ab188..f7f21ed79399c5b92d03ca563031c924057059dc 100644 (file)
@@ -4,6 +4,8 @@ Hi,
 
 this document is made for newcomers in Jirafeau who are digging into the code.
 
+If you have further questions, then just ask for help ðŸ¤“.
+
 ## General principle
 
 Jirafeau is made in the [KISS](http://en.wikipedia.org/wiki/KISS_principle) way (Keep It Simple, Stupid).
@@ -55,14 +57,30 @@ Translation may be add via [Jirafeau's Weblate](https://hosted.weblate.org/proje
 
 ## Coding style
 
-- PHP function keywords are alone on a line
-- Braces "{" must be put in a new line
+- This project follows the [PSR-2](http://www.php-fig.org/psr/psr-2/) Coding Style
 - Files must be in UTF-8 without BOM and use Unix Line Endings (LF)
 
-The whole project is not clean about that yet, feel free to fix :)
+## Branches
+
+* ```master``` = latest release, e.g. 2.0.1
+* ```next-release``` = development branch - all new features are merged into this branch until the next version is released. So use this branch as base while developing new features or bugfixes.
+* ```test``` = sandbox branch to test new features or merge requests, or run integration tests. The content of this branch may change at any time.
 
 ## Merge Requests
 
 Please create one branch for each feature and send one merge request for each branch. 
 
 Dont squash several changes or commits into one merge request as this is hard to review.
+
+Please use ```next-release``` as base branch and send your merge request to this branch (not ```master```).
+
+Quick walktrough:
+
+* Create ticket for new feature
+* Fork the original repository, clone the own repository, add the original repository as upstream
+* Checkout Â»next-release« branch ```git checkout next-release```
+* Create a new branch on top of that one, e.g. Â»some-feature« ```git checkout -b some-feature```
+* Commit changes â†’ push â†’ send merge request ```git add -A; git commit; git push``` MR via GitLab (link shown in console)
+* Feature is reviewed
+  * MR accepted: Reviewer checks out Â»next-release« branch and cherry-picks the commit ```git checkout next-release; git cherry-pick be4369641; git push```
+  * MR declined: Reviewer add some notes, Developer rebases his branch, adds neccessary changes, force pushes the branch, ask a reviewer to review the changes in the merge request ticket (as Gitlab recognizes them automatically) ```git checkout some-feature; git rebase upstream/next-release``` â€¦[add changes]… ```git add -A, git commit --amend; git push -f```

patrick-canterino.de