Skip to content

Commit 55ffccd

Browse files
committed
Write English version of the process and descriptions of phases.
1 parent f870817 commit 55ffccd

File tree

1 file changed

+125
-16
lines changed

1 file changed

+125
-16
lines changed

README.md

Lines changed: 125 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,52 @@
77
- Write up descriptions of each phase
88
- Write up instructions for SC / Feature Review team for each phase
99
- Generate URLs for various queues for people to bookmark
10-
- Write up instructions for expedited DEP process
10+
- Write up instructions for an expedited DEP process
1111

12-
## Here to create a new idea?
12+
## Have an idea for Django?
13+
14+
Please know, things in Django take a while. You will need to be patient.
15+
16+
Please start with reviewing the [new feature process in Django](#djangos-new-feature-process).
17+
18+
Next, go [create an issue in this repository](https://github.com/tim-schilling/new-features/issues/new).
19+
20+
## Want to help steer Django?
21+
22+
There are three queues that need community involvement:
23+
24+
- [Is there community support?](https://github.com/tim-schilling/new-features/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22phase%20%2F%20is%20there%20community%20support%22)
25+
- Review the open tickets in this queue. Please share support on this via emojis.
26+
- Please follow the [Emoji Reaction guide](#emoji-reaction-guide)
27+
- See [Is there community support?](#is-there-community-support) for more details
28+
- [Is a feature expected in Django core?](https://github.com/tim-schilling/new-features/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22phase%20%2F%20is%20this%20expected%20in%20core%22)
29+
- Weigh-in on whether a feature should exist in Django core
30+
- See [Is this expected in Django?](#is-this-expected-in-django) for more details
31+
- [Needing volunteers to implement or implementation review](https://github.com/tim-schilling/new-features/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22phase%20%2F%20needs%20community%20DEP%22)
32+
- Help implement or design features
33+
- See [Can we do it?](#can-we-do-it) for more details
34+
35+
### Leaving comments
36+
37+
The community is encouraged to engage in discussion about a feature idea. Please try to
38+
avoid one-on-one discussions here though when possible. Long threads are difficult to
39+
follow and require a person to summarize periodically.
40+
41+
### Things not to do
42+
43+
Please avoid doing the following:
44+
45+
- Writing comments that are "+1" or "-1". Use emojis to share those opinions, please.
46+
- 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
47+
48+
49+
## Django's new feature process
50+
51+
This repository is used to contain Django's new feature process. The
52+
purpose is to identify features that the community deems helpful and
53+
necessary to exist within Django.
54+
55+
The high level flow of the process can be seen in the chart below:
1356

1457
```mermaid
1558
flowchart TD
@@ -28,33 +71,99 @@ flowchart TD
2871
authorDEP --> |Approved|tracCreated@{ shape: dbl-circ}
2972
```
3073

31-
## Have an idea for Django?
32-
33-
Please know, things in Django take a while. You will need to be patient.
34-
35-
Please start with reviewing the new feature process in Django.
74+
### Is there community support?
3675

37-
Next, go create an issue in this repository.
76+
The initial phase of every feature is understanding if there's community
77+
support for an idea. Community members should express their opinion in
78+
two ways:
3879

39-
## Want to help steer Django?
80+
- An emoji reaction for simple opinions
81+
- A written comment for detailed support or criticism
4082

41-
Review the open tickets in this queue. Please share support on this via emojis.
83+
#### Emoji reaction guide
4284

43-
Please know that we have specific meanings for emojis:
85+
Using the following emojis on an issue has the related meaning.
4486

4587
- 👍 This is something I would use
4688
- 👎 This is something that would cause problems for me or Django
4789
- 😕 I’m indifferent to this
4890
- 🎉 This is an easy win
4991

50-
If you have extra information that is in favor or against an idea, please add it in a comment.
92+
#### Raising awareness
5193

52-
### Things not to do
94+
If you've created a feature request and want to bring more attention to it,
95+
you should consider some of the following:
5396

54-
Please avoid doing the following:
97+
- Post about it on Social Media with the #Django hashtag
98+
- Post about it on the [Django Forum](https://forum.djangoproject.com/)
99+
- Write a blog post
100+
- Create a video
101+
- Give a conference talk
55102

56-
- Writing comments that are "+1" or "-1". Use emojis to share those opinions, please.
57-
- 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
103+
The larger your idea, the more investment you may need to make to convince
104+
the community to support it.
105+
106+
#### How is community support determined?
107+
108+
The [Steering Council](https://docs.djangoproject.com/en/dev/internals/organization/#steering-council)
109+
will review issues periodically. They will review
110+
a subset of issues in this category and determine whether there's community
111+
support for an idea. This is to the Steering Council's discretion.
112+
113+
### Is this expected in Django?
114+
115+
The phase after there's community support is the phase to determine if the
116+
feature idea is expected in Django core. Community members are encouraged to
117+
voice their opinion on why something is or is not expected in Django.
118+
119+
#### How are features determined to be within Django?
120+
121+
The Steering Council will review issues periodically. They will review a
122+
subset of issues in this category and weigh the perspectives of the
123+
community and determine whether a feature should be added to Django.
124+
This is to the Steering Council's discretion.
125+
126+
### Can we do it?
127+
128+
The phase after it's agreed upon that the feature belongs in Django is
129+
determining whether the feature can be implemented. Advancing beyond this
130+
phase requires a [DEP](https://github.com/django/deps/) to be created.
131+
The [Steering Council](https://docs.djangoproject.com/en/dev/internals/organization/#steering-council) or a community
132+
member can create the first draft. It should contain everything but the
133+
technical details of implementation (unless those are known already).
134+
The community needs a person or a group of people to volunteer to implement
135+
the feature.
136+
137+
For smaller issues, several steps of the DEP process can be skipped as
138+
they will already have occurred.
139+
140+
For larger issues, the DEP process should be followed, more closely.
141+
This is because the actual implementation of the feature will need
142+
to be agreed upon before any code can be merged.
143+
144+
#### How do we determine if we can do it?
145+
146+
When there is a DEP that the Steering Council is in agreement upon which
147+
has everything but perhaps the last of the technical details, a Trac
148+
ticket can be created and implementation Pull Requests to Django can
149+
be sent.
150+
151+
This does not mean work can't start beforehand, but we shouldn't ask for
152+
Fellow's involvement until these things are completed.
153+
154+
155+
### Can the feature be a third-party package?
156+
157+
The phase when it's determined that a feature has community support, but
158+
shouldn't be in Django core is determining whether the feature should be a
159+
third-party package. Most features should strive to be third-party packages.
160+
This approach allows for faster iteration and more variability in our
161+
ecosystem.
162+
163+
It's possible that a feature can't be a third-party package due to the nature
164+
of the feature or limitations of Django. In this case, the DEP process should
165+
be followed. This [DEP](https://github.com/django/deps/) must be written by
166+
a community member rather than the [Steering Council](https://docs.djangoproject.com/en/dev/internals/organization/#steering-council).
58167

59168
## Do you have feedback about the process?
60169

0 commit comments

Comments
 (0)