==================================Organization of the Django Project==================================Principles==========The Django Project is managed by a team of volunteers pursuing three goals:- Driving the development of the Django web framework,- Fostering the ecosystem of Django-related software,- Leading the Django community in accordance with the values described in the`Django Code of Conduct`_.The Django Project isn't a legal entity. The `Django Software Foundation`_, anon-profit organization, handles financial and legal matters related to theDjango Project. Other than that, the Django Software Foundation lets theDjango Project manage the development of the Django framework, its ecosystemand its community... _Django Code of Conduct: https://www.djangoproject.com/conduct/.. _Django Software Foundation: https://www.djangoproject.com/foundation/.. _mergers-team:Mergers=======Role----Mergers_ are a small set of people who merge pull requests to the `Django Gitrepository`_.Prerogatives------------Mergers hold the following prerogatives:- Merging any pull request which constitutes a `minor change`_ (small enoughnot to require the use of the `DEP process`_). A Merger must not merge achange primarily authored by that Merger, unless the pull request has beenapproved by:- another Merger,- a steering council member,- a member of the `triage & review team`_, or- a member of the `security team`_.- Initiating discussion of a minor change in the appropriate venue, and requestthat other Mergers refrain from merging it while discussion proceeds.- Requesting a vote of the steering council regarding any minor change if, inthe Merger's opinion, discussion has failed to reach a consensus.- Requesting a vote of the steering council when a `major change`_ (significantenough to require the use of the `DEP process`_) reaches one of itsimplementation milestones and is intended to merge... _`minor change`: https://github.com/django/deps/blob/main/accepted/0010-new-governance.rst#terminology.. _`major change`: https://github.com/django/deps/blob/main/accepted/0010-new-governance.rst#terminologyMembership----------`The steering council`_ selects Mergers_ as necessary to maintain their numberat a minimum of three, in order to spread the workload and avoid over-burdeningor burning out any individual Merger. There is no upper limit to the number ofMergers.It's not a requirement that a Merger is also a Django Fellow, but the DjangoSoftware Foundation has the power to use funding of Fellow positions as a wayto make the role of Merger sustainable.The following restrictions apply to the role of Merger:- A person must not simultaneously serve as a member of the steering council. Ifa Merger is elected to the steering council, they shall cease to be a Mergerimmediately upon taking up membership in the steering council.- A person may serve in the roles of Releaser and Merger simultaneously.The selection process, when a vacancy occurs or when the steering council deemsit necessary to select additional persons for such a role, occur as follows:- Any member in good standing of an appropriate discussion venue, or the DjangoSoftware Foundation board acting with the input of the DSF's Fellowshipcommittee, may suggest a person for consideration.- The steering council considers the suggestions put forth, and then any memberof the steering council formally nominates a candidate for the role.- The steering council votes on nominees.Mergers may resign their role at any time, but should endeavor to provide someadvance notice in order to allow the selection of a replacement. Termination ofthe contract of a Django Fellow by the Django Software Foundation temporarilysuspends that person's Merger role until such time as the steering council canvote on their nomination.Otherwise, a Merger may be removed by:- Becoming disqualified due to election to the steering council.- Becoming disqualified due to actions taken by the Code of Conduct committeeof the Django Software Foundation.- A vote of the steering council... _releasers-team:Releasers=========Role----Releasers_ are a small set of people who have the authority to upload packagedreleases of Django to the `Python Package Index`_, and to the`djangoproject.com`_ website.Prerogatives------------Releasers_ :doc:`build Django releases </internals/howto-release-django>` andupload them to the `Python Package Index`_, and to the `djangoproject.com`_website.Membership----------`The steering council`_ selects Releasers_ as necessary to maintain their numberat a minimum of three, in order to spread the workload and avoid over-burdeningor burning out any individual Releaser. There is no upper limit to the numberof Releasers.It's not a requirement that a Releaser is also a Django Fellow, but the DjangoSoftware Foundation has the power to use funding of Fellow positions as a wayto make the role of Releaser sustainable.A person may serve in the roles of Releaser and Merger simultaneously.The selection process, when a vacancy occurs or when the steering council deemsit necessary to select additional persons for such a role, occur as follows:- Any member in good standing of an appropriate discussion venue, or the DjangoSoftware Foundation board acting with the input of the DSF's Fellowshipcommittee, may suggest a person for consideration.- The steering council considers the suggestions put forth, and then any memberof the steering council formally nominates a candidate for the role.- The steering council votes on nominees.Releasers may resign their role at any time, but should endeavor to providesome advance notice in order to allow the selection of a replacement.Termination of the contract of a Django Fellow by the Django SoftwareFoundation temporarily suspends that person's Releaser role until such time asthe steering council can vote on their nomination.Otherwise, a Releaser may be removed by:- Becoming disqualified due to actions taken by the Code of Conduct committeeof the Django Software Foundation.- A vote of the steering council... _`Python Package Index`: https://pypi.org/project/Django/.. _djangoproject.com: https://www.djangoproject.com/download/.. _steering-council:Steering council================Role----The steering council is a group of experienced contributors who:- provide oversight of Django's development and release process,- assist in setting the direction of feature development and releases,- take part in filling certain roles, and- have a tie-breaking vote when other decision-making processes fail.Their main concern is to maintain the quality and stability of the Django WebFramework.Prerogatives------------The steering council holds the following prerogatives:- Making a binding decision regarding any question of a technical change toDjango.- Vetoing the merging of any particular piece of code into Django or orderingthe reversion of any particular merge or commit.- Announcing calls for proposals and ideas for the future technical directionof Django.- Setting and adjusting the schedule of releases of Django.- Selecting and removing mergers and releasers.- Participating in the removal of members of the steering council, when deemedappropriate.- Calling elections of the steering council outside of those which areautomatically triggered, at times when the steering council deems an electionis appropriate.- Participating in modifying Django's governance (see:ref:`organization-change`).- Declining to vote on a matter the steering council feels is unripe for abinding decision, or which the steering council feels is outside the scope ofits powers.- Taking charge of the governance of other technical teams within the Djangoopen-source project, and governing those teams accordingly.Membership----------`The steering council`_ is an elected group of five experienced contributorswho demonstrate:- A history of substantive contributions to Django or the Django ecosystem.This history must begin at least 18 months prior to the individual'scandidacy for the Steering Council, and include substantive contributions inat least two of these bullet points:- Code contributions on Django projects or major third-party packages in the Django ecosystem- Reviewing pull requests and/or triaging Django project tickets- Documentation, tutorials or blog posts- Discussions about Django on the django-developers mailing list or the Django Forum- Running Django-related events or user groups- A history of engagement with the direction and future of Django. This doesnot need to be recent, but candidates who have not engaged in the past threeyears must still demonstrate an understanding of Django's changes anddirection within those three years.A new council is elected after each release cycle of Django. The election processworks as follows:#. The steering council directs one of its members to notify the Secretary of theDjango Software Foundation, in writing, of the triggering of the election,and the condition which triggered it. The Secretary post to the appropriatevenue -- the |django-developers| mailing list and the `Django forum`_ toannounce the election and its timeline.#. As soon as the election is announced, the `DSF Board`_ begin a period ofvoter registration. All `individual members of the DSF`_ are automaticallyregistered and need not explicitly register. All other persons who believethemselves eligible to vote, but who have not yet registered to vote, maymake an application to the DSF Board for voting privileges. The voterregistration form and roll of voters is maintained by the DSF Board. The DSFBoard may challenge and reject the registration of voters it believes areregistering in bad faith or who it believes have falsified theirqualifications or are otherwise unqualified.#. Registration of voters close one week after the announcement of theelection. At that point, registration of candidates begin. Any qualifiedperson may register as a candidate. The candidate registration form androster of candidates are maintained by the DSF Board, and candidates mustprovide evidence of their qualifications as part of registration. The DSFBoard may challenge and reject the registration of candidates it believes donot meet the qualifications of members of the Steering Council, or who itbelieves are registering in bad faith.#. Registration of candidates close one week after it has opened. One weekafter registration of candidates closes, the Secretary of the DSF publishthe roster of candidates to the |django-developers| mailing list and the`Django forum`_, and the election begin. The DSF Board provide a voting formaccessible to registered voters, and is the custodian of the votes.#. Voting is by secret ballot containing the roster of candidates, and anyrelevant materials regarding the candidates, in a randomized order. Eachvoter may vote for up to five candidates on the ballot.#. The election conclude one week after it begins. The DSF Board then tally thevotes and produce a summary, including the total number of votes cast andthe number received by each candidate. This summary is ratified by amajority vote of the DSF Board, then posted by the Secretary of the DSF tothe |django-developers| mailing list and the Django Forum. The fivecandidates with the highest vote totals are immediately become the newsteering council.A member of the steering council may be removed by:- Becoming disqualified due to actions taken by the Code of Conduct committeeof the Django Software Foundation.- Determining that they did not possess the qualifications of a member of thesteering council. This determination must be made jointly by the other membersof the steering council, and the `DSF Board`_. A valid determination ofineligibility requires that all other members of the steering council and allmembers of the DSF Board vote who can vote on the issue (the affected person,if a DSF Board member, must not vote) vote "yes" on a motion that the personin question is ineligible... _`Django forum`: https://forum.djangoproject.com/.. _`Django Git repository`: https://github.com/django/django/.. _`DSF Board`: https://www.djangoproject.com/foundation/#board.. _`individual members of the DSF`: https://www.djangoproject.com/foundation/individual-members/.. _mergers: https://www.djangoproject.com/foundation/teams/#mergers-team.. _releasers: https://www.djangoproject.com/foundation/teams/#releasers-team.. _`security team`: https://www.djangoproject.com/foundation/teams/#security-team.. _`the steering council`: https://www.djangoproject.com/foundation/teams/#steering-council-team.. _`triage & review team`: https://www.djangoproject.com/foundation/teams/#triage-review-team.. _organization-change:Changing the organization=========================Changes to this document require the use of the `DEP process`_, withmodifications described in `DEP 0010`_... _`DEP process`: https://github.com/django/deps/blob/main/final/0001-dep-process.rst.. _`DEP 0010`: https://github.com/django/deps/blob/main/accepted/0010-new-governance.rst#changing-this-governance-process