mirror of
https://github.com/ae-utbm/sith.git
synced 2025-07-10 03:49:24 +00:00
Switch from poetry to uv
This commit is contained in:
@ -52,11 +52,11 @@ Pour gérer ça plus simplement,
|
||||
nous utilisons le logiciel python [pre-commit](https://pre-commit.com/)
|
||||
qui permet de contrôller leur installation via un fichier yaml.
|
||||
|
||||
Le logiciel est installé par défaut par poetry.
|
||||
Le logiciel est installé par défaut par uv.
|
||||
Il suffit ensuite de lancer :
|
||||
|
||||
```bash
|
||||
pre-commit install
|
||||
uv run pre-commit install
|
||||
```
|
||||
Une fois que vous avez fait cette commande, pre-commit
|
||||
tournera automatiquement chaque fois que vous ferez
|
||||
@ -65,7 +65,7 @@ un nouveau commit.
|
||||
Il est également possible d'appeler soi-même les pre-commits :
|
||||
|
||||
```bash
|
||||
pre-commit run --all-files
|
||||
uv run pre-commit run --all-files
|
||||
```
|
||||
|
||||
|
||||
@ -80,8 +80,8 @@ pre-commit run --all-files
|
||||
Pour utiliser Ruff, placez-vous à la racine du projet et lancez la commande suivante :
|
||||
|
||||
```bash
|
||||
ruff format # pour formatter le code
|
||||
ruff check # pour linter le code
|
||||
uv run ruff format # pour formatter le code
|
||||
uv run ruff check # pour linter le code
|
||||
```
|
||||
|
||||
Ruff va alors faire son travail sur l'ensemble du projet puis vous dire
|
||||
|
@ -64,10 +64,10 @@ Commencez par installer les dépendances système :
|
||||
source ~/.zshrc
|
||||
```
|
||||
|
||||
Puis, installez les dépendances poetry nécessaires en prod :
|
||||
Puis, installez les dépendances nécessaires en prod :
|
||||
|
||||
```bash
|
||||
poetry install --with prod
|
||||
uv sync --group prod
|
||||
```
|
||||
|
||||
!!! info
|
||||
@ -158,7 +158,7 @@ DATABASES = {
|
||||
Enfin, créez vos données :
|
||||
|
||||
```bash
|
||||
poetry run ./manage.py populate
|
||||
uv run ./manage.py populate
|
||||
```
|
||||
|
||||
!!! note
|
||||
@ -253,7 +253,7 @@ Enfin, démarrez le serveur Django :
|
||||
|
||||
```bash
|
||||
cd /repertoire/du/projet
|
||||
poetry run ./manage.py runserver 8001
|
||||
uv run ./manage.py runserver 8001
|
||||
```
|
||||
|
||||
Et c'est bon, votre reverse-proxy est prêt à tourner devant votre serveur.
|
||||
|
@ -2,11 +2,10 @@
|
||||
|
||||
Certaines dépendances sont nécessaires niveau système :
|
||||
|
||||
- poetry
|
||||
- uv
|
||||
- libssl
|
||||
- libjpeg
|
||||
- zlib1g-dev
|
||||
- python
|
||||
- gettext
|
||||
|
||||
### Installer WSL
|
||||
@ -62,26 +61,13 @@ cd /mnt/<la_lettre_du_disque>/vos/fichiers/comme/dhab
|
||||
sudo apt upgrade
|
||||
```
|
||||
|
||||
Puis, si ce n'est pas déjà fait, installez Python :
|
||||
```bash
|
||||
sudo apt install python3
|
||||
# on sait jamais
|
||||
sudo apt install python-is-python3
|
||||
```
|
||||
Si vous utilisez Ubuntu 22.04 ou Ubuntu 24.04,
|
||||
votre version de Python devrait être compatible
|
||||
par défaut avec celle du projet.
|
||||
Si ce n'est pas le cas, nous vous conseillons
|
||||
d'utiliser [pyenv](https://github.com/pyenv/pyenv)
|
||||
|
||||
Puis installez les autres dépendances :
|
||||
Installez les dépendances :
|
||||
|
||||
```bash
|
||||
sudo apt install build-essential libssl-dev libjpeg-dev zlib1g-dev python-dev npm \
|
||||
libffi-dev python-dev-is-python3 pkg-config \
|
||||
gettext git pipx
|
||||
sudo apt install uv build-essential libssl-dev \
|
||||
libjpeg-dev zlib1g-dev npm libffi-dev pkg-config \
|
||||
gettext git
|
||||
|
||||
pipx install poetry==1.8.5
|
||||
```
|
||||
|
||||
=== "Arch Linux"
|
||||
@ -89,9 +75,7 @@ cd /mnt/<la_lettre_du_disque>/vos/fichiers/comme/dhab
|
||||
```bash
|
||||
sudo pacman -Syu # on s'assure que les dépôts et le système sont à jour
|
||||
|
||||
sudo pacman -S python
|
||||
|
||||
sudo pacman -S gcc git gettext pkgconf python-poetry npm
|
||||
sudo pacman -S uv gcc git gettext pkgconf npm
|
||||
```
|
||||
|
||||
=== "macOS"
|
||||
@ -100,8 +84,7 @@ cd /mnt/<la_lettre_du_disque>/vos/fichiers/comme/dhab
|
||||
Il est également nécessaire d'avoir installé xcode
|
||||
|
||||
```bash
|
||||
brew install git python pipx npm
|
||||
pipx install poetry==1.8.5
|
||||
brew install git uv npm
|
||||
|
||||
# Pour bien configurer gettext
|
||||
brew link gettext # (suivez bien les instructions supplémentaires affichées)
|
||||
@ -111,6 +94,10 @@ cd /mnt/<la_lettre_du_disque>/vos/fichiers/comme/dhab
|
||||
|
||||
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
|
||||
|
||||
Python ne fait pas parti des dépendances puisqu'il est automatiquement
|
||||
installé par uv.
|
||||
|
||||
## Finaliser l'installation
|
||||
|
||||
@ -122,9 +109,8 @@ git clone https://github.com/ae-utbm/sith.git
|
||||
cd sith
|
||||
|
||||
# Création de l'environnement et installation des dépendances
|
||||
poetry install # Dépendances backend
|
||||
npm install # Dépendances frontend
|
||||
poetry run ./manage.py install_xapian
|
||||
npm install # Dépendances frontend
|
||||
uv run ./manage.py install_xapian # Dépendances backend
|
||||
```
|
||||
|
||||
!!!note
|
||||
@ -149,19 +135,16 @@ echo 'SITH_URL = "localhost:8000"' >> sith/settings_custom.py
|
||||
Enfin, nous pouvons lancer les commandes suivantes :
|
||||
|
||||
```bash
|
||||
# Activation de l'environnement virtuel
|
||||
poetry shell
|
||||
|
||||
# Prépare la base de données
|
||||
python ./manage.py setup
|
||||
uv run ./manage.py setup
|
||||
|
||||
# Installe les traductions
|
||||
python ./manage.py compilemessages
|
||||
uv run ./manage.py compilemessages
|
||||
```
|
||||
|
||||
!!!note
|
||||
|
||||
Pour éviter d'avoir à utiliser la commande `poetry shell`
|
||||
Pour éviter d'avoir à utiliser la commande `uv run`
|
||||
systématiquement, il est possible de consulter [direnv](../howto/direnv.md).
|
||||
|
||||
## Démarrer le serveur de développement
|
||||
@ -172,7 +155,7 @@ et se placer à la racine du projet.
|
||||
Il suffit ensuite d'utiliser cette commande :
|
||||
|
||||
```bash
|
||||
python manage.py runserver
|
||||
uv run ./manage.py runserver
|
||||
```
|
||||
|
||||
!!!note
|
||||
@ -198,14 +181,8 @@ Cette commande génère la documentation à
|
||||
chacune de ses modifications,
|
||||
inutile de relancer le serveur à chaque fois.
|
||||
|
||||
!!!note
|
||||
|
||||
Les dépendances pour la documentation sont optionnelles.
|
||||
Avant de commencer à travailler sur la doc, il faut donc les installer
|
||||
avec la commande `poetry install --with docs`
|
||||
|
||||
```bash
|
||||
mkdocs serve
|
||||
uv run mkdocs serve
|
||||
```
|
||||
|
||||
## Lancer les tests
|
||||
@ -215,13 +192,13 @@ la commande suivante :
|
||||
|
||||
```bash
|
||||
# Lancer tous les tests
|
||||
pytest
|
||||
uv run pytest
|
||||
|
||||
# Lancer les tests de l'application core
|
||||
pytest core
|
||||
uv run pytest core
|
||||
|
||||
# Lancer les tests de la classe UserRegistrationTest de core
|
||||
pytest core/tests/tests_core.py::TestUserRegistration
|
||||
uv run pytest core/tests/tests_core.py::TestUserRegistration
|
||||
```
|
||||
|
||||
!!!note
|
||||
@ -231,10 +208,10 @@ pytest core/tests/tests_core.py::TestUserRegistration
|
||||
vous pouvez exécutez pytest ainsi :
|
||||
|
||||
```bash
|
||||
pytest -m "not slow"
|
||||
uv run pytest -m "not slow"
|
||||
|
||||
# vous pouvez toujours faire comme au-dessus
|
||||
pytest core -m "not slow"
|
||||
uv run pytest core -m "not slow"
|
||||
```
|
||||
|
||||
A l'inverse, vous pouvez ne faire tourner que les tests
|
||||
|
@ -72,19 +72,20 @@ sith/
|
||||
├── .gitattributes
|
||||
├── .gitignore
|
||||
├── .mailmap
|
||||
├── .env.exemple
|
||||
├── manage.py (26)
|
||||
├── mkdocs.yml (27)
|
||||
├── poetry.lock
|
||||
├── uv.lock
|
||||
├── pyproject.toml (28)
|
||||
├── .venv/ (29)
|
||||
├── .python-version (30)
|
||||
└── README.md
|
||||
```
|
||||
</div>
|
||||
|
||||
1. Dossier contenant certaines actions réutilisables
|
||||
dans des workflows Github. Par exemple, l'action
|
||||
`setup-project` installe poetry puis appelle
|
||||
la commande `poetry install`.
|
||||
`setup-project` installe uv puis appelle
|
||||
configure l'environnement de développement
|
||||
2. Dossier contenant les fichiers de configuration
|
||||
des workflows Github.
|
||||
Par exemple, le workflow `docs.yml` compile
|
||||
@ -127,6 +128,8 @@ sith/
|
||||
avec ses plugins et sa table des matières.
|
||||
28. Le fichier où sont déclarés les dépendances et la configuration
|
||||
de certaines d'entre elles.
|
||||
29. Dossier d'environnement virtuel généré par uv
|
||||
30. Fichier qui contrôle quel version de python utiliser pour le projet
|
||||
|
||||
|
||||
## L'application principale
|
||||
|
Reference in New Issue
Block a user