diff --git a/.drone.yml b/.drone.yml old mode 100644 new mode 100755 diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md old mode 100644 new mode 100755 diff --git a/Makefile b/Makefile old mode 100644 new mode 100755 diff --git a/README.md b/README.md index 1e831d6..8432bb0 100755 --- a/README.md +++ b/README.md @@ -6,6 +6,9 @@ Ce livre peut être compilé avec une image Docker personnalisée, basée sur Mi Pygments est également installé. Elle peut être compilée avec Docker ou Podman, grâce à l'une des commandes suivantes: -* `docker build - < Dockerfile` -* `docker build .` +* `docker build -t miktex-pygments .` + +Pour compiler le manuel en PDF: + +* `./docker-miktex.sh` diff --git a/annexes/grafana.tex b/annexes/grafana.tex old mode 100644 new mode 100755 diff --git a/annexes/snippets.tex b/annexes/snippets.tex old mode 100644 new mode 100755 diff --git a/annexes/sonar.tex b/annexes/sonar.tex old mode 100644 new mode 100755 diff --git a/chapters/administration.tex b/chapters/administration.tex old mode 100644 new mode 100755 diff --git a/chapters/api.tex b/chapters/api.tex old mode 100644 new mode 100755 diff --git a/chapters/architecture.tex b/chapters/architecture.tex old mode 100644 new mode 100755 diff --git a/chapters/authentication.tex b/chapters/authentication.tex old mode 100644 new mode 100755 diff --git a/chapters/contexts-processors.tex b/chapters/contexts-processors.tex old mode 100644 new mode 100755 diff --git a/chapters/continuous-integration.tex b/chapters/continuous-integration.tex old mode 100644 new mode 100755 diff --git a/chapters/debian.tex b/chapters/debian.tex old mode 100644 new mode 100755 diff --git a/chapters/deployment-processes.tex b/chapters/deployment-processes.tex old mode 100644 new mode 100755 diff --git a/chapters/deployment-tools.tex b/chapters/deployment-tools.tex old mode 100644 new mode 100755 diff --git a/chapters/docker-compose.tex b/chapters/docker-compose.tex old mode 100644 new mode 100755 diff --git a/chapters/filters.tex b/chapters/filters.tex old mode 100644 new mode 100755 diff --git a/chapters/forms.tex b/chapters/forms.tex old mode 100644 new mode 100755 diff --git a/chapters/gdpr.tex b/chapters/gdpr.tex old mode 100644 new mode 100755 diff --git a/chapters/gwift.tex b/chapters/gwift.tex old mode 100644 new mode 100755 diff --git a/chapters/heroku.tex b/chapters/heroku.tex old mode 100644 new mode 100755 diff --git a/chapters/i18n.tex b/chapters/i18n.tex old mode 100644 new mode 100755 diff --git a/chapters/infrastructure.tex b/chapters/infrastructure.tex old mode 100644 new mode 100755 diff --git a/chapters/introduction.tex b/chapters/introduction.tex old mode 100644 new mode 100755 index f583fc6..c4b0c9c --- a/chapters/introduction.tex +++ b/chapters/introduction.tex @@ -1,7 +1,7 @@ \chapter{Introduction} \begin{quote} - The only way to go fast, is to go well + \textit{The only way to go fast, is to go well} --- Robert C. Martin \end{quote} @@ -19,15 +19,14 @@ Les quelques idées ci-dessous de jeter les bases d'un bon développement, en \end{itemize} Ces idées ne s'appliquent pas uniquement à Django et à son cadre de travail, ni même au langage Python en particulier. -Dans \href{http://blog.codinghorror.com/why-ruby/}{un article de blog}, Jeff Atwood, développeur .Net expérimenté, a décrit sa décision de développer Discourse en utilisant le language Ruby \cite[p. 27]{roads_and_bridges}. -La même réflexion s'applique sans effort à Python et Django: +Dans un article de blog \footnote{\url{http://blog.codinghorror.com/why-ruby/}}, Jeff Atwood, développeur .Net expérimenté, a décrit sa décision de développer Discourse en utilisant le language Ruby \cite[p. 27]{roads_and_bridges}: \begin{quote} - Getting up and running with a Microsoft stack is just plain too hard for a developer in, say, Argentina, or Nepal, or Bulgaria. - Open source operating systems, languages, and tool chaines are the great equializer, the basis for the next great generation of programmers all over the world who are goind to help us change the world. + \textit{Getting up and running with a Microsoft stack is just plain too hard for a developer in, say, Argentina, or Nepal, or Bulgaria. + Open source operating systems, languages, and tool chaines are the great equializer, the basis for the next great generation of programmers all over the world who are goind to help us change the world.} \end{quote} -L'organisation \textit{Django Girls} a par exemple formé plus de 2000 femmes dans le monde, réparties dans plus de 49 pays \footnote{https://djangogirls.com}. +La même réflexion s'applique sans effort à Python et Django: l'organisation \textit{Django Girls} a par exemple formé plus de 2000 femmes dans le monde, réparties dans plus de 49 pays \footnote{https://djangogirls.com}. Django n'a pas été développé par cette organisation elle-même, mais étant \textit{open source}, ce framework peut être téléchargé, utilisé et étudié gratuitement. \cite[p. 28]{roads_and_bridges}. Si ces morceaux logiciels n'étaient pas libres et accessibles, ils ne pourraient pas être déconstruits, analysés, étudiés et publiés, ni aider certaines personnes à exercer leur propre métier. \footnote{Les termes \textit{free software} et \textit{open source} sont généralement accolés l'un à l'autre; ils ont cependant une conotation politique distincte: le premier est étroitement associé à l'éthique tandis que le second est plus pragmatique. \textit{Open source is a development methodology; free software is a social movement.}\cite{gnu}} L'ouverture de ces langages et frameworks en fait également un modèle bien défini de documentation et de flexibilité. @@ -51,8 +50,6 @@ Mis côte à côte, le suivi de ces principes permet une bonne stabilité du pro Sans être parfait, Django offre une énorme flexibilité qui permet de conserver un maximum d'options ouvertes et de facilement expérimenter différentes pistes, jusqu'au moment de prendre une vraie décision. Pour la (grande) majorité des problèmes rencontrés lors du développement d'une application Web, Django proposera une solution pragmatique, compréhensible et facile à mettre en place: pour tout problème communément connu, vous disposerez d'une solution logique. -Tout pour plaire à n'importe quel directeur IT. - \textbf{Dans la première partie}, nous verrons comment partir d'un environnement sain, comment le configurer correctement, comment installer Django de manière isolée et comment démarrer un nouveau projet. Nous verrons rapidement comment gérer les dépendances, les versions et comment appliquer et suivre un score de qualité de notre code. Ces quelques points pourront être appliqués pour n'importe quel langage ou cadre de travail. @@ -62,7 +59,7 @@ Pour cela, nous présenterons différents outils, la rédaction de tests unitair A la fin de cette partie, vous disposerez d'un code propre et d'un projet fonctionnel, bien qu'encore un peu inutile. -textbf{Dans la deuxième partie}, nous aborderons les grands principes de modélisation, en suivant les lignes de conduites du cadre de travail. +\textbf{Dans la deuxième partie}, nous aborderons les grands principes de modélisation, en suivant les lignes de conduites du cadre de travail. Nous aborderons les concepts clés qui permettent à une application de rester maintenable, les formulaires, leurs validations, comment gérer les données en entrée, les migrations de données et l'administration. \textbf{Dans la troisième partie}, nous détaillerons précisément les étapes de déploiement, avec la description et la configuration de l'infrastructure, des exemples concrets de mise à disposition sur deux distributions principales (Debian et CentOS), sur une \emph{*Plateform as a Service*}, ainsi que l'utilisation de Docker et Docker-Compose. @@ -73,18 +70,26 @@ Nous aborderons également la supervision et la mise à jour d'une application e \textbf{Dans la cinquième partie}, nous mettrons ces concepts en pratique en présentant le développement en pratique de deux applications, avec la description de problèmes rencontrés et la solution qui a été choisie: définition des tables, gestion des utilisateurs, \ldots\hspace{0pt} et mise à disposition. -\subsection{Pour qui ?} +\subsection*{Pour qui ?} Avant tout, pour moi. Comme le disait le Pr Richard Feynman: "\emph{Si vous ne savez pas expliquer quelque chose simplement, c'est que vous ne l'avez pas compris}". \footnote{Et comme l'ajoutait Aurélie Jean dans de L'autre côté de la machine: \emph{"Si personne ne vous pose de questions suite à votre explication, c'est que vous n'avez pas été suffisamment clair !"} \cite{other_side}} -Ce livre s'adresse autant au néophyte qui souhaite se lancer dans le développement Web qu'à l'artisan qui a besoin d'un aide-mémoire et qui ne se rappelle plus toujours du bon ordre des paramètres, ou à l'expert qui souhaiterait avoir un aperçu d'une autre technologie que son domaine privilégié de compétences. +Ensuite, ce livre s'adresse autant -Beaucoup de concepts présentés peuvent être oubliés ou restés inconnus jusqu'au moment où ils seront réellement nécessaires. -A ce moment-là, pour peu que votre mémoire ait déjà entraperçu le terme, il vous sera plus facile d'y revenir et de l'appliquer. +\begin{enumerate} + \item + au néophyte qui souhaite se lancer dans le développement Web + \item + qu'à l'artisan qui a besoin d'un aide-mémoire et qui ne se rappelle plus toujours du bon ordre des paramètres, + \item + ou à l'expert qui souhaiterait avoir un aperçu d'une autre technologie que son domaine privilégié de compétences. +\end{enumerate} -\subsection{Pour aller plus loin} +Beaucoup de concepts présentés peuvent être oubliés ou restés inconnus jusqu'au moment où ils seront réellement nécessaires: à ce moment-là, pour peu que votre mémoire ait déjà entraperçu le terme, il vous sera plus facile d'y revenir et de l'appliquer. + +\subsection*{Pour aller plus loin} Il existe énormément de ressources, autant spécifiques à Django que plus généralistes. Il ne sera pas possible de toutes les détailler; faites un tour sur @@ -100,7 +105,7 @@ Il ne sera pas possible de toutes les détailler; faites un tour sur Restez curieux, ne vous enclavez pas dans une technologie en particulie et gardez une bonne ouverture d'esprit. -\subsection{Conventions} +\subsection*{Conventions} Les notes indiquent des anecdotes. Les conseils indiquent des éléments utiles, mais pas spécialemen indispensables. @@ -125,7 +130,8 @@ Les morceaux de code source seront présentés de la manière suivante: \end{minted} \end{listing} -Chaque extrait de code reprendra +Chaque extrait de code reprend: + \begin{itemize} \item l'emplacement du fichier, présenté sous forme de commentaire (ligne 1), \item Des commentaires au niveau des fonctions et méthodes, si cela s'avère nécessaire @@ -133,7 +139,7 @@ Chaque extrait de code reprendra \end{itemize} La plupart des commandes qui seront présentées dans ce livre le seront depuis un shell sous GNU/Linux. -Certaines d'entre elles pourraient devoir être adaptées si vous utilisez un autre système d'exploitation (macOS) ou n'importe quelle autre grosse bouse commerciale. +Certaines d'entre elles pourraient devoir être adaptées si vous utilisez un autre système d'exploitation (macOS ou Microsoft Windows). Les morceaux de code que vous trouverez ci-dessous seront développés pour Python3.9+ et Django 3.2+. Ils nécessiteront peut-être quelques adaptations pour fonctionner sur une version antérieure. diff --git a/chapters/khana.tex b/chapters/khana.tex old mode 100644 new mode 100755 diff --git a/chapters/kubernetes.tex b/chapters/kubernetes.tex old mode 100644 new mode 100755 diff --git a/chapters/licence.tex b/chapters/licence.tex old mode 100644 new mode 100755 diff --git a/chapters/maintenability.tex b/chapters/maintenability.tex old mode 100644 new mode 100755 diff --git a/chapters/migrations.tex b/chapters/migrations.tex old mode 100644 new mode 100755 diff --git a/chapters/models.tex b/chapters/models.tex old mode 100644 new mode 100755 diff --git a/chapters/new-project.tex b/chapters/new-project.tex old mode 100644 new mode 100755 diff --git a/chapters/python.tex b/chapters/python.tex old mode 100644 new mode 100755 diff --git a/chapters/resources.tex b/chapters/resources.tex old mode 100644 new mode 100755 diff --git a/chapters/security.tex b/chapters/security.tex old mode 100644 new mode 100755 diff --git a/chapters/svelte.tex b/chapters/svelte.tex old mode 100644 new mode 100755 diff --git a/chapters/templates.tex b/chapters/templates.tex old mode 100644 new mode 100755 diff --git a/chapters/tests.tex b/chapters/tests.tex old mode 100644 new mode 100755 diff --git a/chapters/thanks.tex b/chapters/thanks.tex old mode 100644 new mode 100755 diff --git a/chapters/tools.tex b/chapters/tools.tex old mode 100644 new mode 100755 index efd7004..1ef502f --- a/chapters/tools.tex +++ b/chapters/tools.tex @@ -204,6 +204,20 @@ Il est possible de suivre les recommandations de \textit{Conventional Commits} \ Rendre l'accès au code plus lisible, en facilitant l'exploration du code au travers de commits mieux structurés. \end{enumerate} +\subsubsection{} + +\subsubsection{} + +\subsubsection{} + +\subsubsection{} + +\subsubsection{} + +\subsubsection{CHANGELOG} + +Une fois les changements décrits en suivant ces conventions, et sous réserve qu'elles soient bien respectées, permet de générer un CHANGELOG \footnote{\url{https://github.com/conventional-changelog/standard-version}}. + \subsection{Nommer ses branches} diff --git a/chapters/trees.tex b/chapters/trees.tex old mode 100644 new mode 100755 diff --git a/chapters/urls.tex b/chapters/urls.tex old mode 100644 new mode 100755 diff --git a/chapters/views.tex b/chapters/views.tex old mode 100644 new mode 100755 diff --git a/chapters/working-in-isolation.tex b/chapters/working-in-isolation.tex old mode 100644 new mode 100755 index 8081f6e..daec278 --- a/chapters/working-in-isolation.tex +++ b/chapters/working-in-isolation.tex @@ -151,7 +151,7 @@ a manière recommandée pour la gestion des dépendances consiste à les épingl Ce fichier reprend, ligne par ligne, chaque dépendance et la version nécessaire. Cet épinglage est cependant relativement basique, dans la mesure où les opérateurs disponibles sont ==, et \textgreater=. -Poetry propose un épinglage basé sur SemVer. +Poetry propose un épinglage basé sur SemVer\index{Semantic Versioning}. Les contraintes qui peuvent être appliquées aux dépendances sont plus touffues que ce que proposent pip -r, avec la présence du curseur \^{}, qui ne modifiera pas le nombre différent de zéro le plus à gauche: \begin{verbatim} diff --git a/code_samples/shapes.py b/code_samples/shapes.py old mode 100644 new mode 100755 diff --git a/diagrams/books-foreign-keys-example b/diagrams/books-foreign-keys-example old mode 100644 new mode 100755 diff --git a/diagrams/books-foreign-keys-example.drawio.png b/diagrams/books-foreign-keys-example.drawio.png old mode 100644 new mode 100755 diff --git a/ideas/21-10-01 21-30-54 1890.jpg b/ideas/21-10-01 21-30-54 1890.jpg old mode 100644 new mode 100755 diff --git a/ideas/21-10-01 21-31-20 1891.jpg b/ideas/21-10-01 21-31-20 1891.jpg old mode 100644 new mode 100755 diff --git a/ideas/libs.rst b/ideas/libs.rst old mode 100644 new mode 100755 diff --git a/ideas/resources.md b/ideas/resources.md old mode 100644 new mode 100755 diff --git a/ideas/tests.asciidoc b/ideas/tests.asciidoc old mode 100644 new mode 100755 diff --git a/images/12factors/attached-resources.png b/images/12factors/attached-resources.png old mode 100644 new mode 100755 diff --git a/images/12factors/process-type-chronology.png b/images/12factors/process-type-chronology.png old mode 100644 new mode 100755 diff --git a/images/12factors/process-types.png b/images/12factors/process-types.png old mode 100644 new mode 100755 diff --git a/images/12factors/release.png b/images/12factors/release.png old mode 100644 new mode 100755 diff --git a/images/amazon-s3-arch.png b/images/amazon-s3-arch.png old mode 100644 new mode 100755 diff --git a/images/arch-comp-modules.png b/images/arch-comp-modules.png old mode 100644 new mode 100755 diff --git a/images/arch-structure b/images/arch-structure old mode 100644 new mode 100755 diff --git a/images/calvin/time-machine.jpg b/images/calvin/time-machine.jpg old mode 100644 new mode 100755 diff --git a/images/commistrip/versions.jpg b/images/commistrip/versions.jpg old mode 100644 new mode 100755 diff --git a/images/db/link-book-category-fk.drawio b/images/db/link-book-category-fk.drawio old mode 100644 new mode 100755 diff --git a/images/db/link-book-category-fk.drawio.png b/images/db/link-book-category-fk.drawio.png old mode 100644 new mode 100755 diff --git a/images/db/link-book-category-m2m.drawio.png b/images/db/link-book-category-m2m.drawio.png old mode 100644 new mode 100755 diff --git a/images/db/migrations-0001-to-0002.png b/images/db/migrations-0001-to-0002.png old mode 100644 new mode 100755 diff --git a/images/db/migrations-0002-many-to-many.png b/images/db/migrations-0002-many-to-many.png old mode 100644 new mode 100755 diff --git a/images/db/migrations_auth_admin_contenttypes_sessions.png b/images/db/migrations_auth_admin_contenttypes_sessions.png old mode 100644 new mode 100755 diff --git a/images/db/~$link-book-category-fk.drawio.dtmp b/images/db/~$link-book-category-fk.drawio.dtmp old mode 100644 new mode 100755 diff --git a/images/deployment/disallowed_hosts.png b/images/deployment/disallowed_hosts.png old mode 100644 new mode 100755 diff --git a/images/deployment/gwift-cloud-s3.png b/images/deployment/gwift-cloud-s3.png old mode 100644 new mode 100755 diff --git a/images/deployment/heroku-app-created.png b/images/deployment/heroku-app-created.png old mode 100644 new mode 100755 diff --git a/images/deployment/heroku-new-app.png b/images/deployment/heroku-new-app.png old mode 100644 new mode 100755 diff --git a/images/deployment/heroku-vars-reveal.png b/images/deployment/heroku-vars-reveal.png old mode 100644 new mode 100755 diff --git a/images/deployment/heroku.png b/images/deployment/heroku.png old mode 100644 new mode 100755 diff --git a/images/deployment/iaas_focus-paas-saas-diagram.png b/images/deployment/iaas_focus-paas-saas-diagram.png old mode 100644 new mode 100755 diff --git a/images/deployment/scaleway-api-key.png b/images/deployment/scaleway-api-key.png old mode 100644 new mode 100755 diff --git a/images/deployment/scaleway-object-storage-bucket.png b/images/deployment/scaleway-object-storage-bucket.png old mode 100644 new mode 100755 diff --git a/images/diagrams/12-factors-1 b/images/diagrams/12-factors-1 old mode 100644 new mode 100755 diff --git a/images/diagrams/12-factors-1.png b/images/diagrams/12-factors-1.png old mode 100644 new mode 100755 diff --git a/images/diagrams/12-factors-7 b/images/diagrams/12-factors-7 old mode 100644 new mode 100755 diff --git a/images/diagrams/12-factors-7.png b/images/diagrams/12-factors-7.png old mode 100644 new mode 100755 diff --git a/images/diagrams/12factors-codebase-deploys.png b/images/diagrams/12factors-codebase-deploys.png old mode 100644 new mode 100755 diff --git a/images/diagrams/architecture.png b/images/diagrams/architecture.png old mode 100644 new mode 100755 diff --git a/images/diagrams/basic-automation.drawio.png b/images/diagrams/basic-automation.drawio.png old mode 100644 new mode 100755 diff --git a/images/diagrams/deploy-without-hassle.drawio.png b/images/diagrams/deploy-without-hassle.drawio.png old mode 100644 new mode 100755 diff --git a/images/diagrams/django-how-it-works.drawio b/images/diagrams/django-how-it-works.drawio old mode 100644 new mode 100755 diff --git a/images/diagrams/django-how-it-works.png b/images/diagrams/django-how-it-works.png old mode 100644 new mode 100755 diff --git a/images/diagrams/django-migrations-db-schema.drawio b/images/diagrams/django-migrations-db-schema.drawio old mode 100644 new mode 100755 diff --git a/images/diagrams/django-process.png b/images/diagrams/django-process.png old mode 100644 new mode 100755 diff --git a/images/diagrams/django-project-vs-apps-gwift.drawio b/images/diagrams/django-project-vs-apps-gwift.drawio old mode 100644 new mode 100755 diff --git a/images/diagrams/django-project-vs-apps-khana.drawio b/images/diagrams/django-project-vs-apps-khana.drawio old mode 100644 new mode 100755 diff --git a/images/diagrams/django-project-vs-apps.drawio b/images/diagrams/django-project-vs-apps.drawio old mode 100644 new mode 100755 diff --git a/images/diagrams/git-workflow.drawio b/images/diagrams/git-workflow.drawio old mode 100644 new mode 100755 diff --git a/images/diagrams/git-workflow.png b/images/diagrams/git-workflow.png old mode 100644 new mode 100755 diff --git a/images/diagrams/host-structure b/images/diagrams/host-structure old mode 100644 new mode 100755 diff --git a/images/diagrams/infrastructure-base.drawio b/images/diagrams/infrastructure-base.drawio old mode 100644 new mode 100755 diff --git a/images/diagrams/infrastructure.drawio.png b/images/diagrams/infrastructure.drawio.png old mode 100644 new mode 100755 diff --git a/images/diagrams/views-services-managers-models.drawio b/images/diagrams/views-services-managers-models.drawio old mode 100644 new mode 100755 diff --git a/images/diagrams/views-services-managers-models.drawio.png b/images/diagrams/views-services-managers-models.drawio.png old mode 100644 new mode 100755 diff --git a/images/diagrams/~$deploy-without-hassle.drawio.png.dtmp b/images/diagrams/~$deploy-without-hassle.drawio.png.dtmp old mode 100644 new mode 100755 diff --git a/images/django-support-lts.png b/images/django-support-lts.png old mode 100644 new mode 100755 diff --git a/images/django/django-first-template.png b/images/django/django-first-template.png old mode 100644 new mode 100755 diff --git a/images/django/django-models-vs-database.png b/images/django/django-models-vs-database.png old mode 100644 new mode 100755 diff --git a/images/django/django-project-vs-apps-gwift.png b/images/django/django-project-vs-apps-gwift.png old mode 100644 new mode 100755 diff --git a/images/django/django-project-vs-apps-khana.png b/images/django/django-project-vs-apps-khana.png old mode 100644 new mode 100755 diff --git a/images/django/django-site-admin-after-connection.png b/images/django/django-site-admin-after-connection.png old mode 100644 new mode 100755 diff --git a/images/django/django-site-admin.png b/images/django/django-site-admin.png old mode 100644 new mode 100755 diff --git a/images/django/manage-runserver.png b/images/django/manage-runserver.png old mode 100644 new mode 100755 diff --git a/images/docker.jpg b/images/docker.jpg old mode 100644 new mode 100755 diff --git a/images/environment/codium.png b/images/environment/codium.png old mode 100644 new mode 100755 diff --git a/images/environment/gitea-commit-message.png b/images/environment/gitea-commit-message.png old mode 100644 new mode 100755 diff --git a/images/environment/keepass.png b/images/environment/keepass.png old mode 100644 new mode 100755 diff --git a/images/environment/python-docstring-vscode.png b/images/environment/python-docstring-vscode.png old mode 100644 new mode 100755 diff --git a/images/environment/terminal.png b/images/environment/terminal.png old mode 100644 new mode 100755 diff --git a/images/html/my-first-wishlists.png b/images/html/my-first-wishlists.png old mode 100644 new mode 100755 diff --git a/images/infrastructure/mattsegal-logging.png b/images/infrastructure/mattsegal-logging.png old mode 100644 new mode 100755 diff --git a/images/it-works-on-my-machine.jpg b/images/it-works-on-my-machine.jpg old mode 100644 new mode 100755 diff --git a/images/layout.adoc b/images/layout.adoc old mode 100644 new mode 100755 diff --git a/images/logo-vagrant.png b/images/logo-vagrant.png old mode 100644 new mode 100755 diff --git a/images/logos/debian-ubuntu.png b/images/logos/debian-ubuntu.png old mode 100644 new mode 100755 diff --git a/images/logos/debian.png b/images/logos/debian.png old mode 100644 new mode 100755 diff --git a/images/napoleon-module-level-docstring.png b/images/napoleon-module-level-docstring.png old mode 100644 new mode 100755 diff --git a/images/penguin-overflow.jpg b/images/penguin-overflow.jpg old mode 100644 new mode 100755 diff --git a/images/rest/api-first-example.png b/images/rest/api-first-example.png old mode 100644 new mode 100755 diff --git a/images/rest/drf-filters-and-searches.png b/images/rest/drf-filters-and-searches.png old mode 100644 new mode 100755 diff --git a/images/rest/models.png b/images/rest/models.png old mode 100644 new mode 100755 diff --git a/images/scenarii-de-plantages.png b/images/scenarii-de-plantages.png old mode 100644 new mode 100755 diff --git a/images/xkcd-1597-git.png b/images/xkcd-1597-git.png old mode 100644 new mode 100755 diff --git a/images/xkcd-1987.png b/images/xkcd-1987.png old mode 100644 new mode 100755 diff --git a/images/xkcd-327.png b/images/xkcd-327.png old mode 100644 new mode 100755 diff --git a/images/xkcd-353-python.png b/images/xkcd-353-python.png old mode 100644 new mode 100755 diff --git a/make.bat b/make.bat old mode 100644 new mode 100755 diff --git a/parts/deployment.tex b/parts/deployment.tex old mode 100644 new mode 100755 diff --git a/parts/environment.tex b/parts/environment.tex old mode 100644 new mode 100755 diff --git a/parts/go-live.tex b/parts/go-live.tex old mode 100644 new mode 100755 diff --git a/parts/principles.tex b/parts/principles.tex old mode 100644 new mode 100755 diff --git a/parts/soa.tex b/parts/soa.tex old mode 100644 new mode 100755 diff --git a/references.bib b/references.bib old mode 100644 new mode 100755 diff --git a/resources/files/table-calc.ods b/resources/files/table-calc.ods old mode 100644 new mode 100755 diff --git a/resources/fonts/Atkinson-Hyperlegible-bold.ttf b/resources/fonts/Atkinson-Hyperlegible-bold.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/Atkinson-Hyperlegible-bold_italic.ttf b/resources/fonts/Atkinson-Hyperlegible-bold_italic.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/Atkinson-Hyperlegible-italic.ttf b/resources/fonts/Atkinson-Hyperlegible-italic.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/Atkinson-Hyperlegible-regular.ttf b/resources/fonts/Atkinson-Hyperlegible-regular.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/Barlow-bold.ttf b/resources/fonts/Barlow-bold.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/Barlow-bold_italic.ttf b/resources/fonts/Barlow-bold_italic.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/Barlow-italic.ttf b/resources/fonts/Barlow-italic.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/Barlow-regular.ttf b/resources/fonts/Barlow-regular.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/Inter-bold.ttf b/resources/fonts/Inter-bold.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/Inter-bold_italic.ttf b/resources/fonts/Inter-bold_italic.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/Inter-italic.ttf b/resources/fonts/Inter-italic.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/Inter-regular.ttf b/resources/fonts/Inter-regular.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/LICENSE.md b/resources/fonts/LICENSE.md old mode 100644 new mode 100755 diff --git a/resources/fonts/OpenMoji-Black.ttf b/resources/fonts/OpenMoji-Black.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/OpenMoji-Color.ttf b/resources/fonts/OpenMoji-Color.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/Vollkorn-bold.ttf b/resources/fonts/Vollkorn-bold.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/Vollkorn-bold_italic.ttf b/resources/fonts/Vollkorn-bold_italic.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/Vollkorn-italic.ttf b/resources/fonts/Vollkorn-italic.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/Vollkorn-regular.ttf b/resources/fonts/Vollkorn-regular.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/bitter-bold-italic.ttf b/resources/fonts/bitter-bold-italic.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/bitter-bold.ttf b/resources/fonts/bitter-bold.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/bitter-italic.ttf b/resources/fonts/bitter-italic.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/bitter-normal.ttf b/resources/fonts/bitter-normal.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/mplus-1mn-bold.ttf b/resources/fonts/mplus-1mn-bold.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/mplus-1mn-regular.ttf b/resources/fonts/mplus-1mn-regular.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/mplus-2p-bold.ttf b/resources/fonts/mplus-2p-bold.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/mplus-2p-regular.ttf b/resources/fonts/mplus-2p-regular.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/roboto-bold-italic.ttf b/resources/fonts/roboto-bold-italic.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/roboto-bold.ttf b/resources/fonts/roboto-bold.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/roboto-italic.ttf b/resources/fonts/roboto-italic.ttf old mode 100644 new mode 100755 diff --git a/resources/fonts/roboto-normal.ttf b/resources/fonts/roboto-normal.ttf old mode 100644 new mode 100755 diff --git a/resources/themes/book.yml b/resources/themes/book.yml old mode 100644 new mode 100755 diff --git a/resources/themes/images/cover.png b/resources/themes/images/cover.png old mode 100644 new mode 100755 diff --git a/source/deploy/admin_with_static.png b/source/deploy/admin_with_static.png old mode 100644 new mode 100755 diff --git a/source/deploy/admin_without_static.png b/source/deploy/admin_without_static.png old mode 100644 new mode 100755 diff --git a/source/deploy/environment.rst b/source/deploy/environment.rst old mode 100644 new mode 100755 diff --git a/source/deploy/gunicorn.rst b/source/deploy/gunicorn.rst old mode 100644 new mode 100755 diff --git a/source/deploy/nginx.rst b/source/deploy/nginx.rst old mode 100644 new mode 100755 diff --git a/source/deploy/update-app.adoc b/source/deploy/update-app.adoc old mode 100644 new mode 100755 diff --git a/source/glossary.adoc b/source/glossary.adoc old mode 100644 new mode 100755 diff --git a/source/main.adoc b/source/main.adoc old mode 100644 new mode 100755 diff --git a/source/part-2-deployment/_main.adoc b/source/part-2-deployment/_main.adoc old mode 100644 new mode 100755 diff --git a/source/part-2-deployment/databases.adoc b/source/part-2-deployment/databases.adoc old mode 100644 new mode 100755 diff --git a/source/part-2-deployment/debian.adoc b/source/part-2-deployment/debian.adoc old mode 100644 new mode 100755 diff --git a/source/part-2-deployment/docker.adoc b/source/part-2-deployment/docker.adoc old mode 100644 new mode 100755 diff --git a/source/part-2-deployment/heroku.adoc b/source/part-2-deployment/heroku.adoc old mode 100644 new mode 100755 diff --git a/source/part-2-deployment/kubernetes.adoc b/source/part-2-deployment/kubernetes.adoc old mode 100644 new mode 100755 diff --git a/source/part-2-deployment/logging.adoc b/source/part-2-deployment/logging.adoc old mode 100644 new mode 100755 diff --git a/source/part-3-data-model/_index.adoc b/source/part-3-data-model/_index.adoc old mode 100644 new mode 100755 diff --git a/source/part-3-data-model/admin.adoc b/source/part-3-data-model/admin.adoc old mode 100644 new mode 100755 diff --git a/source/part-3-data-model/auth.adoc b/source/part-3-data-model/auth.adoc old mode 100644 new mode 100755 diff --git a/source/part-3-data-model/context_processors.adoc b/source/part-3-data-model/context_processors.adoc old mode 100644 new mode 100755 diff --git a/source/part-3-data-model/forms.adoc b/source/part-3-data-model/forms.adoc old mode 100644 new mode 100755 diff --git a/source/part-3-data-model/migrations.adoc b/source/part-3-data-model/migrations.adoc old mode 100644 new mode 100755 diff --git a/source/part-3-data-model/models.adoc b/source/part-3-data-model/models.adoc old mode 100644 new mode 100755 diff --git a/source/part-3-data-model/querysets.adoc b/source/part-3-data-model/querysets.adoc old mode 100644 new mode 100755 diff --git a/source/part-3-data-model/settings.adoc b/source/part-3-data-model/settings.adoc old mode 100644 new mode 100755 diff --git a/source/part-3-data-model/shell.adoc b/source/part-3-data-model/shell.adoc old mode 100644 new mode 100755 diff --git a/source/part-3-data-model/templates.adoc b/source/part-3-data-model/templates.adoc old mode 100644 new mode 100755 diff --git a/source/part-3-data-model/tests.adoc b/source/part-3-data-model/tests.adoc old mode 100644 new mode 100755 diff --git a/source/part-3-data-model/translations.adoc b/source/part-3-data-model/translations.adoc old mode 100644 new mode 100755 diff --git a/source/part-3-data-model/views.adoc b/source/part-3-data-model/views.adoc old mode 100644 new mode 100755 diff --git a/source/part-4-services-oriented-applications/_main.adoc b/source/part-4-services-oriented-applications/_main.adoc old mode 100644 new mode 100755 diff --git a/source/part-4-services-oriented-applications/rest.adoc b/source/part-4-services-oriented-applications/rest.adoc old mode 100644 new mode 100755 diff --git a/source/part-4-services-oriented-applications/sentry.adoc b/source/part-4-services-oriented-applications/sentry.adoc old mode 100644 new mode 100755 diff --git a/source/part-4-services-oriented-applications/trees.adoc b/source/part-4-services-oriented-applications/trees.adoc old mode 100644 new mode 100755 diff --git a/source/part-4-services-oriented-applications/unit_tests.adoc b/source/part-4-services-oriented-applications/unit_tests.adoc old mode 100644 new mode 100755 diff --git a/source/part-4-services-oriented-applications/urls.adoc b/source/part-4-services-oriented-applications/urls.adoc old mode 100644 new mode 100755 diff --git a/source/part-5-go-live/_index.adoc b/source/part-5-go-live/_index.adoc old mode 100644 new mode 100755 diff --git a/source/part-5-go-live/gwift/_main.adoc b/source/part-5-go-live/gwift/_main.adoc old mode 100644 new mode 100755 diff --git a/source/part-5-go-live/gwift/models.adoc b/source/part-5-go-live/gwift/models.adoc old mode 100644 new mode 100755 diff --git a/source/part-5-go-live/gwift/refactoring.adoc b/source/part-5-go-live/gwift/refactoring.adoc old mode 100644 new mode 100755 diff --git a/source/part-5-go-live/gwift/specs.adoc b/source/part-5-go-live/gwift/specs.adoc old mode 100644 new mode 100755 diff --git a/source/part-5-go-live/gwift/tests.adoc b/source/part-5-go-live/gwift/tests.adoc old mode 100644 new mode 100755 diff --git a/source/part-5-go-live/gwift/user-management.adoc b/source/part-5-go-live/gwift/user-management.adoc old mode 100644 new mode 100755 diff --git a/source/part-5-go-live/integrations.adoc b/source/part-5-go-live/integrations.adoc old mode 100644 new mode 100755 diff --git a/source/part-5-go-live/khana/_main.adoc b/source/part-5-go-live/khana/_main.adoc old mode 100644 new mode 100755 diff --git a/source/part-5-go-live/legacy/_index.adoc b/source/part-5-go-live/legacy/_index.adoc old mode 100644 new mode 100755 diff --git a/source/part-9-resources/_index.adoc b/source/part-9-resources/_index.adoc old mode 100644 new mode 100755 diff --git a/source/part-9-resources/legacy.adoc b/source/part-9-resources/legacy.adoc old mode 100644 new mode 100755 diff --git a/source/references.bib b/source/references.bib old mode 100644 new mode 100755 diff --git a/specs.md b/specs.md old mode 100644 new mode 100755