Les contributions externes sont les bienvenues !
-
Vérifiez que vous avez un compte Github
-
Créez votre issue si elle n'existe pas
- Vérifiez que vous avez la dernière version du code
- Décrivez clairement votre problème, avec toutes les étapes pour le reproduire
-
Attribuez-vous votre issue. C'est important pour éviter de se marcher dessus. Si vous n'êtes pas dans l'organisation et donc que vous ne pouvez pas vous attribuer directement l'issue, il vous suffit d'ajouter un commentaire clair dans celle-ci (comme "Je prends"), et elle sera marquée comme "In progress").
-
Forkez le dépôt
- Créez une branche pour contenir votre travail
- Faites vos modifications
- Ajoutez un test pour votre modification. Seules les modifications de documentation et les réusinages n'ont pas besoin de nouveaux tests
- Assurez-vous que l'intégralité des tests passent
- Assurez-vous que le code suit les conventions de CakePHP
phpcs --standard=CakePHP /chemin/vers/code/monFichier.inc
- Assurez-vous que le code suit le standard de PEAR
phpcs /chemin/vers/code/monFichier.inc
- Assurez-vous que le test suit la convention test de CakePHP
- Si votre travail nécessite des actions spécifiques lors du déploiement, précisez-les dans le fichier update.md.
- Vous pouvez regarder votre coverage avec phpunit avant de pousser votre travail avec cette commande :
phpunit -d zend.enable_gc=0 --coverage-html path
- Poussez votre travail et faites une pull request
-
Le code et les commentaires sont en anglais
-
Le workflow Git utilisé est le Git flow. En détail :
- Les arrivées fonctionnalités et corrections de gros bugs hors release se font via des PR.
- Ces PR sont unitaires. Aucune PR qui corrige plusieurs problèmes ou apporte plusieurs fonctionnalité ne sera accepté ; la règle est : une fonctionnalité ou une correction = une PR.
- Ces PR sont mergées dans la branche
dev
(appeléedevelop
dans le git flow standard), après une QA légère. - Pensez à préfixer vos branches selon l'objet de votre PR :
hotfix-XXX
,feature-XXX
, etc. - La branche
prod
(appeléemaster
dans le git flow standard) contient exclusivement le code en production, pas la peine d'essayer de faire le moindre commit dessus !
-
Votre test doit échouer sans votre modification, et réussir avec
-
Faites des messages de commit clairs
-
Il n'y a aucune chance que votre pull request soit acceptée sans son test associé
-
Lors de l'ouverture d'une PR, respectez le template suivant :
| Q | R | ----------------------------- | ------------------------------------------- | Correction de bugs ? | [oui|non] | Nouvelle Fonctionnalité ? | [oui|non] | Tickets (_issues_) concernés | [Liste de tickets séparés par des virgules]
-
Ajoutez des notes de QA (Quality Assurance). Ces notes doivent permettent à un testeur de comprendre ce que vous avez modifié, ce qu'il faut tester en priorité et les pièges auxquels il doit s'attendre et donc sur lesquels porter une attention particulière. Précisez tout particulièrement s'il est nécessaire d'effectuer une action de gestion préalable.
-
Pour les commits, nous suivons le même ordre d'idée des standards Git, à savoir :
- La première ligne du commit ne doit pas faire plus de 50 caractères
- Si besoin, complétez votre commit via des commentaires, en respectant une limite de 70 caractères par ligne
- Vous pouvez également (c'est d'ailleurs conseillé) de référencer l'issue que vous fixez
- Un commit doit être atomique ; il fixe / implémente une chose et le fait bien
-
Essayez d'éviter les commits dits inutiles (
fix previous commit
, ...). Si vous en avez dans votre pull-request, on vous demandera probablement de faire unsquash
de vos commits.
N'hésitez pas à demander de l'aide, et bon courage !
============================================ ENGLISH
External contributions are welcome!
-
Verify that you have a Github account
-
Create your issue if it does not exist
- Make sure you have the latest project version
- Describe clearly your problem and the sequence to reproduce it
-
Flag yourself on the issue. It is important for a good work flow. If you are not aprt of the organisation, thus can't flag yourself on the issue, you just need to add "Working on it" and the issue will mark as "In progress".
-
Fork the repo
- Create a branch
- Work on it
- Test your code!. Only documentation and refactoring modifications does not need to have new tests.
- Make sure the tests are sucessful
- Make sure the code follow CakePHP convention
phpcs --standard=CakePHP /chemin/vers/code/monFichier.inc
- Make sure the code follow PEAR code standard
phpcs /path/to/code/myfile.inc
- Make sure the test follow CakePHP test convention
- If your work need specific tasks for deployment, make sure to notify it in update.md.
- You can check your coverage with phpunit before sending your work with this command:
phpunit -d zend.enable_gc=0 --coverage-html path
- Push and create a pull request
-
Code and comments are in english
-
Follow Git workflow .
- Functionnality and big bugs are made via Pull Requests
- One bug/fucntionnality per pull requests, no exception!
- Those pull requests are merged into the
dev
branch (Git flow :develop
branch) - Name the branch based on the modification :
hotfix-XXX
,feature-XXX
, etc. - The branch
prod
(Git flow :master
branch) contains the production code. Do not try to commit on this branch !
-
Your test must fail before your modification and pass with it
-
Make thorough commit comment
-
No test, no pull request
-
PR template :
| Q | R | ----------------------------- | ------------------------------------------- | Bug fix ? | [yes|no] | New functionnality ? | [yes|no] | Tickets (_issues_) reference | [List of ticket seprated by ;]
-
Add QA comments. Those comments help to comprehend what have been modified, what must be tested and the more risky part of the code. Make sure to comment if a setup is needed beforehand.
-
For commits, we follow the Git philosophy :
- The first line must not be more than 50 caracters
- If needed, complete your commit by adding comments (maximum of 70 characters per following lines)
- Reference the issue associated with the fix
- One fix , and one good fix only, per commit (atomic)
-
Make sure your pull request does not have any useless commits E.G (
fix previous commit
, ...). If you have any, squash it.
Dont hesitate to ask for help, good luck!