{"title":"Organization of the Django Project","version":"6.0","locale":"en","docname":"internals/organization","url":"/en/6.0/internals/organization/","canonical":"https://djangodocs.dev/en/6.0/internals/organization/","summary":"Principles Link to this heading # The Django Project is managed by a team of volunteers pursuing three goals: Driving the development of the Django web framework,…","html":"<h1>Organization of the Django Project<a class=\"heading-anchor\" href=\"#organization-of-the-django-project\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<section id=\"principles\">\n<h2>Principles<a class=\"heading-anchor\" href=\"#principles\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>The Django Project is managed by a team of volunteers pursuing three goals:</p>\n<ul class=\"simple\">\n<li><p>Driving the development of the Django web framework,</p></li>\n<li><p>Fostering the ecosystem of Django-related software,</p></li>\n<li><p>Leading the Django community in accordance with the values described in the\n<a class=\"reference external\" href=\"https://www.djangoproject.com/conduct/\">Django Code of Conduct</a>.</p></li>\n</ul>\n<p>The Django Project isn’t a legal entity. The <a class=\"reference external\" href=\"https://www.djangoproject.com/foundation/\">Django Software Foundation</a>, a\nnon-profit organization, handles financial and legal matters related to the\nDjango Project. Other than that, the Django Software Foundation lets the\nDjango Project manage the development of the Django framework, its ecosystem\nand its community.</p>\n</section>\n<section id=\"mergers\">\n<span id=\"mergers-team\"></span><h2>Mergers<a class=\"heading-anchor\" href=\"#mergers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"role\">\n<h3>Role<a class=\"heading-anchor\" href=\"#role\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><a class=\"reference external\" href=\"https://www.djangoproject.com/foundation/teams/#mergers-team\">Mergers</a> are a small set of people who merge pull requests to the <a class=\"reference external\" href=\"https://github.com/django/django/\">Django Git\nrepository</a>.</p>\n</section>\n<section id=\"prerogatives\">\n<h3>Prerogatives<a class=\"heading-anchor\" href=\"#prerogatives\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Mergers hold the following prerogatives:</p>\n<ul class=\"simple\">\n<li><p>Merging any pull request which constitutes a <a class=\"reference external\" href=\"https://github.com/django/deps/blob/main/final/0010-new-governance.rst#terminology\">minor change</a> (small enough\nnot to require the use of the <a class=\"reference external\" href=\"https://github.com/django/deps/blob/main/final/0001-dep-process.rst\">DEP process</a>). A Merger must not merge a\nchange primarily authored by that Merger, unless the pull request has been\napproved by:</p>\n<ul>\n<li><p>another Merger,</p></li>\n<li><p>a steering council member,</p></li>\n<li><p>a member of the <a class=\"reference external\" href=\"https://www.djangoproject.com/foundation/teams/#triage-review-team\">triage &amp; review team</a>, or</p></li>\n<li><p>a member of the <a class=\"reference external\" href=\"https://www.djangoproject.com/foundation/teams/#security-team\">security team</a>.</p></li>\n</ul>\n</li>\n<li><p>Initiating discussion of a minor change in the appropriate venue, and request\nthat other Mergers refrain from merging it while discussion proceeds.</p></li>\n<li><p>Requesting a vote of the steering council regarding any minor change if, in\nthe Merger’s opinion, discussion has failed to reach a consensus.</p></li>\n<li><p>Requesting a vote of the steering council when a <a class=\"reference external\" href=\"https://github.com/django/deps/blob/main/final/0010-new-governance.rst#terminology\">major change</a> (significant\nenough to require the use of the <a class=\"reference external\" href=\"https://github.com/django/deps/blob/main/final/0001-dep-process.rst\">DEP process</a>) reaches one of its\nimplementation milestones and is intended to merge.</p></li>\n</ul>\n</section>\n<section id=\"membership\">\n<h3>Membership<a class=\"heading-anchor\" href=\"#membership\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><a class=\"reference external\" href=\"https://www.djangoproject.com/foundation/teams/#steering-council-team\">The steering council</a> selects <a class=\"reference external\" href=\"https://www.djangoproject.com/foundation/teams/#mergers-team\">Mergers</a> as necessary to maintain their number\nat a minimum of three, in order to spread the workload and avoid over-burdening\nor burning out any individual Merger. There is no upper limit to the number of\nMergers.</p>\n<p>It’s not a requirement that a Merger is also a Django Fellow, but the Django\nSoftware Foundation has the power to use funding of Fellow positions as a way\nto make the role of Merger sustainable.</p>\n<p>The following restrictions apply to the role of Merger:</p>\n<ul class=\"simple\">\n<li><p>A person must not simultaneously serve as a member of the steering council.\nIf a Merger is elected to the steering council, they shall cease to be a\nMerger immediately upon taking up membership in the steering council.</p></li>\n<li><p>A person may serve in the roles of Releaser and Merger simultaneously.</p></li>\n</ul>\n<p>The selection process, when a vacancy occurs or when the steering council deems\nit necessary to select additional persons for such a role, occur as follows:</p>\n<ul class=\"simple\">\n<li><p>Any member in good standing of an appropriate discussion venue, or the Django\nSoftware Foundation board acting with the input of the DSF’s Fellowship\ncommittee, may suggest a person for consideration.</p></li>\n<li><p>The steering council considers the suggestions put forth, and then any member\nof the steering council formally nominates a candidate for the role.</p></li>\n<li><p>The steering council votes on nominees.</p></li>\n</ul>\n<p>Mergers may resign their role at any time, but should endeavor to provide some\nadvance notice in order to allow the selection of a replacement. Termination of\nthe contract of a Django Fellow by the Django Software Foundation temporarily\nsuspends that person’s Merger role until such time as the steering council can\nvote on their nomination.</p>\n<p>Otherwise, a Merger may be removed by:</p>\n<ul class=\"simple\">\n<li><p>Becoming disqualified due to election to the steering council.</p></li>\n<li><p>Becoming disqualified due to actions taken by the Code of Conduct committee\nof the Django Software Foundation.</p></li>\n<li><p>A vote of the steering council.</p></li>\n</ul>\n</section>\n</section>\n<section id=\"releasers\">\n<span id=\"releasers-team\"></span><h2>Releasers<a class=\"heading-anchor\" href=\"#releasers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"id1\">\n<h3>Role<a class=\"heading-anchor\" href=\"#id1\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><a class=\"reference external\" href=\"https://www.djangoproject.com/foundation/teams/#releasers-team\">Releasers</a> are a small set of people who have the authority to upload packaged\nreleases of Django to the <a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/Django/\">Python Package Index</a> and to the\n<a class=\"reference external\" href=\"https://www.djangoproject.com/download/\">djangoproject.com</a> website.</p>\n</section>\n<section id=\"id2\">\n<h3>Prerogatives<a class=\"heading-anchor\" href=\"#id2\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><a class=\"reference external\" href=\"https://www.djangoproject.com/foundation/teams/#releasers-team\">Releasers</a> <a class=\"reference internal\" href=\"/en/6.0/internals/howto-release-django/\"><span class=\"doc\">build Django releases</span></a> and\nupload them to the <a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/Django/\">Python Package Index</a> and to the\n<a class=\"reference external\" href=\"https://www.djangoproject.com/download/\">djangoproject.com</a> website.</p>\n</section>\n<section id=\"id3\">\n<h3>Membership<a class=\"heading-anchor\" href=\"#id3\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><a class=\"reference external\" href=\"https://www.djangoproject.com/foundation/teams/#steering-council-team\">The steering council</a> selects <a class=\"reference external\" href=\"https://www.djangoproject.com/foundation/teams/#releasers-team\">Releasers</a> as necessary to maintain their\nnumber at a minimum of three, in order to spread the workload and avoid\nover-burdening or burning out any individual Releaser. There is no upper limit\nto the number of Releasers.</p>\n<p>It’s not a requirement that a Releaser is also a Django Fellow, but the Django\nSoftware Foundation has the power to use funding of Fellow positions as a way\nto make the role of Releaser sustainable.</p>\n<p>A person may serve in the roles of Releaser and Merger simultaneously.</p>\n<p>The selection process, when a vacancy occurs or when the steering council deems\nit necessary to select additional persons for such a role, occur as follows:</p>\n<ul class=\"simple\">\n<li><p>Any member in good standing of an appropriate discussion venue, or the Django\nSoftware Foundation board acting with the input of the DSF’s Fellowship\ncommittee, may suggest a person for consideration.</p></li>\n<li><p>The steering council considers the suggestions put forth, and then any member\nof the steering council formally nominates a candidate for the role.</p></li>\n<li><p>The steering council votes on nominees.</p></li>\n</ul>\n<p>Releasers may resign their role at any time, but should endeavor to provide\nsome advance notice in order to allow the selection of a replacement.\nTermination of the contract of a Django Fellow by the Django Software\nFoundation temporarily suspends that person’s Releaser role until such time as\nthe steering council can vote on their nomination.</p>\n<p>Otherwise, a Releaser may be removed by:</p>\n<ul class=\"simple\">\n<li><p>Becoming disqualified due to actions taken by the Code of Conduct committee\nof the Django Software Foundation.</p></li>\n<li><p>A vote of the steering council.</p></li>\n</ul>\n</section>\n</section>\n<section id=\"steering-council\">\n<span id=\"id4\"></span><h2>Steering council<a class=\"heading-anchor\" href=\"#steering-council\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"id5\">\n<h3>Role<a class=\"heading-anchor\" href=\"#id5\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>The steering council is a group of experienced contributors who:</p>\n<ul class=\"simple\">\n<li><p>provide oversight of Django’s development and release process,</p></li>\n<li><p>assist in setting the direction of feature development and releases,</p></li>\n<li><p>select Mergers and Releasers, and</p></li>\n<li><p>have a tie-breaking vote when other decision-making processes fail.</p></li>\n</ul>\n<p>Their main concern is to maintain the quality and stability of the Django Web\nFramework.</p>\n</section>\n<section id=\"id6\">\n<h3>Prerogatives<a class=\"heading-anchor\" href=\"#id6\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>The steering council holds the following prerogatives:</p>\n<ul class=\"simple\">\n<li><p>Making a binding decision regarding any question of a technical change to\nDjango.</p></li>\n<li><p>Vetoing the merging of any particular piece of code into Django or ordering\nthe reversion of any particular merge or commit.</p></li>\n<li><p>Announcing calls for proposals and ideas for the future technical direction\nof Django.</p></li>\n<li><p>Selecting and removing mergers and releasers.</p></li>\n<li><p>Participating in the removal of members of the steering council, when deemed\nappropriate.</p></li>\n<li><p>Calling elections of the steering council outside of those which are\nautomatically triggered, at times when the steering council deems an election\nis appropriate.</p></li>\n<li><p>Participating in modifying Django’s governance (see\n<a class=\"reference internal\" href=\"#organization-change\"><span class=\"std std-ref\">Changing the organization</span></a>).</p></li>\n<li><p>Declining to vote on a matter the steering council feels is unripe for a\nbinding decision, or which the steering council feels is outside the scope of\nits powers.</p></li>\n<li><p>Taking charge of the governance of other technical teams within the Django\nopen-source project, and governing those teams accordingly.</p></li>\n</ul>\n</section>\n<section id=\"id7\">\n<h3>Membership<a class=\"heading-anchor\" href=\"#id7\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><a class=\"reference external\" href=\"https://www.djangoproject.com/foundation/teams/#steering-council-team\">The steering council</a> is an elected group of five experienced contributors\nwho demonstrate:</p>\n<ul class=\"simple\">\n<li><p>A history of substantive contributions to Django or the Django ecosystem.\nThis history must begin at least 18 months prior to the individual’s\ncandidacy for the Steering Council, and include substantive contributions in\nat least two of these bullet points:</p>\n<ul>\n<li><p>Code contributions to Django projects or major third-party packages in the\nDjango ecosystem</p></li>\n<li><p>Reviewing pull requests and/or triaging Django project tickets</p></li>\n<li><p>Documentation, tutorials or blog posts</p></li>\n<li><p>Discussions about Django on the Django Forum</p></li>\n<li><p>Running Django-related events or user groups</p></li>\n</ul>\n</li>\n<li><p>A history of engagement with the direction and future of Django. This does\nnot need to be recent, but candidates who have not engaged in the past three\nyears must still demonstrate an understanding of Django’s changes and\ndirection within those three years.</p></li>\n</ul>\n<p>A new council is elected after each release cycle of Django. The election\nprocess works as follows:</p>\n<ol class=\"arabic simple\">\n<li><p>The steering council directs one of its members to notify the Secretary of\nthe Django Software Foundation, in writing, of the triggering of the\nelection, and the condition which triggered it. The Secretary post to the\nappropriate venue – the <a class=\"reference external\" href=\"https://forum.djangoproject.com/\">Django Forum</a> to announce the election and its\ntimeline.</p></li>\n<li><p>As soon as the election is announced, the <a class=\"reference external\" href=\"https://www.djangoproject.com/foundation/#board\">DSF Board</a> begin a period of\nvoter registration. All <a class=\"reference external\" href=\"https://www.djangoproject.com/foundation/individual-members/\">individual members of the DSF</a> are automatically\nregistered and need not explicitly register. All other persons who believe\nthemselves eligible to vote, but who have not yet registered to vote, may\nmake an application to the DSF Board for voting privileges. The voter\nregistration form and roll of voters is maintained by the DSF Board. The DSF\nBoard may challenge and reject the registration of voters it believes are\nregistering in bad faith or who it believes have falsified their\nqualifications or are otherwise unqualified.</p></li>\n<li><p>Registration of voters close one week after the announcement of the\nelection. At that point, registration of candidates begin. Any qualified\nperson may register as a candidate. The candidate registration form and\nroster of candidates are maintained by the DSF Board, and candidates must\nprovide evidence of their qualifications as part of registration. The DSF\nBoard may challenge and reject the registration of candidates it believes do\nnot meet the qualifications of members of the Steering Council, or who it\nbelieves are registering in bad faith.</p></li>\n<li><p>Registration of candidates close one week after it has opened. One week\nafter registration of candidates closes, the Secretary of the DSF publishes\nthe roster of candidates to the <a class=\"reference external\" href=\"https://forum.djangoproject.com/\">Django Forum</a>, and the election begins.\nThe DSF Board provides a voting form accessible to registered voters, and is\nthe custodian of the votes.</p></li>\n<li><p>Voting is by secret ballot containing the roster of candidates, and any\nrelevant materials regarding the candidates, in a randomized order. Each\nvoter may vote for up to five candidates on the ballot.</p></li>\n<li><p>The election conclude one week after it begins. The DSF Board then tally the\nvotes and produce a summary, including the total number of votes cast and\nthe number received by each candidate. This summary is ratified by a\nmajority vote of the DSF Board, then posted by the Secretary of the DSF to\nthe <a class=\"reference external\" href=\"https://forum.djangoproject.com/\">Django Forum</a>. The five candidates with the highest vote totals\nimmediately become the new steering council.</p></li>\n</ol>\n<p>A member of the steering council may be removed by:</p>\n<ul class=\"simple\">\n<li><p>Becoming disqualified due to actions taken by the Code of Conduct committee\nof the Django Software Foundation.</p></li>\n<li><p>Determining that they did not possess the qualifications of a member of the\nsteering council. This determination must be made jointly by the other\nmembers of the steering council, and the <a class=\"reference external\" href=\"https://www.djangoproject.com/foundation/#board\">DSF Board</a>. A valid determination\nof ineligibility requires that all other members of the steering council and\nall members of the DSF Board vote who can vote on the issue (the affected\nperson, if a DSF Board member, must not vote) vote “yes” on a motion that the\nperson in question is ineligible.</p></li>\n</ul>\n</section>\n</section>\n<section id=\"changing-the-organization\">\n<span id=\"organization-change\"></span><h2>Changing the organization<a class=\"heading-anchor\" href=\"#changing-the-organization\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Changes to this document require the use of the <a class=\"reference external\" href=\"https://github.com/django/deps/blob/main/final/0001-dep-process.rst\">DEP process</a>, with\nmodifications described in <a class=\"reference external\" href=\"https://github.com/django/deps/blob/main/final/0010-new-governance.rst#changing-this-governance-process\">DEP 0010</a>.</p>\n</section>","rootId":"organization-of-the-django-project","toc":[{"title":"Principles","anchor":"principles","children":[]},{"title":"Mergers","anchor":"mergers","children":[{"title":"Role","anchor":"role","children":[]},{"title":"Prerogatives","anchor":"prerogatives","children":[]},{"title":"Membership","anchor":"membership","children":[]}]},{"title":"Releasers","anchor":"releasers","children":[{"title":"Role","anchor":"id1","children":[]},{"title":"Prerogatives","anchor":"id2","children":[]},{"title":"Membership","anchor":"id3","children":[]}]},{"title":"Steering council","anchor":"steering-council","children":[{"title":"Role","anchor":"id5","children":[]},{"title":"Prerogatives","anchor":"id6","children":[]},{"title":"Membership","anchor":"id7","children":[]}]},{"title":"Changing the organization","anchor":"changing-the-organization","children":[]}],"breadcrumbs":[{"docname":"internals/index","title":"Django internals","url":"/en/6.0/internals/"}],"prev":{"docname":"internals/mailing-lists","title":"Mailing lists and Forum","url":"/en/6.0/internals/mailing-lists/"},"next":{"docname":"internals/security","title":"Django’s security policies","url":"/en/6.0/internals/security/"},"formats":{"html":"/en/6.0/internals/organization/","markdown":"/en/6.0/internals/organization.md","json":"/en/6.0/internals/organization.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/internals/organization.txt","official":"https://docs.djangoproject.com/en/6.0/internals/organization/","inVersions":["dev","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","1.8"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}