Small typos

This commit is contained in:
ericgaspar 2020-09-30 18:19:44 +02:00
parent 3d80488468
commit 8acc960026
No known key found for this signature in database
GPG key ID: 574F281483054D44
16 changed files with 38 additions and 94 deletions

View file

@ -3,7 +3,7 @@
Amoung other communication tools, YunoHost project use chat rooms to communicate.
You could join those chat rooms using:
- an [IRC Client](https://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients) for example [kiwiirc](https://kiwiirc.com/client/irc.freenode.net/yunohost)
- an [IRC Client](https://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients) for example [KiwiIRC](https://kiwiirc.com/client/irc.freenode.net/yunohost)
- an [XMPP client](https://en.wikipedia.org/wiki/Comparison_of_instant_messaging_clients)
- a [Matrix client](https://matrix.org/docs/guides/faq.html#what-clients-are-available%3F)

View file

@ -3,7 +3,7 @@
El proyecto YunoHost utiliza salas de chat como medio de communicación.
Puede unirse a una sala de chat utilizando :
- un [cliente IRC](https://es.wikipedia.org/wiki/Anexo:Clientes_IRC) por ejemplo [kiwiirc](https://kiwiirc.com/client/irc.freenode.net/yunohost)
- un [cliente IRC](https://es.wikipedia.org/wiki/Anexo:Clientes_IRC) por ejemplo [KiwiIRC](https://kiwiirc.com/client/irc.freenode.net/yunohost)
- un [cliente XMPP](https://es.wikipedia.org/wiki/Anexo:Comparaci%C3%B3n_de_clientes_de_mensajer%C3%ADa_instant%C3%A1nea)
- un [cliente Matrix](https://matrix.org/docs/guides/faq.html#what-clients-are-available%3F)

View file

@ -3,14 +3,14 @@
Parmi dautres outils, le projet YunoHost se sert de salons de discussions pour communiquer.
Vous pouvez rejoindre ces salons avec :
- un [Client IRC](https://fr.wikipedia.org/wiki/Liste_de_clients_IRC)
- un [Client IRC](https://fr.wikipedia.org/wiki/Liste_de_clients_IRC) par exemple [KiwiIRC](https://kiwiirc.com/client/irc.freenode.net/yunohost)
- un [Client XMPP](https://fr.wikipedia.org/wiki/Clients_XMPP)
- un [Client Matrix](https://linuxfr.org/news/matrix-pour-decentraliser-skype-whatsapp-signal-slack-et-discord)
#### Salon d'entraide et de support
Le salon d[entraide](/help) est là pour permettre aux utilisateurs de YunoHost de s'aider mutuellement.
- IRC : **#yunohost** sur irc.freenode.net (voir kiwiirc ci-dessus)
- IRC : **#yunohost** sur irc.freenode.net (voir KiwiIRC ci-dessus)
- Matrix : **#freenode_#yunohost:matrix.org**
- XMPP : **[support@conference.yunohost.org](xmpp:support@conference.yunohost.org?join)**

2
dev.md
View file

@ -34,7 +34,7 @@ Python code thanks to a YAML schema which we call
[the actionmap](https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/actionsmap/yunohost.yml).
It handles other mechanisms like authentication, internationalization and
small technical utilitary functions (e.g. reading/writing json).
small technical utilitary functions (e.g. reading/writing JSON).
Moulinette has its own documentation available [here](https://moulinette.readthedocs.io/en/latest/).

View file

@ -1,38 +1,26 @@
## Contribuer au cœur de YunoHost
Vous souhaitez ajouter une nouvelle fonctionnalité au cœur de YunoHost, mais ne
savez pas comment procéder ? Ce guide parcourt les étapes du développement et du
processus de contribution.
Vous souhaitez ajouter une nouvelle fonctionnalité au cœur de YunoHost, mais ne savez pas comment procéder ? Ce guide parcourt les étapes du développement et du processus de contribution.
Si vous cherchez quelque chose à implémenter ou un bug à réparer, le
bug tracker est [ici](https://github.com/yunohost/issues/issues) !
Si vous cherchez quelque chose à implémenter ou un bug à réparer, le bug tracker est [ici](https://github.com/yunohost/issues/issues) !
**Venez dire coucou sur le [salon de dev](/chat_rooms)** !
### Mettre en place un environnement de développement
- **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 virtuelle, 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 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.
- **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 virtuelle, 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 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 :
- **Cœur Python/ligne de commande** : allez dans `/ynh-dev/yunohost/`
- **Interface d'administration web** : allez dans `/ynh-dev/yunohost-admin/`
- Vous pouvez aussi travailler sur les autres projets liés sur lesquels
s'appuie YunoHost (SSOwat, Moulinette) de façon similaire.
- Vous pouvez aussi travailler sur les autres projets liés sur lesquels s'appuie YunoHost (SSOwat, Moulinette) de façon similaire.
### Vue d'ensemble des 4 morceaux principaux de YunoHost
##### Moulinette
C'est un petit framework "fait maison". [Son rôle principal](https://moulinette.readthedocs.io/en/latest/actionsmap.html)
est de permettre de construire une API Web et une API en ligne de commande à partir d'un même code Python et d'un schéma YAML que nous appelons
[l'actionmap](https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/actionsmap/yunohost.yml).
C'est un petit framework "fait maison". [Son rôle principal](https://moulinette.readthedocs.io/en/latest/actionsmap.html) est de permettre de construire une API Web et une API en ligne de commande à partir d'un même code Python et d'un schéma YAML que nous appelons [l'actionmap](https://github.com/YunoHost/yunohost/blob/stretch-unstable/data/actionsmap/yunohost.yml).
Il prend en charge d'autres mécanismes tels que l'authentification, l'internationalisation et des petites fonctions utilitaires techniques (par ex. lecture/écriture de fichiers JSON).
@ -70,31 +58,17 @@ Il contient essentiellement :
- Exécutez `cd /ynh-dev && ./ynh-dev use-git yunohost`.
- 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.
- 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.
- Moulinette va automatiquement faire le lien entre les commandes de
l'actionsmap et les fonctions Python (ainsi que leurs arguments) dans
`src/yunohost/`. Par exemple, `yunohost domain add some.domain.tld`
déclenchera un appel de `domain_add(domainName)` dans `domain.py`, avec l'argument
`domainName` qui vaudra `"some.domain.tld"`.
- Moulinette va automatiquement faire le lien entre les commandes de l'actionsmap et les fonctions Python (ainsi que leurs arguments) dans `src/yunohost/`. Par exemple, `yunohost domain add some.domain.tld` déclenchera un appel de `domain_add(domainName)` dans `domain.py`, avec l'argument `domainName` qui vaudra `"some.domain.tld"`.
##### Helpers / style de code
- Pour gérer les exceptions, il existe un type `YunohostError()`
- Pour aider avec l'internationalisation des messages, utilisez `m18n.n('some-message-id')`
et mettez le message correspondant dans `locales/en.json`. Vous pouvez aussi
utiliser des arguments pour construire les messages, avec `{{some-argument:s}}`.
Ne modifiez pas de fichiers de locales autres que en.json, la traduction sera
faite avec [Weblate](https://translate.yunohost.org/) !
- Pour aider avec l'internationalisation des messages, utilisez `m18n.n('some-message-id')` et mettez le message correspondant dans `locales/en.json`. Vous pouvez aussi utiliser des arguments pour construire les messages, avec `{{some-argument:s}}`. 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
outils existent pour vérifier automatiquement la conformité du code.
- 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".
@ -102,61 +76,31 @@ Il contient essentiellement :
- Allez dans `/ynh-dev/yunohost-admin/src/`.
- Exécutez `cd /ynh-dev && ./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.
- Exécutez `cd /ynh-dev && ./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éfinies dans l'actionsmap. Par
exemple, accéder à la page `https://domain.tld/yunohost/api/users`
correspond à une requête `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 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.
- 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` correspond à une requête `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 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` contient 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 traiter les données récupérées pour générer la page, en utilisant
des templates.
- `js/yunohost/controllers` contient 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 traiter les données récupérées pour générer la page, en utilisant des templates.
- `views` contient les templates des pages de l'interface. Dans le template,
les données venant du JavaScript peuvent être 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
d'[handlebars.js](http://handlebarsjs.com) : `{{#if
- `views` contient les templates des pages de l'interface. Dans le template, les données venant du JavaScript peuvent être 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 d'[handlebars.js](http://handlebarsjs.com) : `{{#if
some-variable}}<p>du HTML conditionnel ici !</p>{{/if}}`
- Pour l'internationalisation des messages, utilisez `y18n.t('some-string-code')`
dans le JavaScript, ou `{{t 'some-string-code'}}` dans le template HTML, et
mettez votre message dans `locales/en.json`. Ne modifiez pas de fichiers de
locales autres que en.json, la traduction sera faite avec
[Weblate](https://translate.yunohost.org/) !
- Pour l'internationalisation des messages, utilisez `y18n.t('some-string-code')` dans le JavaScript, ou `{{t 'some-string-code'}}` dans le template HTML, et mettez votre message dans `locales/en.json`. Ne modifiez pas de fichiers de locales autres que `en.json`, la traduction sera faite avec [Weblate](https://translate.yunohost.org/) !
##### N'oubliez pas
- À chaque modification de l'actionsmap, il faut redémarrer l'API YunoHost :
`service yunohost-api restart`
(Il faudra retaper le mot de passe administrateur dans l'interface web)
- À chaque modification de l'actionsmap, il faut redémarrer l'API YunoHost : `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 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).
- 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
- 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 suivante :
- 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 suivante :
- Pour une nouvelle fonctionnalité ou amélioration : `enh-ISSUENUMBER-description-fonctionnalité`
- Pour une correction de bug : `fix-REDMINETICKET-description-correctif`
- `ISSUENUMBER` est optionnel et correspond au numéro du ticket sur le bug tracker
- Une fois prêt, ouvrez une Pull Request (PR) sur Github. De préférence, inclure
`[fix]` ou `[enh]` au début du titre de la PR.
- Une fois prêt, ouvrez une Pull Request (PR) sur Github. De préférence, inclure `[fix]` ou `[enh]` au début du titre de la PR.
- Après relecture, test et validation par les autres contributeurs, votre
branche sera mergée dans `unstable` !
- Après relecture, test et validation par les autres contributeurs, votre branche sera mergée dans `unstable` !

View file

@ -52,7 +52,7 @@ Groups are structured as a result of the fact that YunoHost counts many sub-proj
- ##### Infra/Sysadmin Group
- Infrastructure
- Website (wiki, forum, chat room, redmine, mumble)
- Website (wiki, forum, chat room, redmine, Mumble)
- Demo
- Services
- [ip.yunohost.org](https://ip.yunohost.org/) and ip6.yunohost.org

View file

@ -121,7 +121,7 @@ Une PR peut être créée même si son auteur juge qu'elle n'est pas encore term
Il appartient aussi à l'auteur de la PR de juger de son importance. (Ce jugement pourra cependant être contesté par les autres membres du groupe concerné par la PR.) Les niveaux d'importance utilisés sont les suivants :
- **micro** : concerne uniquement un détail de forme et/ou qui ne nécessite pas d'être débattue et testée. Elle doit être facilement réversible.
- **mineure** : impacte de manière légère le projet (e.g. refactoring d'une petite partie de code, réparation d'un bug...)
- **moyenne** : impacte de manière significative l'architecture d'une partie du code (e.g. refactoring de tout un aspect ou de tout un fichier, ajout d'une fonctionnalité importante, sortie d'une version testing, ...)
- **moyenne** : impacte de manière significative l'architecture d'une partie du code (e.g. refactoring de tout un aspect ou de tout un fichier, ajout d'une fonctionnalité importante, sortie d'une version testing...)
- **majeure** : impacte lourdement l'ensemble du projet (e.g. migration d'une dépendance critique, changement de version de Debian, sortie d'une version stable...)
@ -148,7 +148,7 @@ Si l'auteur ne fait pas parti du groupe concerné par la PR, tous ces quotas son
Une fois les quotas de relecture remplis, et si aucun refus n'a été prononcé et qu'aucune demande de changement n'est en attente, n'importe quel membre du groupe peut alors déclarer et marquer la PR comme "prête à être mergée".
Pendant une durée de 3 jours suivant cette déclaration, les membres du groupe peuvent encore relire, demander des changements ou émettre un refus vis-à-vis de la PR. Dans ce cas, le merge est interrompu et le processus retourne à la partie 2). Pour les PRs moyennes et majeures, la durée est augmentée jusqu'à ce qu'il se soit écoulé au moins une semaine par rapport au moment où la PR a été déclarée comme prête par son auteur.
Pendant une durée de 3 jours suivant cette déclaration, les membres du groupe peuvent encore relire, demander des changements ou émettre un refus vis-à-vis de la PR. Dans ce cas, le merge est interrompu et le processus retourne à la partie 2. Pour les PRs moyennes et majeures, la durée est augmentée jusqu'à ce qu'il se soit écoulé au moins une semaine par rapport au moment où la PR a été déclarée comme prête par son auteur.
À l'issue de cette durée, n'importe quel membre du groupe peut merger la PR. Lorsque celle-ci comporte plusieurs commits, il est recommandé d'utiliser la fonction "squash and merge" pour garder l'historique de commit propre.