Installer l'environnement virtuel et les dépendances :
$ uv syncNous conseillons d'installer le minuscule utilitaire direnv pour charger et
décharger automatiquement des variables d'environnement à l'entrée dans un
répertoire.
Une fois muni de cet outil (avec apt, brew ou autre, et sans oublier de
mettre le hook) il suffit de créer un
fichier de variables d'environnement local:
cat <<EOF >.envrc
# Activate the virtual environment
source .venv/bin/activate
# Setting environment variables for the application
export DJANGO_DEBUG=True
export DJANGO_LOG_LEVEL=WARNING
export SQL_LOG_LEVEL=INFO
export DJANGO_SECRET_KEY=foobar
# For psql
export PGDATABASE=communaute
export PGHOST=localhost
export PGUSER=communaute
export PGPASSWORD=password
EOFUne fois le fichier .envrc saisit, il suffit de l'autoriser dans direnv:
direnv allowEt c’est bon, vos variables seront chargées à chaque entrée dans le dossier et retirées en sortant.
psql # connects directly to the communaute database
./manage.py xxxx # any commands work immediatelyAccéder à l'environnement virtuel :
$ source .venv/bin/activateDémarer la base de données et le bucket S3
$ docker-compose up -dDémarrer le service web
$ python manage.py runserver_plus$ python manage.py createcachetable
$ python manage.py migrate
$ python manage.py configure_bucket
$ scripts/populate.py- le client postgresql doit être installé sur la machine hôte
- le script
./scripts/scripts/import-latest-db-backup.shdoit être exécuté
Ajouter d'une dépendance :
$ uv add django-anymailAjouter d'une dépendance de développement :
$ uv add --dev beautifulsoup4Mettre à jour les dépendances :
$ uv lockMettre à jour son environnement virtuel :
$ uv syncLe débogueur démarre par défaut avec debugpy.
Il vous reste juste à configurer votre IDE pour qu'il s'y attache. Dans VSCode, il suffit de créer le fichier launch.json dans le répertoire .vscode comme suit :
{
"version": "0.2.0",
"configurations": [
{
"name": "Python Django with venv",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": [
"runserver"
],
"django": true,
"justMyCode": true
}
]
}
Vous pourrez dès lors placer des points d'arrêt dans le code en survolant le numéro de ligne dans la colonne à gauche et de lancer le débogueur (qui ne fera que s'attacher au serveur de deboguage qui tourne dans votre conteneur).
pytest --numprocesses=logical --create-dbAjouter les secrets suivants dans le repo git
- CLEVER_SECRET
- CLEVER_TOKEN
Créer et lier les addons
- postgresql
- cellar S3 storage
- configuration provider
Créer les variables d'environnement suivantes dans le configuration provider
- CC_PIP_REQUIREMENTS_FILE
- CC_PRE_BUILD_HOOK
- CC_PRE_RUN_HOOK
- CC_PYTHON_BACKEND
- CC_PYTHON_MANAGE_TASKS
- CC_PYTHON_MODULE
- CC_PYTHON_VERSION
- CC_UWSGI_DISABLE_FILE_WRAPPER
- DJANGO_SETTINGS_MODULE
- PORT
- PYTHONPATH
- STATIC_FILES_PATH
- STATIC_URL_PREFIX
- UV_PROJECT_ENVIRONMENT
Dans votre environnement de développement, l’utilisation de direnv est recommandée.
En production, un fichier .env est généré au déploiement et chargé avec
l’utilitaire dotenv. Cette
configuration est moins flexible que direnv, car les variables d’environnement
ne sont pas disponibles pour votre shell, ce qui empêche le chargement
automatique de l’environnement virtuel, ou de lancer psql sans spécifier les
arguments pour se connecter à la base de données.
Créer et lier les addons (différents de ceux de production ^^)
- postgresql
- cellar S3 storage
- configuration provider
Ajouter les secrets suivants dans le repo git
- CLEVER_REVIEW_APPS_CONFIGURATION_ADDON
- CLEVER_REVIEW_APPS_ORG
- CLEVER_REVIEW_APPS_S3_ADDON
## Recettes jetables
Les recettes jetables sont créées lorsque l'étiquette « recette-jetable » est ajoutée.
Lorsque l'étiquette est supprimée, la recette jetable l'est aussi.
Voir les GitHub actions .github/workflows/review_app_creation.yml et .github/workflow/review_app_removal.yml.
### Comptes de test
Des données fictives sont créées pour les recettes jetables. Voir scripts/populate.py.
- Compte superadministrateur : login
admin, mot de passesupercalifragilisticexpialidocious. - Compte équipe :
staffetsupercalifragilisticexpialidocious.
Vous pouvez utiliser l'interface d'administration de Django avec le compte super-administrateur pour changer les adresses email.