= Environnement de travail Avant de démarrer le développement, il est nécessaire de passer un peu de temps sur la configuration de l'environnement. Les morceaux de code seront développés pour Python3.6+ et Django 3.0+. Ils nécessiteront peut-être quelques adaptations pour fonctionner sur une version antérieure. Django fonctionne sur un https://docs.djangoproject.com/en/dev/internals/release-process/[roulement de trois versions mineures pour une version majeure], clôturé par une version LTS (_Long Term Support_). image::images/django-support-lts.png[] Ce sera une bonne indication à prendre en considération pour nos dépendances, puisqu'en visant une version particulière, on ne devra pratiquement pas se soucier (bon, un peu quand même...) des dépendances à installer, pour peu qu'on reste sous un certain seuil. NOTE: en relisant, le passage ci-dessus n'est peut-être pas hyper clair... A refaire. Dans cette partie, on va parler de *méthode de travail*, avec comme objectif visé, d'éviter que l'application ne tourne que sur notre machine et que chaque déploiement ne soit une plaie à gérer. Chaque mise à jour doit se limiter à: . démarrer un script, . prévoir un rollback si cela plante . se préparer une tisane en regardant nos flux RSS (si cette technologie existe encore...). **Remarque** : les commandes qui seront exécutés dans ce livre le seront depuis un shell sous GNU/Linux. Certaines devront donc être adaptées si vous êtes dans un autre environnement. include::12-factors.adoc[] include::maintainable-applications.adoc[] include::environment.adoc[] include::venvs.adoc[] include::django.adoc[] include::unit_tests.adoc[] include::tools.adoc[] include::external_tools.adoc[] include::summary.adoc[]