CONTRIBUTING.md 1.86 KB
Newer Older
1
2
3
4
5
# Contribuer au développement de Néobab

Ce projet utilise [Poetry][] pour gérer ses dépendances. Cet outil est nécessaire
pour la plupart des opérations de développement.

6
[Poetry]: https://python-poetry.org/docs
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

Il est conseillé de gérer manuellement son environnement virtuel afin de
ne pas avoir à ajouter `poetry run` avant chaque commande.

Pour installer le logiciel et ses dépendances de développement :

    $ poetry install

Pour lancer le serveur :

    $ invoke -e serve

Avant de *commiter* des changements :

    $ invoke -e format test

23
24
25
26
Pour avoir la liste des commandes disponibles :

    $ invoke -l

27
28
29
Pour créer un paquet Python :

    $ invoke -e build
30
31
32
33
34
35
    $ # Si nécessaire, enregistrer les modifications.
    
    $ export VERSION="x.y.z"
    $ poetry version $VERSION
    $ git ci -m "Incrémente la version à $VERSION." pyproject.toml
    $ git tag -a $VERSION -m "version $VERSION"
36
    $ poetry build
37
    $ poetry publish -r <REPO_NAME>
38
39
40
41
42
43


## Gestion de la base de données

Pour générer une nouvelle migration après une modification du schéma :

44
    $ neobab config.ini revision add "Description du changement"
45
    $ # la passer en revue
46
    $ neobab config.ini db migrate
47
48
49
50
51
52
53
54
55
56


## Gestion des traductions

Quand des chaînes à traduire ont été rajoutées dans le code, il faut les extraire :

    $ invoke -e i18n.extract i18n.update

Il faut ensuite procéder à leur traduction avec, par exemple, [Poedit][] :

57
    $ poedit neobab/locale/fr_FR/LC_MESSAGES/neobab.po
58
59
60
61
62
63
64

Poedit devrait générer la version compilée (`.mo`), mais cela peut aussi être fait
manuellement.

    $ invoke -e i18n.compile

[Poedit]: https://poedit.net/
65
66
67
68
69
70
71
72


## Génération du schéma de la base de données

La génération du schéma dépend de `dot` qui est disponible dans la suite logiciel
`graphviz`.

    $ python utils/extract_schema.py development.ini doc/db_schema.png