diff --git a/dev_fr.md b/dev_fr.md index 4c91094e..e623d853 100644 --- a/dev_fr.md +++ b/dev_fr.md @@ -1,6 +1,6 @@ -## Contribuer au coeur de Yunohost +## Contribuer au cœur de YunoHost -Vous souhaitez ajouter une nouvelle fonctionnalité au coeur de Yunohost, mais ne +Vous souhaitez ajouter une nouvelle fonctionnalité au cœur de YunoHost, mais ne savez pas comment procéder ? Ce guide parcours les étapes du développement et du processus de contribution. @@ -16,27 +16,27 @@ XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page. - **Utilisez [ynh-dev](https://github.com/YunoHost/ynh-dev)** (voir le README) pour mettre en place un environnement de développement - en local sur une machine virtuel, ou bien sur un VPS. - Ceci installera une instance fonctionelle de Yunohost, en utilisant - directement les dépôts git à l'aide de liens symboliques. De cette facon, il + Ceci installera une instance fonctionelle de YunoHost, en utilisant + directement les dépôts git à l'aide de liens symboliques. De cette façon, il vous sera possible de modifier les fichiers, de tester les changements en temps réel, et de commiter et push/pull directement depuis cet environnement. - **Implémentez et testez votre fonctionnalité**. Suivant ce sur quoi vous voulez travailler : - - **Coeur Python/ligne de comande** : allez dans `/vagrant/yunohost/` + - **Cœur Python/ligne de comande** : allez dans `/vagrant/yunohost/` - **Interface d'administration web** : allez dans `/vagrant/yunohost-admin/` - Vous pouvez aussi travailler sur les autres projets liés sur lesquels - s'appuie Yunohost (SSOwat, moulinette) de facon similaire. + s'appuie YunoHost (SSOwat, moulinette) de façon similaire. -### Travailler sur le coeur Python / ligne de commande +### Travailler sur le cœur Python / ligne de commande - Allez dans `/vagrant/yunohost/`. - Executez `/vagrant/ynh-dev use-git yunohost`. -- Le fichier actionsmap (`data/actionsmap/yunohost.yml`) défini les différentes - catégories, actions et arguments de la ligne de commande Yunohost. Choisissez - comment vous voulez que les utilisateurs utilise votre fonctionnalité, et +- Le fichier actionsmap (`data/actionsmap/yunohost.yml`) définit les différentes + catégories, actions et arguments de la ligne de commande YunoHost. Choisissez + comment vous voulez que les utilisateurs utilisent votre fonctionnalité, et ajoutez/éditez les catégories, actions et arguments correspondants. Par exemple, dans `yunohost domain add some.domain.tld`, la catégorie est `domain`, l'action est `add` et `some.domain.tld` est un argument. @@ -57,7 +57,7 @@ XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page. Ne modifiez pas de fichiers de locales autres que en.json, la traduction sera faite avec [weblate](https://translate.yunohost.org/) ! -- Yunohost essaye de suivre le style de code [pep8](http://pep8.org/). Des +- YunoHost essaye de suivre le style de code [pep8](http://pep8.org/). Des outils existent pour vérifier automatiquement la conformité du code. - Mettre un `_` devant les noms des fonctions "privées". @@ -65,34 +65,34 @@ XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page. ##### N'oubliez pas - (Peut-être plus nécessaire) À chaque fois que vous modifiez l'actionsmap, il - faut forcer le rafraichissement du cache avec : + faut forcer le rafraîchissement du cache avec : `rm /var/cache/moulinette/actionsmap/yunohost.pkl` ### Travailler sur l'interface d'administration web - Allez dans `/vagrant/yunohost-admin/src/`. -- Executez `/vagrant/ynh-dev use-git yunohost-admin`. Ceci lance gulp, de sorte - à ce que à chaque fois que vous modifiez les sources, il recompilera le code +- Exécutez `/vagrant/ynh-dev use-git yunohost-admin`. Ceci lance gulp, de sorte + qu'à chaque fois que vous modifiez les sources, il recompilera le code (js) et vous pourrez voir les changements dans le navigateur web (Ctrl+F5). Pour stopper la commande, faites simplement Ctrl+C. -- L'interface web utilise une API pour communiquer avec Yunohost. Les - commandes/requêtes de l'API sont également définie dans l'actionsmap. Par +- L'interface web utilise une API pour communiquer avec YunoHost. Les + commandes/requêtes de l'API sont également définies dans l'actionsmap. Par exemple, accéder à la page ```https://domain.tld/yunohost/api/users``` - corresponds à une requete `GET /domains` vers l'API yunohost. Cette requete + correspond à une requete `GET /users` vers l'API YunoHost. Cette requête est mappée sur `user_list()`. Accéder à cette URL devrait afficher le json - retourné par cette fonction. Les requetes `GET' sont typiquement destinés à - demander de l'information au serveur, tandis que les requetes `POST` sont + retourné par cette fonction. Les requêtes `GET' sont typiquement destinées à + demander de l'information au serveur, tandis que les requêtes `POST` sont destinées à demander au serveur de modifier/changer des informations ou de réaliser des actions. -- `js/yunohost/controllers` contiens les parties javascript, et défini quelles +- `js/yunohost/controllers` contiens les parties javascript, et définit quelles requêtes faire à l'API pendant le chargement d'une page donnée de l'interface, et comment traîter les données récupérées pour générer la page, en utilisant des templates. -- `views` contiens les templates des pages de l'interface. Dans le template, +- `views` contient les templates des pages de l'interface. Dans le template, les données venant du javascript peuvent êtres utilisées avec la syntaxe `{{some-variable}}`, qui sera remplacée pendant la construction de la page. Il est également possible d'avoir des conditions avec la syntaxe @@ -111,14 +111,14 @@ XMPP, vous devriez pouvoir vous connecter à l'aide du widget en bas de la page. ```service yunohost-api restart``` (Il faudra retaper le mot de passe administrateur dans l'interface web) -- Il faudra peut-être régulièrement forcer le rafraichissement du cache +- Il faudra peut-être régulièrement forcer le rafraîchissement du cache navigateur pour propager correctement le javascript et/ou HTML (à chaque fois que l'on change quelque chose dans `js` ou `views`, donc). -### Votre fonctionnalité est prête et vous souhaitez qu'elle soit intégrée dans Yunohost +### Votre fonctionnalité est prête et vous souhaitez qu'elle soit intégrée dans YunoHost -- Forkez le dépòt correspondant sur Github, et commitez votre changements dans +- Forkez le dépòt correspondant sur Github, et commitez vos changements dans une nouvelle branche, Il est recommandé de nommer la branche avec la convention : - Pour une nouvelle fonctionnalité ou amélioration : `enh-TICKETREDMINE-description-fonctionnalité`