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-10-13 00:15:58 +00:00
* libmysqlclient
2019-08-11 10:11:35 +00:00
* libssl
* libjpeg
2021-10-15 16:12:56 +00:00
* libxapian-dev
2019-08-11 10:11:35 +00:00
* zlib1g-dev
2021-12-02 11:22:34 +00:00
* python
2019-10-13 00:15:58 +00:00
* gettext
* graphviz
2019-08-11 12:11:00 +00:00
* mysql-client (pour migrer de l'ancien site)
2019-08-11 10:11:35 +00:00
2019-08-11 12:11:00 +00:00
Sur Ubuntu
~~~~~~~~~~
2019-08-11 10:11:35 +00:00
.. sourcecode :: bash
2021-12-02 11:22:34 +00:00
sudo apt install libssl-dev libjpeg-dev zlib1g-dev python-dev libffi-dev python-dev libgraphviz-dev pkg-config libxapian-dev gettext git
2022-09-25 10:06:29 +00:00
curl -sSL https://install.python-poetry.org | python -
2021-10-15 16:12:56 +00:00
# To include mysql for importing old bdd
2021-11-23 18:19:24 +00:00
sudo apt install libmysqlclient-dev
2019-08-11 10:11:35 +00:00
2019-08-11 12:11:00 +00:00
Sur MacOS
~~~~~~~~~
2019-08-11 10:11:35 +00:00
2019-08-11 21:10:09 +00:00
Pour installer les dépendances, il est fortement recommandé d'installer le gestionnaire de paquets `homebrew <https://brew.sh/index_fr> `_ .
2019-08-11 10:11:35 +00:00
.. sourcecode :: bash
2021-11-23 18:19:24 +00:00
brew install git python xapian graphviz poetry
2019-10-13 00:15:58 +00:00
# Si vous aviez une version de python ne venant pas de homebrew
2021-11-23 18:19:24 +00:00
brew link --overwrite python
2019-10-13 00:15:58 +00:00
# Pour bien configurer gettext
2021-11-23 18:19:24 +00:00
brew link gettext # (suivez bien les instructions supplémentaires affichées)
2019-10-13 00:15:58 +00:00
2021-10-15 16:12:56 +00:00
# Pour installer poetry
2021-11-23 18:19:24 +00:00
pip3 install poetry
2019-10-13 00:15:58 +00:00
.. 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`
2019-08-11 10:11:35 +00:00
2021-11-23 18:19:24 +00:00
Sur Windows avec :code: `WSL`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2021-11-19 12:10:18 +00:00
.. note ::
2021-11-23 18:19:24 +00:00
Comme certaines dépendances sont uniquement disponible dans un environnement Unix, il est obligatoire de passer par :code: `WSL` pour installer le projet.
2021-11-19 12:10:18 +00:00
2021-11-23 18:19:24 +00:00
- **Prérequis:** vous devez exécuter Windows 10 versions 2004 et ultérieures (build 19041 & versions ultérieures) ou Windows 11.
- **Plus d'info:** `docs.microsoft.com <https://docs.microsoft.com/fr-fr/windows/wsl/install> `_
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
2021-11-23 18:19:24 +00:00
# installer WSL avec une distro
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
# 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
.. note ::
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-19 12:10:18 +00:00
2019-08-11 10:11:35 +00:00
Installer le projet
2021-11-19 12:10:18 +00:00
-----------------------------------
2019-08-11 10:11:35 +00:00
.. sourcecode :: bash
2021-11-23 18:19:24 +00:00
# Sait-on jamais
sudo apt update
# 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
2021-11-23 18:19:24 +00:00
cd Sith
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
2019-10-13 00:15:58 +00:00
# Prépare la base de donnée
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 ::
2019-10-13 00:15:58 +00:00
Le serveur est alors accessible à l'adresse http://localhost:8000.
2019-08-11 12:11:00 +00:00
Générer la documentation
------------------------
La documentation est automatiquement mise en ligne sur readthedocs à chaque envoi de code sur GitLab.
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.
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
2021-12-02 11:22:34 +00:00
python manage.py test
2019-08-12 22:02:34 +00:00
# Lancer les tests de l'application core
2021-12-02 11:22:34 +00:00
python manage.py test core
2019-08-12 22:02:34 +00:00
# Lancer les tests de la classe UserRegistrationTest de core
2021-12-02 11:22:34 +00:00
python manage.py test core.tests.UserRegistrationTest
2019-08-12 22:02:34 +00:00
# Lancer une méthode en particulier de cette même classe
2021-12-02 11:22:34 +00:00
python manage.py test core.tests.UserRegistrationTest.test_register_user_form_ok
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