{"title":"Le dépôt de code source de Django","version":"4.1","locale":"fr","docname":"internals/git","url":"/fr/4.1/internals/git/","canonical":"https://djangodocs.dev/fr/4.1/internals/git/","summary":"Lors du déploiement d’une application Django dans un environnement de production réel, il est pratiquement toujours indiqué d’utiliser une version officiellement…","html":"<h1>Le dépôt de code source de Django<a class=\"heading-anchor\" href=\"#the-django-source-code-repository\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Lors du déploiement d’une application Django dans un environnement de production réel, il est pratiquement toujours indiqué d’utiliser une <a class=\"reference external\" href=\"https://www.djangoproject.com/download/\">version officiellement empaquetée de Django</a>.</p>\n<p>Cependant, si vous souhaitez essayer du code en cours de développement d’une version à venir ou contribuer au développement de Django, vous aurez besoin d’accéder au dépôt du code source de Django.</p>\n<p>Ce document présente la façon dont le dépôt de code est organisé et comment vous pouvez travailler avec lui et y faire des recherches.</p>\n<section id=\"high-level-overview\">\n<h2>Aperçu général<a class=\"heading-anchor\" href=\"#high-level-overview\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Le dépôt du code source de Django utilise <a class=\"reference external\" href=\"https://git-scm.com/\">Git</a> pour suivre l’évolution du code à travers le temps, il est donc nécessaire de disposer d’une copie du client Git (programme nommé <code class=\"docutils literal notranslate\"><span class=\"pre\">git</span></code>) sur votre ordinateur, et il est conseillé de vous familiariser quelque peu avec les bases du fonctionnement de Git.</p>\n<p>Le site Web de Git offre des téléchargements pour différents systèmes d’exploitation. Le site contient aussi une grande quantité de <a class=\"reference external\" href=\"https://git-scm.com/doc\">documentation</a>.</p>\n<p>Le dépôt Git de Django est accessible en ligne sur <a class=\"reference external\" href=\"https://github.com/django/django\">github.com/django/django</a>. Il contient le code source complet de toutes les versions de Django que vous pouvez parcourir en ligne.</p>\n<p>Le dépôt Git comprend plusieurs <a class=\"reference external\" href=\"https://github.com/django/django/branches\">branches</a>:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">main</span></code> contient le code en développement principal qui est appelé à devenir la prochaine version publiée de Django. C’est là que la plupart des activités de développement ont lieu.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">stable/A.B.x</span></code> sont les branches dans lesquelles se préparent les prochaines publications. Elles sont également utilisées pour les publications correctives et de sécurité qui sont produites en fonction des besoins à la suite de la publication initiale d’une version majeure.</p></li>\n</ul>\n<p>Le dépôt Git contient aussi des étiquettes (<a class=\"reference external\" href=\"https://github.com/django/django/tags\">tags</a>). Il s’agit de versions figées à partir desquelles des versions de Django ont été produites depuis la version 1.0.</p>\n<p>Un certain nombre de « tags » existent aussi sous le préfixe <code class=\"docutils literal notranslate\"><span class=\"pre\">archive/</span></code> pour des <a class=\"reference internal\" href=\"#archived-feature-development-work\"><span class=\"std std-ref\">travaux archivés</span></a>.</p>\n<p>Le code source du site Web <a class=\"reference external\" href=\"https://www.djangoproject.com/\">Djangoproject.com</a> se trouve à l’adresse <a class=\"reference external\" href=\"https://github.com/django/djangoproject.com\">github.com/django/djangoproject.com</a>.</p>\n</section>\n<section id=\"the-main-branch\">\n<h2>La branche principale <code class=\"docutils literal notranslate\"><span class=\"pre\">main</span></code><a class=\"heading-anchor\" href=\"#the-main-branch\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Si vous souhaitez tester le code en cours de développement de la prochaine version de Django ou si vous aimeriez contribuer à Django en corrigeant des anomalies ou en développant de nouvelles fonctionnalités, vous aurez besoin d’obtenir le code de la branche <code class=\"docutils literal notranslate\"><span class=\"pre\">main</span></code>.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Avant mars 2021, la branche principale s’appelait <code class=\"docutils literal notranslate\"><span class=\"pre\">master</span></code>.</p>\n</aside>\n<p>Notez que vous obtiendrez <em>la totalité</em> de Django : en plus du module ` django` au premier niveau contenant le code Python, vous obtiendrez aussi une copie de la documentation de Django, la suite de tests, les scripts d’empaquetage et d’autres éléments divers. Le code de Django sera présent dans votre clone sous forme d’un répertoire nommé <code class=\"docutils literal notranslate\"><span class=\"pre\">django</span></code>.</p>\n<p>Pour tester le code en cours de développement avec vos propres applications, placez le répertoire contenant votre clone dans le chemin d’importation Python. De ce fait, les instructions <code class=\"docutils literal notranslate\"><span class=\"pre\">import</span></code> recherchant Django vont trouver le module <code class=\"docutils literal notranslate\"><span class=\"pre\">django</span></code> de votre clone du code.</p>\n<p>Si vous avez l’intention de travailler sur le code de Django (correction d’anomalie ou développement de fonctionnalités), vous pouvez probablement arrêter de lire cette page et passer à la <a class=\"reference internal\" href=\"/fr/4.1/internals/contributing/\"><span class=\"doc\">documentation de contribution à Django</span></a>, qui couvre des sujets comme le style de codage préféré ou sur la façon de produire et soumettre un correctif.</p>\n</section>\n<section id=\"stable-branches\">\n<h2>Les branches stables<a class=\"heading-anchor\" href=\"#stable-branches\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django utilise des branches pour préparer les nouvelles publications de Django. Chaque publication majeure possède sa propre branche stable.</p>\n<p>Ces branches se trouvent dans le dépôt sous la forme de branches <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/A.B.x</span></code> et sont créées à partir du moment où la première version alpha d’une nouvelle série est étiquetée.</p>\n<p>Par exemple, immédiatement après que <em>Django 1.5 alpha 1</em> a été produite, la branche <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/1.5.x</span></code> a été créée et toute la suite de travail de préparation de code pour la version 1.5 finale a eu lieu dans celle-ci.</p>\n<p>Ces branches sont aussi la source des versions correctives et de sécurité telles que décrites dans <a class=\"reference internal\" href=\"/fr/4.1/internals/release-process/#supported-versions-policy\"><span class=\"std std-ref\">Versions prises en charge</span></a>.</p>\n<p>Par exemple, après la publication de Django 1.5, la branche <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/1.5.x</span></code> ne reçoit plus que des corrections de sécurité ou d’anomalies jugées critiques pour sa stabilité, qui sont alors publiées comme Django 1.5.1 et ainsi de suite. La branche <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/1.4.x</span></code> ne reçoit plus que des corrections de sécurité ou d’anomalies générant des pertes de données, alors que <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/1.3.x</span></code> ne reçoit plus aucune mise à jour.</p>\n<aside class=\"admonition-historical-information admonition\">\n<p class=\"admonition-title\">Information historique</p>\n<p>Cette politique de gestion des branches <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/A.B.x</span></code> a été adoptée à partir du cycle de publication de Django 1.5.</p>\n<p>Précédemment, ces branches n’étaient créées que juste après les publications et le travail de stabilisation se faisait dans la branche principale du dépôt. De ce fait, aucun développement de nouvelle fonctionnalité pour la prochaine publication de Django ne pouvait être commité avant la publication finale en cours.</p>\n<p>Par exemple, peu après la sortie de Django 1.3, la branche  <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/1.3.x</span></code> a été créée. La prise en charge officielle de cette publication a expiré et elle n’est donc plus directement maintenue par le projet Django. Cependant, cette branche et toutes les autres nommées sur le même modèle continuent d’exister, et les membres de la communautés intéressés les ont de temps à autre utilisées pour fournir du soutien non officiel pour les anciennes versions de Django.</p>\n</aside>\n</section>\n<section id=\"id1\">\n<h2>Étiquettes (<code class=\"docutils literal notranslate\"><span class=\"pre\">tags</span></code>)<a class=\"heading-anchor\" href=\"#id1\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Chaque version de Django est étiquetée et signée par la personne qui a produit la version.</p>\n<p>Les étiquettes sont accessibles sur la page <a class=\"reference external\" href=\"https://github.com/django/django/tags\">tags</a> de GitHub.</p>\n<section id=\"archived-feature-development-work\">\n<span id=\"id3\"></span><h3>Développements de fonctionnalités archivés<a class=\"heading-anchor\" href=\"#archived-feature-development-work\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"admonition-historical-information admonition\">\n<p class=\"admonition-title\">Information historique</p>\n<p>Depuis que Django a passé à Git en 2012, tout le monde peut clôner le dépôt et créer ses propres branches, ce qui rend caduque la nécessité de créer des branches officielles dans le dépôt du code source.</p>\n<p>La section suivante est surtout utile si vous explorez l’historique du dépôt, par exemple si vous essayez de comprendre comment certaines fonctionnalités ont été développées.</p>\n</aside>\n<p>Feature-development branches tend by their nature to be temporary. Some\nproduce successful features which are merged back into Django’s main branch to\nbecome part of an official release, but others do not; in either case, there\ncomes a time when the branch is no longer being actively worked on by any\ndeveloper. At this point the branch is considered closed.</p>\n<p>Django used to be maintained with the Subversion revision control system, that\nhas no standard way of indicating this. As a workaround, branches of Django\nwhich are closed and no longer maintained were moved into <code class=\"docutils literal notranslate\"><span class=\"pre\">attic</span></code>.</p>\n<p>A number of tags exist under the <code class=\"docutils literal notranslate\"><span class=\"pre\">archive/</span></code> prefix to maintain a reference to\nthis and other work of historical interest.</p>\n<p>Les tags suivants sous le préfixe <code class=\"docutils literal notranslate\"><span class=\"pre\">archive/attic/</span></code> font référence au point le plus récent des branches dont le code a finalement été intégré dans la branche principale de Django :</p>\n<ul class=\"simple\">\n<li><p>boulder-oracle-sprint`: ajout de la prise en charge des bases de données Oracle dans l’ORM (object-relational mapper) de Django. Ceci a fait partie de Django dès sa version 1.0.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">gis</span></code>: ajout de la prise en charge des requêtes géographiques/spatiales par l’ORM de Django. Ceci a fait partie de Django dès sa version 1.0, dans l’application intégrée <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">i18n</span></code>: ajout de la <a class=\"reference internal\" href=\"/fr/4.1/topics/i18n/\"><span class=\"doc\">prise en charge de l’internationalisation</span></a> dans Django. Ceci a fait partie de Django dès sa version 0.90.</p></li>\n<li><p>magic-removal`: une refonte majeure des API internes et publiques de l’ORM (object-relational mapper) de Django. Ceci a fait partie de Django dès sa version 0.95.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">multi-auth</span></code>: A refactoring of <a class=\"reference internal\" href=\"/fr/4.1/topics/auth/\"><span class=\"doc\">Django’s bundled\nauthentication framework</span></a> which added support for\n<a class=\"reference internal\" href=\"/fr/4.1/topics/auth/customizing/#authentication-backends\"><span class=\"std std-ref\">authentication backends</span></a>. This has\nbeen part of Django since the 0.95 release.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">new-admin</span></code>: A refactoring of <a class=\"reference internal\" href=\"/fr/4.1/ref/contrib/admin/\"><span class=\"doc\">Django’s bundled\nadministrative application</span></a>. This became part of\nDjango as of the 0.91 release, but was superseded by another\nrefactoring (see next listing) prior to the Django 1.0 release.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">newforms-admin</span></code>: The second refactoring of Django’s bundled\nadministrative application. This became part of Django as of the 1.0\nrelease, and is the basis of the current incarnation of\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">queryset-refactor</span></code>: A refactoring of the internals of Django’s\nobject-relational mapper. This became part of Django as of the 1.0\nrelease.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">unicode</span></code>: A refactoring of Django’s internals to consistently use\nUnicode-based strings in most places within Django and Django\napplications. This became part of Django as of the 1.0 release.</p></li>\n</ul>\n<p>Additionally, the following tags under the <code class=\"docutils literal notranslate\"><span class=\"pre\">archive/attic/</span></code> prefix reference\nthe tips of branches that were closed, but whose code was never merged into\nDjango, and the features they aimed to implement were never finished:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">full-history</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">generic-auth</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">multiple-db-support</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">per-object-permissions</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">schema-evolution</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">schema-evolution-ng</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">search-api</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">sqlalchemy</span></code></p></li>\n</ul>\n<p>Finally, under the <code class=\"docutils literal notranslate\"><span class=\"pre\">archive/</span></code> prefix, the repository contains\n<code class=\"docutils literal notranslate\"><span class=\"pre\">soc20XX/&lt;project&gt;</span></code> tags referencing the tip of branches that were used by\nstudents who worked on Django during the 2009 and 2010 Google Summer of Code\nprograms.</p>\n</section>\n</section>","rootId":"the-django-source-code-repository","toc":[{"title":"Aperçu général","anchor":"high-level-overview","children":[]},{"title":"La branche principale main","anchor":"the-main-branch","children":[]},{"title":"Les branches stables","anchor":"stable-branches","children":[]},{"title":"Étiquettes (tags)","anchor":"id1","children":[{"title":"Développements de fonctionnalités archivés","anchor":"archived-feature-development-work","children":[]}]}],"breadcrumbs":[{"docname":"internals/index","title":"Fonctionnement interne du projet Django","url":"/fr/4.1/internals/"}],"prev":{"docname":"internals/deprecation","title":"Calendrier d’obsolescence de Django","url":"/fr/4.1/internals/deprecation/"},"next":{"docname":"internals/howto-release-django","title":"Comment est constitué Django ?","url":"/fr/4.1/internals/howto-release-django/"},"formats":{"html":"/fr/4.1/internals/git/","markdown":"/fr/4.1/internals/git.md","json":"/fr/4.1/internals/git.json"},"source":"https://github.com/django/django/blob/stable/4.1.x/docs/internals/git.txt","official":"https://docs.djangoproject.com/fr/4.1/internals/git/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}