|
| 1 | +### TL;DR |
| 2 | + |
| 3 | +The basic idea is simple: we try to focus discussion on one area at a |
| 4 | +time. The discussion begins with a proposal outlining the goals ([here |
| 5 | +is an example of such a proposal][eg]). From there, we open up various |
| 6 | +threads that are discussing "mostly independent" topics. Over the |
| 7 | +course of the discussion, a "discussion lead" will periodically |
| 8 | +collate the details into a document living in the |
| 9 | +[unsafe-code-guidelines repository][repo], so that people can get up |
| 10 | +to speed more quickly. At some point, when we feel like we've gone as |
| 11 | +far as we can go, we "wrap up" the discussion and select another thing |
| 12 | +to talk about. |
| 13 | + |
| 14 | +[repo]: https://github.com/rust-rfcs/unsafe-code-guidelines/ |
| 15 | + |
| 16 | +### Starting a discussion |
| 17 | + |
| 18 | +To start a discussion, a lead (or group of leads) prepares a |
| 19 | +"discussion proposal". This has the form of a PR. The basis for the |
| 20 | +proposal is [the `TEMPLATE.md` file][template]. The idea is that this |
| 21 | +proposal will: |
| 22 | + |
| 23 | +[template]: active_discussion/TEMPLATE.md |
| 24 | + |
| 25 | +- outline the topic to be discussed and the goals of the discussion, |
| 26 | +- highlight some interesting questions and background reading, |
| 27 | +- and propose an initial set of threads. |
| 28 | + |
| 29 | +On the PR, we can discuss whether this is a good thing to talk about |
| 30 | +and what changes we might make. For example, maybe we want to narrow |
| 31 | +the topic, or add some more examples. |
| 32 | + |
| 33 | +### Repo and Threads |
| 34 | + |
| 35 | +Once we decide to adopt an area for discussion (see "meetings" below), |
| 36 | +we do the following: |
| 37 | + |
| 38 | +- merge the PR and update the README.md appropriately |
| 39 | +- create a `topic-foo` label for this topic |
| 40 | +- open the initial discussion threads, tagging them with the new label |
| 41 | + |
| 42 | +### Ending a discussion |
| 43 | + |
| 44 | +At some point, we will decide in one of the meetings (see below) that |
| 45 | +the discussion has reached a steady state (no new points are being |
| 46 | +made). The leads can then take the final summaries and move that |
| 47 | +content into our "reference", which basically collates all the results |
| 48 | +from prior discussions. Note that discussions don't have to reach firm |
| 49 | +conclusions: it is ok to end with "these things are known" as well as |
| 50 | +"these things need to be settled in the future". |
| 51 | + |
| 52 | +### Regular meetings and schedule |
| 53 | + |
| 54 | +In general, regular meetings are held every two weeks (the time and |
| 55 | +venue appears in the README). Meetings are used to decide when to change |
| 56 | +topics and so forth. |
| 57 | + |
| 58 | +Attendance at the meeting is welcome but not mandatory or |
| 59 | +expected. Prior to the meeting itself, the discussion leads will open |
| 60 | +a PR with updated summaries and a suggestion of whether to move on |
| 61 | +etc. It is suggested that you comment on this PR. |
| 62 | + |
| 63 | +### Making things official |
| 64 | + |
| 65 | +Conclusions reached by this working group are effectively |
| 66 | +"recommendations". To become official, they have to go through the |
| 67 | +Rust RFC process as a lang team RFC. |
0 commit comments