Notes aux développeurs
Pour bénéficier de la vérification du code avant commit, installer pre-commit avec la commande pre-commit install pour bénéficier du hook préparé dans .pre-commit-config.yaml.
Workflow Git et protections de branches
Branches principales
main- Push direct interdit.
- Fusion uniquement via Pull Request.
- Minimum 1 review approuvée.
develop- Doit rester à jour par rapport à
mainavant fusion. - Force‑push interdit.
Branches de travail
- Utiliser
feat/*,fix/*,chore/*,hotfix/*selon le type de changement. - Créer les branches depuis
develop(saufhotfix/*depuismainsi urgent). - Ouvrir une PR vers
developquand c’est prêt.
Processus de PR (résumé)
- Mettez votre branche à jour avec la base (
developoumain). - Ouvrez une PR et demandez au moins une review.
- Fusionnez une fois la review approuvée (push direct sur
maininterdit).
Questions fréquentes
- “Je ne peux pas pousser sur
main” → normal : ouvrez une PR versmain. - “Combien de reviews faut‑il ?” → au minimum 1 review approuvée.
- “Ma PR ne peut pas être fusionnée” → vérifiez que :
- La PR est à jour avec la base (rebase/merge depuis
developoumain). - La/les review(s) requises sont approuvées.
- “Puis‑je force‑push ?” → non sur
developetmain. - “D’où partir pour une nouvelle fonctionnalité ?” → créez
feat/*depuisdevelop. Pour un correctif urgent,hotfix/*peut partir demain.
Ajout d'une nouvelle source custom
Voir imports.
Récupérer un dump du prod sur un serveur dev
- sur le serveur de prod :
docker exec -i agenda_culturel-backend python3 manage.py dumpdata --natural-foreign --natural-primary --format=json --exclude=admin.logentry --indent=2 > fixtures/postgres-backup-20241101.json(à noter qu'ici on oublie les comptes, qu'il faudra recréer)- sur le serveur de dev :
- On récupère le dump json
scp $SERVEUR:$PATH/fixtures/postgres-backup-20241101.json src/fixtures/ scripts/reset-database.sh FIXTURE COMMIToùFIXTUREest le timestamp dans le nom de la fixture, etCOMMITest l'ID du commit git correspondant à celle en prod sur le serveur au moment de la création de la fixture
On peut ensuite modifier le mot de passe de l'utilisateur root qui a tous les droits :
docker exec -it agenda_culturel-backend python3 manage.py changepassword root
À noter que les images ne sont pas récupérées. Les images des catégories peuvent être récupérées par la commande :
cp src/agenda_culturel/migrations/images/* src/media/
Si la migration de la base de données s'est bien executée, mais qu'aucun événement n'est affiché sur l'interface utilisateur, il faut vider le cache côté administration :
- Page Administrer > dans le menu sur la droite nommé Administration > Configuration interne > Vider le cache. Ou en utilisant ce lien direct. (en étant connecté avec les droits suffisants)
Complètement réinitialiser une instance
docker compose down --rmi all --volumesmake build-dev