CONTRIBUTING.md 3.21 KB
Newer Older
Krophil's avatar
Krophil committed
1
*Contribuer c'est la vie*
Krophil's avatar
Krophil committed
2 3 4 5
=========================

Hey ! Tu veux devenir un mec bien et en plus devenir bon en python si tu l'es pas déjà ?
Il se trouve que le sith AE prévu pour l'été 2016 a besoin de toi !
Krophil's avatar
Krophil committed
6

7
Pour faire le sith, on utilise le framework Web [Django](https://docs.djangoproject.com/fr/1.11/intro/)  
Krophil's avatar
Krophil committed
8 9
N'hésite pas à lire les tutos et à nous demander (ae.info@utbm.fr).

10
Bon, passons aux choses sérieuses, pour bidouiller le sith sans le casser :  
Krophil's avatar
Krophil committed
11 12
Ben en fait, tu peux pas le casser, tu vas juste t'amuser comme un petit fou sur un clone du sith.

Krophil's avatar
Krophil committed
13 14
C'est pas compliqué, il suffit d'avoir [Git](http://www.git-scm.com/book/fr/v2), python et pip (pour faciliter la gestion des paquets python).

15
Tout d'abord, tu vas avoir besoin d'un compte Gitlab pour pouvoir te connecter.  
Krophil's avatar
Krophil committed
16 17 18 19
Ensuite, tu fais :
`git clone https://ae-dev.utbm.fr/ae/Sith.git`
Avec cette commande, tu clones le sith AE dans le dossier courant.

20
```bash
Krophil's avatar
Krophil committed
21
    cd Sith
22
    virtualenv --clear --python=python3 env_sith
Krophil's avatar
Krophil committed
23 24
    source env_sith/bin/activate
    pip install -r requirements.txt
25
```
Sli's avatar
Sli committed
26 27 28

Maintenant, faut passer le sith en mode debug dans le fichier de settings personnalisé.

29
```bash
Sli's avatar
Sli committed
30
    echo "DEBUG=True" > sith/settings_custom.py
Krophil's avatar
Krophil committed
31
    echo 'EXTERNAL_RES = "False"' >> sith/settings_custom.py
32
    echo 'SITH_URL = "localhost:8000"' >> sith/settings_custom.py
33
```
Sli's avatar
Sli committed
34

Sli's avatar
Sli committed
35
Enfin, il s'agit de créer la base de donnée de test lors de la première utilisation
Sli's avatar
Sli committed
36

37
```bash
38
	./manage.py setup
39
```
Krophil's avatar
Krophil committed
40

Krophil's avatar
Krophil committed
41
Et pour lancer le sith, tu fais `python3 manage.py runserver`
Krophil's avatar
Krophil committed
42

Sli's avatar
Sli committed
43
Voilà, c'est le sith AE. Il y a des issues dans le gitlab qui sont à régler. Si tu as un domaine qui t'intéresse, une appli que tu voudrais développer, n'hésites pas et contacte-nous.
Krophil's avatar
Krophil committed
44 45
Va, et que l'AE soit avec toi.

46 47 48
# Black

Pour uniformiser le formattage du code nous utilisons [Black](https://github.com/ambv/black). Cela permet d'avoir le même codestyle et donc le codereview prend moins de temps. Tout étant dans le même format, il est plus facile pour chacun de comprendre le code de chacun ! Cela permet aussi d'éviter des erreurs (y parait 🤷‍♀️).
Soldat's avatar
Soldat committed
49 50 51

Installation de black:

52
```bash
Soldat's avatar
Soldat committed
53
    pip install black
54 55 56 57
```

## Sous VsCode:
Attention, pour VsCode, Black doit être installé dans votre virtualenv !
Soldat's avatar
Soldat committed
58 59
Ajouter ces deux lignes dans les settings de VsCode

60 61
```json
{
Soldat's avatar
Soldat committed
62
    "python.formatting.provider": "black",
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
    "editor.formatOnSave": true
}
```

## Sous Sublime Text
Il faut installer le plugin [sublack](https://packagecontrol.io/packages/sublack) depuis Package Control.

Il suffit ensuite d'ajouter dans les settings du projet (ou en global)

```json
{
    "sublack.black_on_save": true
}
```

Si vous utilisez le plugin [anaconda](http://damnwidget.github.io/anaconda/), pensez à modifier les paramètres du linter pep8 pour éviter de recevoir des warnings dans le formatage de black

```json
{
    "pep8_ignore": [
      "E203",
      "E266",
      "E501",
      "W503"
    ]
}
```
Soldat's avatar
Soldat committed
90

Krophil's avatar
Krophil committed
91 92
Sites et doc cools
------------------
Krophil's avatar
Krophil committed
93

94
[Classy Class-Based Views](http://ccbv.co.uk/projects/Django/1.11/)
Skia's avatar
Skia committed
95 96 97 98 99

Helpers:

`./manage.py makemessages --ignore "env/*" -e py,jinja`

100
`for f in $(find . -name "*.py" ! -path "*migration*" ! -path "./env/*" ! -path "./doc/*"); do cat ./doc/header "$f" > /tmp/temp && mv /tmp/temp "$f"; done`
Skia's avatar
Skia committed
101 102 103 104