Update and merged outdated package_list_fr into dev documentation

This commit is contained in:
Alexandre Aubin 2019-10-22 16:39:44 +02:00
parent be627c465c
commit 3747c99110
3 changed files with 81 additions and 43 deletions

44
dev.md
View file

@ -24,6 +24,46 @@ If you're looking for stuff to implement or fix, the bug-tracker is
- You can also work on the other projects on which YunoHost is built
(SSOwat, moulinette) in similar ways
### Overview of the 4 main pieces of YunoHost
#### Moulinette
It is a small "homemade" framework. [Its major role](https://moulinette.readthedocs.io/en/latest/actionsmap.html)
is to allow us to build both a web API and a command-line API from the same
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).
Moulinette has its own documentation available [here](https://moulinette.readthedocs.io/en/latest/).
#### Yunohost
This piece is the very core of YunoHost. It contains:
- [the python code](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost) that manages users, domains, apps, services and other things
- [bash helpers](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/helpers.d) mainly used by application packagers to package applications
- [hooks](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/hooks) and [templates](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/templates) that are used to configure the various pieces of the ecosystem such as nginx, postfix, ...
- [internationalized strings](https://github.com/YunoHost/yunohost/tree/stretch-unstable/locales)
- [tests](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost/tests)
#### SSOwat
This is the single sign-on system of YunoHost. It both contains:
- [Lua scripts](https://github.com/YunoHost/ssowat) that are directly interfaced with nginx and handle all the "technical" aspects of authentication and route accesses
- the web [user portal](https://github.com/YunoHost/SSOwat/tree/stretch-unstable/portal) which is the interface used by YunoHost's end users to log in and browse installed apps
SSOwat is configured through `/etc/ssowat/conf.json` which is generated by YunoHost.
#### Yunohost-admin
It is an *optional* dependency of YunoHost and corresponds to an interface for the web API created by YunoHost and Moulinette (c.f. the `yunohost-api` service).
It essentially contains:
- [view templates](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/views)
- corresponding [javascript controllers](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/js/yunohost/controllers) that interact with the Yunohost API
- and [internationalized strings](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/locales)
### Working on the YunoHost Python/CLI core
- Work in `/ynh-dev/yunohost/`.
@ -93,8 +133,8 @@ If you're looking for stuff to implement or fix, the bug-tracker is
##### Don't forget
- Each time you edit the actionsmap, you should restart the yunohost-api :
```service yunohost-api restart```
- Each time you edit the actionsmap or the python code, you should restart the yunohost-api :
```systemctl restart yunohost-api```
(You'll need to retype your admin password in the web interface)
- You might need to force-clear the cache of your browser sometimes to refresh

View file

@ -26,6 +26,45 @@ bug tracker est [ici](https://github.com/yunohost/issues/issues) !
- 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).
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).
Moulinette dispose de sa propre documentation [ici](https://moulinette.readthedocs.io/en/latest/).
##### Yunohost
C'est le coeur même de YunoHost. Il contient :
- [le code python](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost) qui gère les utilisateurs, domaines, applications, services et autres
- des [helpers bash](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/helpers.d) principalement utilisés par les packageurs d'applications dans les scripts de ces applications
- des [hooks](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/hooks) et [templates](https://github.com/YunoHost/yunohost/tree/stretch-unstable/data/templates) qui sont utilisés pour configurer les différents éléments de l'écosystème tels que nginx, postfix, ....
- des [chaînes internationalisées](https://github.com/YunoHost/yunohost/tree/stretch-unstable/locales)
- des [tests](https://github.com/YunoHost/yunohost/tree/stretch-unstable/src/yunohost/tests)
##### SSOwat
C'est le système de connexion unique (single sign-on) de YunoHost. Il contient principalement:
- [du code LUA](https://github.com/YunoHost/ssowat) interfacé directement avec nginx et qui gère tous les aspects "techniques" de l'authentification et de la gestion des accès aux ressources.
- le [portail web utilisateur](https://github.com/YunoHost/SSOwat/tree/stretch-unstable/portal) qui est l'interface finale visible pour les utilisateurs de YunoHost
SSOwat est configuré via `/etc/ssowat/conf.json` qui est généré par YunoHost.
##### Yunohost-admin
C'est une dépendance *optionnelle* de YunoHost et correspond à une interface pour l'API web créée par YunoHost et Moulinette (service `yunohost-api`).
Il contient essentiellement :
- [des templates pour les vues](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/views)
- les [contrôleurs javascript](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/js/yunohost/controllers) correspondants, qui interagissent avec l'API Yunohost
- et es [chaînes internationalisées](https://github.com/YunoHost/yunohost-admin/tree/stretch-unstable/src/locales)
### Travailler sur le cœur Python / ligne de commande
- Allez dans `/ynh-dev/yunohost/`.

View file

@ -1,41 +0,0 @@
# Fonctionnement de YunoHost
### Les branches de développement de YunoHost
Afin de mettre en place un système automatisé de compilation des paquets Debian, le développement de YunoHost progresse désormais autour de trois branches principales :
- **stable** : il sagit du code des paquets Debian utilisés en live par les utilisateurs de YunoHost.
- **testing** : il sagit du code éligible pour la création dune nouvelle version de YunoHost, il est supposé stable mais manque de test. La branche testing peut notamment servir pour corriger rapidement certains bugs.
- **unstable** : il sagit là des derniers codes ajoutés au dépôt mais qui sont connus pour être instables voir inachevés. Cest à destination de cette branche que vous devez faire vos pull request. Si votre travail est conséquent mais inachevé, il convient denvisager de créer une branche à part, thématique (exemple : backup).
Les numéros de version des paquets stable sont pairs, les numéros de version des paquets testing sont impairs. Ainsi, la version 2.3 de YunoHost est une version de test qui sera transformée en version 2.4 si les tests sont concluants.
### Paquets YunoHost
Avant daller plus loin, il convient de rappeler le rôle des différents paquets YunoHost.
#### Paquet moulinette
La moulinette est un framework qui permet de créer une API web ainsi quune API en ligne de commande à partir dun même code Python et dun schéma en yaml.
La ligne de commande `yunohost` est écrite avec ce framework, La moulinette est donc une dépendance de YunoHost.
La moulinette est un code écrit par les développeurs YunoHost. À lorigine, la moulinette était fusionnée avec le code YunoHost, mais il a été décidé de scinder les deux afin de permettre lutilisation de la moulinette pour dautres projets.
#### Paquet yunohost
Le paquet yunohost est le cœur de YunoHost, ce paquet contient depuis la version 2.3 (testing) le code du programme en ligne de commande `yunohost`. Il contient également des helpers qui peuvent être utilisées par les scripts des apps YunoHost, ainsi que les templates de configuration des dépendances de YunoHost.
Note : à partir de la version 2.3 (testing), le code de la ligne de commande `yunohost` initialement dans le paquet moulinette-yunohost a été rapatrié dans le paquet yunohost. Un système 2.2 contient donc deux paquets au lieu dun seul : yunohost et moulinette-yunohost.
#### Paquet SSOwat
SSOwat est un système de Single Sign On pour Nginx écrit en Lua. Cest ce système qui génère linterface que les utilisateurs YunoHost voient. Il permet de protéger des URLs et dautoriser des utilisateurs à accéder ou non à ces ressources.
SSOwat est comme la moulinette une dépendance de YunoHost, mais peut aussi être utilisée séparément sur dautres projets.
#### Paquet yunohost-admin (optionnel)
Ce paquet contient linterface dadministration web de YunoHost, obligatoire dans la version 2.2, il est optionnel depuis la version 2.3 (testing).
Linterface dadministration nest en réalité quun client qui se connecte à lAPI web généré par la moulinette et le paquet yunohost.
Le service yunohost-api doit donc être start pour utiliser ladministration web.
### Conseils de développement
#### Traduction
Afin déviter des problèmes de fusion, lorsque vous ajoutez ou modifiez une clé de traduction dans les fichiers json situés dans les répertoires locales des dépôts git, il est demandé dajouter les clés uniquement dans le fichier en.json, même si vous savez faire la traduction pour dautres langues.
Les traductions se font ensuite sur <a href='https://translate.yunohost.org/' target='_BLANK'>weblate</a>. Donc si effectivement vous savez traduire dans une autre langue, nhésitez pas à y faire un tour.