2019-08-11 10:11:35 +00:00
Installer le projet
===================
Dépendances du système
----------------------
Certaines dépendances sont nécessaires niveau système :
2021-10-15 16:12:56 +00:00
* poetry
2019-08-11 10:11:35 +00:00
* libssl
* libjpeg
* zlib1g-dev
2021-12-02 11:22:34 +00:00
* python
2019-10-13 00:15:58 +00:00
* gettext
* graphviz
2019-08-11 10:11:35 +00:00
2022-12-18 14:27:33 +00:00
Sur Windows
~~~~~~~~~~~
2021-10-15 16:12:56 +00:00
2022-12-18 14:27:33 +00:00
Chers utilisateurs de Windows, quel que soit votre amour de Windows,
de Bill Gates et des bloatwares, je suis désolé
de vous annoncer que, certaines dépendances étant uniquement disponibles sur des sytèmes UNIX,
il n'est pas possible développer le site sur Windows.
2019-08-11 10:11:35 +00:00
2022-12-18 14:27:33 +00:00
Heureusement, il existe une alternative qui ne requiert pas de désinstaller votre
OS ni de mettre un dual boot sur votre ordinateur : :code: `WSL` .
2019-10-13 00:15:58 +00:00
2022-12-18 14:27:33 +00:00
- **Prérequis:** vous devez être sur Windows 10 version 2004 ou ultérieure (build 19041 & versions ultérieures) ou Windows 11.
2021-11-23 18:19:24 +00:00
- **Plus d'info:** `docs.microsoft.com <https://docs.microsoft.com/fr-fr/windows/wsl/install> `_
2022-12-18 14:27:33 +00:00
2021-11-19 12:10:18 +00:00
.. sourcecode :: bash
# dans un shell Windows
2021-11-23 18:19:24 +00:00
wsl --install
2021-11-19 12:10:18 +00:00
# afficher la liste des distribution disponible avec WSL
2021-11-23 18:19:24 +00:00
wsl -l -o
2021-11-19 12:10:18 +00:00
2022-12-18 14:27:33 +00:00
# installer WSL avec une distro (ubuntu conseillé)
2021-11-23 18:19:24 +00:00
wsl --install -d <nom_distro>
2021-11-19 12:10:18 +00:00
.. note ::
2021-11-23 18:19:24 +00:00
Si vous rencontrez le code d'erreur `` 0x80370102 `` , regardez les réponses de ce `post <https://askubuntu.com/questions/1264102/wsl-2-wont-run-ubuntu-error-0x80370102> `_ .
2021-11-19 12:10:18 +00:00
2021-11-23 18:19:24 +00:00
Une fois :code: `WSL` installé, mettez à jour votre distro & installez les dépendances **(voir la partie installation sous Ubuntu)** .
2021-11-19 12:10:18 +00:00
2021-11-23 18:19:24 +00:00
.. note ::
2021-11-19 12:10:18 +00:00
2021-11-23 18:19:24 +00:00
Comme `git` ne fonctionne pas de la même manière entre Windows & Unix, il est nécessaire de cloner le repository depuis Windows.
(cf: `stackoverflow.com <https://stackoverflow.com/questions/62245016/how-to-git-clone-in-wsl> `_ )
2021-11-19 12:10:18 +00:00
2021-11-23 18:19:24 +00:00
Pour accéder au contenu d'un répertoire externe à :code: `WSL` , il suffit simplement d'utiliser la commande suivante:
2021-11-19 12:10:18 +00:00
.. sourcecode :: bash
2022-12-18 14:27:33 +00:00
2021-11-19 12:10:18 +00:00
# oui c'est beau, simple et efficace
2021-11-23 18:19:24 +00:00
cd /mnt/<la_lettre_du_disque>/vos/fichiers/comme/dhab
2022-12-18 14:27:33 +00:00
Une fois l'installation des dépendances terminée (juste en dessous), il vous suffira, pour commencer à dev, d'ouvrir votre plus bel IDE et d'avoir 2 consoles:
1 console :code: `WSL` pour lancer le projet & 1 console pour utiliser :code: `git`
2021-11-23 18:19:24 +00:00
.. note ::
2022-12-18 14:27:33 +00:00
A ce stade, si vous avez réussi votre installation de :code: `WSL` ou bien qu'il
était déjà installé, vous pouvez effectuer la mise en place du projet en suivant
les instructions pour Ubuntu.
2021-11-19 12:10:18 +00:00
2022-12-18 14:27:33 +00:00
Sur Ubuntu
~~~~~~~~~~
2019-08-11 10:11:35 +00:00
.. sourcecode :: bash
2021-11-23 18:19:24 +00:00
# Sait-on jamais
sudo apt update
2024-06-22 19:15:37 +00:00
sudo apt install python-is-python3 # Permet d'utiliser python au lieu de python3, c'est optionnel
2022-12-18 14:27:33 +00:00
sudo apt install build-essentials libssl-dev libjpeg-dev zlib1g-dev python-dev \
2024-06-22 19:15:37 +00:00
libffi-dev python-dev-is-python3 libgraphviz-dev pkg-config \
gettext git pipx
2022-12-18 14:27:33 +00:00
2024-06-22 19:15:37 +00:00
pipx install poetry
2022-12-18 14:27:33 +00:00
.. note ::
Si vous avez réussi à exécuter les instructions ci-dessus sans trop de problèmes,
vous pouvez passer à la partie :ref: `Finalise installation`
Sur MacOS
~~~~~~~~~
2024-06-22 19:15:37 +00:00
Pour installer les dépendances, il est fortement recommandé d'installer le gestionnaire de paquets `homebrew <https://brew.sh/index_fr> `_ .
Il est également nécessaire d'avoir installé xcode
2022-12-18 14:27:33 +00:00
.. sourcecode :: bash
2024-06-22 19:15:37 +00:00
echo 'export PATH="$(brew --prefix graphviz)/bin:$PATH"' >> ~/.zshrc
echo 'export CFLAGS="-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -I $(brew --prefix graphviz)/include"' >> ~/.zshrc
echo 'export LDFLAGS="-L /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib -L $(brew --prefix graphviz)/lib"' >> ~/.zshrc
2022-12-18 14:27:33 +00:00
2024-06-22 19:15:37 +00:00
brew install git python graphviz pipx
pipx install poetry
2022-12-18 14:27:33 +00:00
# Pour bien configurer gettext
brew link gettext # (suivez bien les instructions supplémentaires affichées)
.. note ::
Si vous rencontrez des erreurs lors de votre configuration, n'hésitez pas à vérifier l'état de votre installation homebrew avec :code: `brew doctor`
.. note ::
Si vous avez réussi à exécuter les instructions ci-dessus sans trop de problèmes,
vous pouvez passer à la partie :ref: `Finalise installation`
.. _Finalise installation:
Finaliser l'installation
------------------------
.. sourcecode :: bash
2021-11-23 18:19:24 +00:00
# Les commandes git doivent se faire depuis le terminal de Windows si on utilise WSL !
2022-08-13 14:07:14 +00:00
git clone https://github.com/ae-utbm/sith3.git
2022-12-18 14:27:33 +00:00
cd sith3
2019-10-13 00:15:58 +00:00
2021-10-15 16:12:56 +00:00
# Création de l'environnement et installation des dépendances
2021-11-23 18:19:24 +00:00
poetry install
2019-08-11 10:11:35 +00:00
2021-10-15 16:12:56 +00:00
# Activation de l'environnement virtuel
2021-11-23 18:19:24 +00:00
poetry shell
2019-08-11 10:11:35 +00:00
2024-06-22 19:15:37 +00:00
# Installe xapian
python manage.py install_xapian
2022-12-18 14:27:33 +00:00
# Prépare la base de données
2021-12-02 11:22:34 +00:00
python manage.py setup
2019-08-11 10:11:35 +00:00
2019-10-13 00:15:58 +00:00
# Installe les traductions
2021-12-02 11:22:34 +00:00
python manage.py compilemessages
2019-08-11 10:11:35 +00:00
2019-10-07 22:59:19 +00:00
.. note ::
2021-10-15 16:12:56 +00:00
Pour éviter d'avoir à utiliser la commande poetry shell systématiquement, il est possible de consulter :ref: `direnv` .
2019-10-07 22:59:19 +00:00
2019-08-11 10:11:35 +00:00
Configuration pour le développement
-----------------------------------
Lorsqu'on souhaite développer pour le site, il est nécessaire de passer le logiciel en mode debug dans les settings_custom. Il est aussi conseillé de définir l'URL du site sur localhost. Voici un script rapide pour le faire.
.. sourcecode :: bash
2021-11-23 18:19:24 +00:00
echo "DEBUG=True" > sith/settings_custom.py
echo 'SITH_URL = "localhost:8000"' >> sith/settings_custom.py
2019-08-11 10:11:35 +00:00
Démarrer le serveur de développement
------------------------------------
Il faut toujours avoir préalablement activé l'environnement virtuel comme fait plus haut et se placer à la racine du projet. Il suffit ensuite d'utiliser cette commande :
.. sourcecode :: bash
2021-12-02 11:22:34 +00:00
python manage.py runserver
2019-08-11 12:11:00 +00:00
2019-08-11 21:10:09 +00:00
.. note ::
2022-12-18 14:27:33 +00:00
Le serveur est alors accessible à l'adresse http://localhost:8000 ou bien http://127.0.0.1:8000/.
2019-08-11 12:11:00 +00:00
Générer la documentation
------------------------
2023-01-09 18:04:43 +00:00
La documentation est automatiquement mise en ligne sur readthedocs à chaque envoi de code sur GitHub.
2019-08-11 21:10:09 +00:00
Pour l'utiliser en local ou globalement pour la modifier, il existe une commande du site qui génère la documentation et lance un serveur la rendant accessible à l'adresse http://localhost:8080.
2019-10-13 01:15:49 +00:00
Cette commande génère la documentation à chacune de ses modifications, inutile de relancer le serveur à chaque fois.
2022-12-18 14:27:33 +00:00
.. note ::
Les dépendances pour la documentation sont optionnelles.
Avant de commencer à travailler sur la doc, il faut donc les installer
2024-06-24 09:24:08 +00:00
avec la commande :code: `poetry install --with docs`
2022-12-18 14:27:33 +00:00
2019-08-11 12:11:00 +00:00
.. sourcecode :: bash
2021-12-02 11:22:34 +00:00
python manage.py documentation
2019-08-12 22:02:34 +00:00
2019-10-13 01:15:49 +00:00
# Il est possible de spécifier un port et une adresse d'écoute différente
2021-12-02 11:22:34 +00:00
python manage.py documentation adresse:port
2019-10-13 01:15:49 +00:00
2019-08-12 22:02:34 +00:00
Lancer les tests
----------------
Pour lancer les tests il suffit d'utiliser la commande intégrée à django.
.. code-block :: bash
# Lancer tous les tests
2024-06-26 17:10:24 +00:00
pytest
2019-08-12 22:02:34 +00:00
# Lancer les tests de l'application core
2024-06-26 17:10:24 +00:00
pytest core
2019-08-12 22:02:34 +00:00
# Lancer les tests de la classe UserRegistrationTest de core
2024-06-26 17:10:24 +00:00
pytest core.tests.UserRegistrationTest
2019-08-12 22:02:34 +00:00
# Lancer une méthode en particulier de cette même classe
2024-06-26 17:10:24 +00:00
pytest core.tests.UserRegistrationTest.test_register_user_form_ok
2020-05-05 15:32:17 +00:00
2024-07-04 08:19:24 +00:00
.. note ::
Certains tests sont un peu longs à tourner.
Pour ne faire tourner que les tests les plus rapides,
vous pouvez exécutez pytest ainsi :
.. code-block :: bash
pytest -m "not slow"
# vous pouvez toujours faire comme au-dessus
pytest core -m "not slow"
A l'inverse, vous pouvez ne faire tourner que les tests
lents en remplaçant `-m "not slow"` par `-m slow` .
De cette manière, votre processus de développement
devrait être un peu plus fluide.
Cependant, n'oubliez pas de bien faire tourner
tous les tests avant de push un commit.
2020-05-05 15:32:17 +00:00
Vérifier les dépendances Javascript
-----------------------------------
Une commande a été écrite pour vérifier les éventuelles mises à jour à faire sur les librairies Javascript utilisées.
N'oubliez pas de mettre à jour à la fois le fichier de la librairie, mais également sa version dans `sith/settings.py` .
.. code-block :: bash
# Vérifier les mises à jour
2021-12-02 11:22:34 +00:00
python manage.py check_front