Aller au contenu

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 à main avant fusion.
  • Force‑push interdit.

Branches de travail

  • Utiliser feat/*, fix/*, chore/*, hotfix/* selon le type de changement.
  • Créer les branches depuis develop (sauf hotfix/* depuis main si urgent).
  • Ouvrir une PR vers develop quand c’est prêt.

Processus de PR (résumé)

  1. Mettez votre branche à jour avec la base (develop ou main).
  2. Ouvrez une PR et demandez au moins une review.
  3. Fusionnez une fois la review approuvée (push direct sur main interdit).

Questions fréquentes

  • “Je ne peux pas pousser sur main” → normal : ouvrez une PR vers main.
  • “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 develop ou main).
  • La/les review(s) requises sont approuvées.
  • “Puis‑je force‑push ?” → non sur develop et main.
  • “D’où partir pour une nouvelle fonctionnalité ?” → créez feat/* depuis develop. Pour un correctif urgent, hotfix/* peut partir de main.

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 COMMITFIXTURE est le timestamp dans le nom de la fixture, et COMMIT est 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 --volumes
  • make build-dev