{"id":27764915,"url":"https://github.com/django/new-features","last_synced_at":"2025-04-29T15:21:43.328Z","repository":{"id":289564439,"uuid":"971444951","full_name":"django/new-features","owner":"django","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-23T22:40:24.000Z","size":36,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-23T23:33:22.455Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/django.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-23T14:29:57.000Z","updated_at":"2025-04-23T22:40:27.000Z","dependencies_parsed_at":"2025-04-23T23:43:33.318Z","dependency_job_id":null,"html_url":"https://github.com/django/new-features","commit_stats":null,"previous_names":["django/new-features"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/django%2Fnew-features","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/django%2Fnew-features/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/django%2Fnew-features/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/django%2Fnew-features/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/django","download_url":"https://codeload.github.com/django/new-features/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251526674,"owners_count":21603475,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-29T15:21:42.641Z","updated_at":"2025-04-29T15:21:43.318Z","avatar_url":"https://github.com/django.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Django Features\n\nWe are currently testing a way to propose new features to Django.\n\nFor browsing purposes you might like [the kanban view of this repo](https://github.com/orgs/django/projects/24/views/1) better.\n\nThe README on this repo is very much a work in progress and is likely to change according to the feedback we get as well as the teachings its usage will bring us.\n\n## Have an idea for Django?\n\nPlease know, things in Django take a while. You will need to be patient.\n\nPlease start with reviewing the [new feature process in Django](#djangos-new-feature-process).\n\nNext, go [create an issue in this repository](https://github.com/django/new-features/issues/new).\n\n## Want to help steer Django?\n\nThere are three queues that need community involvement:\n\n- [Is there community support?](https://github.com/django/new-features/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22phase%20%2F%20is%20there%20community%20support%22)\n  - Review the open tickets in this queue. Please share support on this via emojis.\n  - Please follow the [Emoji Reaction guide](#emoji-reaction-guide)\n  - See [Is there community support?](#is-there-community-support) for more details\n- [Is a feature expected in Django core?](https://github.com/django/new-features/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22phase%20%2F%20is%20this%20expected%20in%20core%22)\n  - Weigh-in on whether a feature should exist in Django core\n  - See [Is this expected in Django?](#is-this-expected-in-django) for more details\n- [Needing volunteers to implement or implementation review](https://github.com/django/new-features/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22phase%20%2F%20needs%20community%20DEP%22)\n  - Help implement or design features\n  - See [Can we do it?](#can-we-do-it) for more details\n\n### Leaving comments\n\nThe community is encouraged to engage in discussion about a feature idea. Please try to\navoid one-on-one discussions here though when possible. Long threads are difficult to\nfollow and require a person to summarize periodically.\n\n### Things not to do\n\nPlease avoid doing the following:\n\n- Writing comments that are \"+1\" or \"-1\". Use emojis to share those opinions, please.\n- Writing comments that are \"What's the state of this?\" You can see which phase of the process the idea is in by looking at the labels\n\n\n## Django's new feature process\n\nThis repository is used to contain Django's new feature process. The\npurpose is to identify features that the community deems helpful and\nnecessary to exist within Django.\n\nThe high level flow of the process can be seen in the chart below:\n\n```mermaid\nflowchart TD\n    newIdea[New Idea]@{ shape: circle} --\u003e isGood{Is there community support?}\n    isGood --\u003e|No| wontfix[Won't Fix]\n    isGood --\u003e|Yes|featureType{Is this expected in Django?}\n    featureType --\u003e |No|delightful{Can it be a 3rd party package?}\n    featureType --\u003e |Yes|scDEP[SC drafts DEP]\n    scDEP --\u003e expected{Can we do it?}\n    expected --\u003e |Yes|scDEPFinish[Implementor finishes DEP]\n    expected --\u003e |wait for resources| expected\n    scDEPFinish --\u003e tracCreated[Create Trac ticket / Implement]\n    delightful --\u003e |Yes|package[Create a package]@{ shape: dbl-circ}\n    delightful --\u003e |No|authorDEP[Author creates DEP]\n    authorDEP --\u003e |Rejected|wontfix@{ shape: dbl-circ}\n    authorDEP --\u003e |Approved|tracCreated@{ shape: dbl-circ}\n```\n\n### Is there community support?\n\nThe initial phase of every feature is understanding if there's community\nsupport for an idea. Community members should express their opinion in\ntwo ways:\n\n- An emoji reaction for simple opinions\n- A written comment for detailed support or criticism\n\n#### Emoji reaction guide\n\nUsing the following emojis on an issue has the related meaning.\n\n- 👍 This is something I would use\n- 👎 This is something that would cause problems for me or Django\n- 😕 I’m indifferent to this\n- 🎉 This is an easy win\n\n#### Raising awareness\n\nIf you've created a feature request and want to bring more attention to it,\nyou should consider some of the following:\n\n- Post about it on Social Media with the #Django hashtag\n- Post about it on the [Django Forum](https://forum.djangoproject.com/)\n- Write a blog post\n- Create a video\n- Give a conference talk\n\nThe larger your idea, the more investment you may need to make to convince\nthe community to support it.\n\n#### How is community support determined?\n\nThe [Steering Council](https://docs.djangoproject.com/en/dev/internals/organization/#steering-council)\nwill review issues periodically. They will review\na subset of issues in this category and determine whether there's community\nsupport for an idea. This is to the Steering Council's discretion.\n\n### Is this expected in Django?\n\nThe phase after there's community support is the phase to determine if the\nfeature idea is expected in Django core. Community members are encouraged to\nvoice their opinion on why something is or is not expected in Django.\n\n#### How are features determined to be within Django?\n\nThe Steering Council will review issues periodically. They will review a\nsubset of issues in this category and weigh the perspectives of the\ncommunity and determine whether a feature should be added to Django.\nThis is to the Steering Council's discretion.\n\n### Can we do it?\n\nThe phase after it's agreed upon that the feature belongs in Django is\ndetermining whether the feature can be implemented. Advancing beyond this\nphase requires a [DEP](#expedited-dep-process) to be created.\nThe [Steering Council](https://docs.djangoproject.com/en/dev/internals/organization/#steering-council) or a community\nmember can create the first draft. It should contain everything but the\ntechnical details of implementation (unless those are known already).\nThe community needs a person or a group of people to volunteer to implement\nthe feature.\n\nFor smaller issues, several steps of the DEP process can be skipped as\nthey will already have occurred.\n\nFor larger issues, the DEP process should be followed, more closely.\nThis is because the actual implementation of the feature will need\nto be agreed upon before any code can be merged.\n\n#### How do we determine if we can do it?\n\nWhen there is a DEP that the Steering Council is in agreement upon which\nhas everything but perhaps the last of the technical details, a Trac\nticket can be created and implementation Pull Requests to Django can\nbe sent.\n\nThis does not mean work can't start beforehand, but we shouldn't ask for\nFellow's involvement until these things are completed.\n\n\n### Can the feature be a third-party package?\n\nThe phase when it's determined that a feature has community support, but\nshouldn't be in Django core is determining whether the feature should be a\nthird-party package. Most features should strive to be third-party packages.\nThis approach allows for faster iteration and more variability in our\necosystem. \n\nIt's possible that a feature can't be a third-party package due to the nature\nof the feature or limitations of Django. In this case, the DEP process should\nbe followed. This [DEP](#expedited-dep-process) must be written by\na community member rather than the [Steering Council](https://docs.djangoproject.com/en/dev/internals/organization/#steering-council).\n\n\n## Expedited DEP process\n\nThis new feature process has overlap with the existing [DEP process](https://github.com/django/deps/).\nThis allows us to expedite the DEP process depending on the size of the feature\n according to the table below. It's still important to use DEPs to identify\nthe rationale, motivation and considerations of features. We're all shepherds\nof Django, and we owe it to future maintainers to explain why we choose to add things.\n\n| Feature Size                                                                                                                                   | Days to Weeks                                                                                             | Months                                                                                                                                                  | Quarters                                                                                                                                                |\n|------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [Pre-posal](https://github.com/django/deps/blob/main/final/0001-dep-process.rst#pre-proposal)                                                  | Completed in [Is there community support](#is-there-community-support)                                    | Completed in [Is there community support](#is-there-community-support)                                                                                  | Completed in [Is there community support](#is-there-community-support)                                                                                  |\n| [Forming the team](https://github.com/django/deps/blob/main/final/0001-dep-process.rst#forming-the-team)                                       | Author: Steering Council.\u003cbr/\u003eImplementation team: Feature proposer or community member\u003cbr/\u003eShepherd: N/A | Author: Steering Council.\u003cbr/\u003eImplementation team: Feature proposer or community member\u003cbr/\u003eShepherd: Community member, Fellow, Steering Council member | Author: Steering Council.\u003cbr/\u003eImplementation team: Feature proposer or community member\u003cbr/\u003eShepherd: Community member, Fellow, Steering Council member |\n| [Submitting the draft](https://github.com/django/deps/blob/main/final/0001-dep-process.rst#submitting-the-draft)                               | No forum discussion, just create draft Pull Request                                                       | No forum discussion, just create draft Pull Request                                                                                                     | Follow DEP process                                                                                                                                      |\n| [Discussion, development, and updates](https://github.com/django/deps/blob/main/final/0001-dep-process.rst#discussion-development-and-updates) | N/A unless the Steering Council pushes it back                                                            | N/A unless the Steering Council pushes it back                                                                                                          | Follow DEP process                                                                                                                                      |\n| [Review \u0026 Resolution](https://github.com/django/deps/blob/main/final/0001-dep-process.rst#review-resolution)                                   | Follow DEP process                                                                                        | Follow DEP process                                                                                                                                      | Follow DEP process                                                                                                                                      |\n| [Implementation](https://github.com/django/deps/blob/main/final/0001-dep-process.rst#implementation)                                           | Follow DEP process                                                                                        | Follow DEP process                                                                                                                                      | Follow DEP process                                                                                                                                      |\n\nThe Steering Council can draft DEPs on behalf of the community because when an idea passes\nthrough [Is this expected in Django?](#is-this-expected-in-django), the following sections\nwill have been discussed and determined:\n\n- Title\n- Preamble\n- Abstract\n- Motivation\n- Rationale\n- Copyright\n\nThe remaining three sections will need to be written by a community member,\nlikely the person or group of people who will be implementing the feature.\n\n- Specification\n- Backwards Compatibility\n- Reference Implementation\n\n## Do you have feedback about the process?\n\nPlease share your opinions on the [Forum](https://forum.djangoproject.com/c/internals/5).\n\n## Steering Council guidance\n\nThere are several tasks that the Steering Council should take to\nmaintain the backlog of ideas. Not every idea must be reviewed at\nevery interval, but some ideas should constantly be moving forward.\n\n### Triaging new ideas\n\n- [Queue to review](https://github.com/django/new-features/issues?q=is%3Aissue%20state%3Aopen%20(no%3Alabel%20OR%20label%3A%22phase%20%2F%20new%22))\n- Any relevant labels should be applied to the issue \n- If the issue is a duplicate of another, it should be closed and referred to the original\n- The concerns of triaging are:\n  - Clarity of the proposal\n  - Label usage\n  - Duplicates\n\n### Determining consensus on community support\n\n- [Queue to review](https://github.com/django/new-features/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22phase%20%2F%20is%20there%20community%20support%22%20)\n- The issues should be reviewed to determine if the community has arrived at consensus\n  - The question here is, “Does the community think this change is good for Django?”\n  - People who expressed significant disagreement may be asked to explain their disagreement\n  - When reviewing the issue, ignore the following as it’s irrelevant to this stage of the process\n    - It’s really hard to do\n    - We don’t have the capacity to implement this\n  - Potential results\n    - Nothing, because community discussion is ongoing or more is needed\n    - Consensus on yes, remove the \"Is there community support\" label and add \"Is this expected in Django\" label\n    - Consensus on no, the issue is closed\n  - The discussion and decision should be summarized into a single post by the team\n  - Next steps need to be communicated\n\n### Determining is this expected in Django\n\n- [Queue to review](https://github.com/django/new-features/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22phase%20%2F%20is%20this%20expected%20in%20core%22)\n- The issue should be reviewed to determine if the idea is expected to be in Django\n  - Features that should be merged into core Django are:\n    - Proven to be integral to Django a significant number of applications\n    - The design or need of the feature going to be stable for years\n  - When reviewing the issue, ignore the following as it’s irrelevant to this stage of the process\n    - It’s really hard to do\n    - We don’t have the capacity to implement this\n    - Feasibility of making it a third-party app\n       - The changes to support an easier integration should be proposed separately\n  - Potential results\n    - Nothing, because community discussion is ongoing or more is needed\n    - Consensus on yes, remove the \"Is this expected in Django\" label and add \"needs SC DEP\" label\n    - Consensus on no, the issue is closed or remove \"Is this expected in Django\" label and add \"third-party package\" label\n  - The discussion and decision should be summarized into a single post by the team\n  - Next steps need to be communicated\n\n### Creating DEPs for expected features\n\n- [Queue to review](https://github.com/django/new-features/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22phase%20%2F%20needs%20SC%20DEP%22)\n- The issue should have a DEP created at \n  - It should contain the following sections:\n    - Title\n    - Preamble\n    - Abstract\n    - Motivation\n    - Rationale\n    - Copyright\n  - The technical detail sections can be left for the community member who implements the feature\n  - When the Steering Council agrees on the above sections:\n    1. Remove \"needs SC DEP\" label and add \"needs community DEP\"\n    2. Add links/references between DEP draft and the feature idea issue\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjango%2Fnew-features","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdjango%2Fnew-features","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjango%2Fnew-features/lists"}