xref: /llvm-project/llvm/docs/DiscourseMigrationGuide.md (revision 1b12e92c80936b5c7f3898e9f793fa9c5875d46e)
1# Discourse Migration Guide
2
3## Current Status of Migration: Discourse is back online at a new URL: [https://discourse.llvm.org](https://discourse.llvm.org). The old one still works as well. We are aware of an issue with reply by email to emails from before the merge. We will update once we know more.
4
5This document is intended to help LLVM users to migrate from the mailing lists to
6Discourse. Discourse has two basic ways for interaction: Via the [web
7UI](https://llvm.discourse.group/) and via emails.
8
9## Setting up your account
10
11The easiest way is to create an account using your GitHub account:
12
131. Navigate to https://llvm.discourse.group/
141. Click on "Sign Up" in the top right corner.
151. Choose "With GitHub" on the right side and log in with your GitHub account.
16
17## Structure of Discourse
18
19Discourse's structure is similar to a set of mailing lists, however different
20terms are used there. To help with the transition, here's a translation table
21for the terms:
22
23<table border=1>
24<tr><th>Mailing list</th><th>Discourse</th></tr>
25<tr><td><i>Mailing list</i>, consists of threads</td><td><i>category</i>, consists of topics</td></tr>
26<tr><td><i>thread</i>, consists of emails</td><td><i>topic</i>, consists of posts</td></tr>
27<tr><td>email</td><td>post</td></tr>
28</table>
29
30## Setting up email interactions
31
32Some folks want to interact with Discourse purely via their email program. Here
33are the typical use cases:
34
35* You can [subscribe to a category or topic](https://discourse.mozilla.org/t/how-do-i-subscribe-to-categories-and-topics/16024)
36* You can reply to a post, including quoting other peoples texts
37  ([tested](https://llvm.discourse.group/t/email-interaction-with-discourse/3306/4) on GMail).
38* [Quoting previous topics in an reply](https://meta.discourse.org/t/single-quote-block-dropped-in-email-reply/144802)
39* You can filter incoming emails in your email client by category using the
40  `List-ID` email header field.
41* You can create topics through email using the email address that is specific to the category. Each category description shows the email address to use, or you can use the mapping below.
42
43## Mapping of email addresses to Discourse categories
44
45Use these email addresses to create a topic by email in the specific discourse category. You **must** have a Discourse account associated with the email address you are sending from or the email will be rejected.
46
47<table border=1>
48<tr><th>Discourse Category</th><th>Email Address</th></tr>
49<tr><td>Beginner</td><td>beginners@discourse.llvm.org</td></tr>
50<tr><td>LLVM Project</td><td>llvmproject@discourse.llvm.org</td></tr>
51<tr><td>IR & Optimizations</td><td>IR.Optimizations@discourse.llvm.org</td></tr>
52<tr><td>IR & Optimizations - Loop Optimizations</td><td>IR.Optimizations-Loops@discourse.llvm.org</td></tr>
53<tr><td>Code Generation</td><td>codegen@discourse.llvm.org</td></tr>
54<tr><td>Code Generation - AMDGPU</td><td>codegen-amdgpu@discourse.llvm.org</td></tr>
55<tr><td>Code Generation - Common Infrastructure</td><td>codegen-common@discourse.llvm.org</td></tr>
56<tr><td>Code Generation - AArch64</td><td>codegen-aarch64@discourse.llvm.org</td></tr>
57<tr><td>Code Generation - Arm</td><td>codegen-arm@discourse.llvm.org</td></tr>
58<tr><td>Code Generation - PowerPC</td><td>codegen-powerpc@discourse.llvm.org</td></tr>
59<tr><td>Code Generation - RISCV</td><td>codegen-riscv@discourse.llvm.org</td></tr>
60<tr><td>Code Generation - WebAssembly</td><td>codegen-webassembly@discourse.llvm.org</td></tr>
61<tr><td>Code Generation - X86</td><td>codegen-x86@discourse.llvm.org</td></tr>
62<tr><td>Clang Frontend</td><td>clang@discourse.llvm.org</td></tr>
63<tr><td>Clang Frontend - Using Clang</td><td>clang-users@discourse.llvm.org</td></tr>
64<tr><td>Clang Frontend - clangd</td><td>clangd@discourse.llvm.org</td></tr>
65<tr><td>Clang Frontend - Building Clang</td><td>clang-build@discourse.llvm.org</td></tr>
66<tr><td>Clang Frontend - Static Analyzer</td><td>clang-staticanalyzer@discourse.llvm.org</td></tr>
67<tr><td>Runtimes</td><td>runtimes@discourse.llvm.org</td></tr>
68<tr><td>Runtimes - C++</td><td>runtimes-cxx@discourse.llvm.org</td></tr>
69<tr><td>Runtimes - Sanitizers</td><td>runtimes-sanitizers@discourse.llvm.org</td></tr>
70<tr><td>Runtimes - C</td><td>runtimes-c@discourse.llvm.org</td></tr>
71<tr><td>Runtimes - OpenMP</td><td>runtimes-openmp@discourse.llvm.org</td></tr>
72<tr><td>Runtimes - OpenCL</td><td>runtimes-opencl@discourse.llvm.org</td></tr>
73<tr><td>MLIR</td><td>mlir@discourse.llvm.org</td></tr>
74<tr><td>MLIR - Announce</td><td>mlir-announce@discourse.llvm.org</td></tr>
75<tr><td>MLIR - Newsletter</td><td>mlir-news@discourse.llvm.org</td></tr>
76<tr><td>MLIR - TCP-WG</td><td>mlir-tcpwg@discourse.llvm.org</td></tr>
77<tr><td>Subprojects</td><td>subprojects@discourse.llvm.org</td></tr>
78<tr><td>Subprojects - Polly</td><td>polly@discourse.llvm.org</td></tr>
79<tr><td>Subprojects - LLDB</td><td>lldb@discourse.llvm.org</td></tr>
80<tr><td>Subprojects - LLD</td><td>lld@discourse.llvm.org</td></tr>
81<tr><td>Subprojects - Flang</td><td> flang@discourse.llvm.org</td></tr>
82<tr><td>Subprojects - Bolt</td><td>bolt@discourse.llvm.org</td></tr>
83<tr><td>Project Infrastructure</td><td>infra@discourse.llvm.org</td></tr>
84<tr><td>Project Infrastructure - Release Testers</td><td>infra-release-testers@discourse.llvm.org</td></tr>
85<tr><td>Project Infrastructure - Website</td><td>infra-website@discourse.llvm.org</td></tr>
86<tr><td>Project Infrastructure - Documentation</td><td> infra-docs@discourse.llvm.org</td></tr>
87<tr><td>Project Infrastructure - GitHub</td><td>infra-github@discourse.llvm.org</td></tr>
88<tr><td>Project Infrastructure - Code Review</td><td>infra-codereview@discourse.llvm.org</td></tr>
89<tr><td>Project Infrastructure - Discord</td><td>infra-discord@discourse.llvm.org</td></tr>
90<tr><td>Project Infrastructure - Mailing Lists and Forums</td><td>infra-mailinglists@discourse.llvm.org</td></tr>
91<tr><td>Project Infrastructure - IRC</td><td> infra-irc@discourse.llvm.org</td></tr>
92<tr><td>Project Infrastructure - Infrastructure Working Group</td><td>infra-iwg@discourse.llvm.org</td></tr>
93<tr><td>Community</td><td>community@discourse.llvm.org</td></tr>
94<tr><td>Community - Women in Compilers and Tools</td><td>wict@discourse.llvm.org</td></tr>
95<tr><td>Community - Job Postings</td><td>community-jobs@discourse.llvm.org</td></tr>
96<tr><td>Community - US LLVM Developers' Meeting</td><td>devmtg-US@discourse.llvm.org</td></tr>
97<tr><td>Community - EuroLLVM</td><td>devmtg-euro@discourse.llvm.org</td></tr>
98<tr><td>Community - GSOC</td><td>gsoc@discourse.llvm.org</td></tr>
99<tr><td>Community - Community.o</td><td>community-dot-o@discourse.llvm.org</td></tr>
100<tr><td>Community - LLVM Foundation</td><td>foundation@discourse.llvm.org</td></tr>
101<tr><td>Community - Newsletters</td><td>newsletters@discourse.llvm.org</td></tr>
102<tr><td>Incubator</td><td>incubator@discourse.llvm.org</td></tr>
103<tr><td>Incubator - CIRCT</td><td>circt@discourse.llvm.org</td></tr>
104<tr><td>Incubator - Torch-MLIR</td><td>torch-mlir@discourse.llvm.org</td></tr>
105<tr><td>Incubator - Enzyme</td><td>enzyme@discourse.llvm.org</td></tr>
106<tr><td>Feedback</td><td>feedback@discourse.llvm.org</td></tr>
107</table>
108
109## Mapping of mailing lists to categories
110
111This table explains the mapping from mailing lists to categories in Discourse.
112The email addresses of these categories will remain the same, after the
113migration.  Obsolete lists will become read-only as part of the Discourse
114migration.
115
116
117<table border=1>
118<tr><th>Mailing lists</th><th>Category in Discourse</th></tr>
119
120<tr><td>All-commits</td><td>no migration at the moment</td></tr>
121<tr><td>Bugs-admin</td><td>no migration at the moment</td></tr>
122<tr><td>cfe-commits</td><td>no migration at the moment</td></tr>
123<tr><td>cfe-dev</td><td>Clang Frontend</td></tr>
124<tr><td>cfe-users</td><td>Clang Frontend/Using Clang</td></tr>
125<tr><td>clangd-dev</td><td>Clang Frontend/clangd</td></tr>
126<tr><td>devmtg-organizers</td><td>Obsolete</td></tr>
127<tr><td>Docs</td><td>Obsolete</td></tr>
128<tr><td>eurollvm-organizers</td><td>Obsolete</td></tr>
129<tr><td>flang-commits</td><td>no migration at the moment</td></tr>
130<tr><td>flang-dev</td><td>Subprojects/Flang Fortran Frontend</td></tr>
131<tr><td>gsoc</td><td>Obsolete</td></tr>
132<tr><td>libc-commits</td><td>no migration at the moment</td></tr>
133<tr><td>libc-dev</td><td>Runtimes/C</td></tr>
134<tr><td>Libclc-dev</td><td>Runtimes/OpenCL</td></tr>
135<tr><td>libcxx-bugs</td><td>no migration at the moment</td></tr>
136<tr><td>libcxx-commits</td><td>no migration at the moment</td></tr>
137<tr><td>libcxx-dev</td><td>Runtimes/C++</td></tr>
138<tr><td>lldb-commits</td><td>no migration at the moment</td></tr>
139<tr><td>lldb-dev</td><td>Subprojects/lldb</td></tr>
140<tr><td>llvm-admin</td><td>no migration at the moment</td></tr>
141<tr><td>llvm-announce</td><td>Announce</td></tr>
142<tr><td>llvm-branch-commits</td><td>no migration at the moment</td></tr>
143<tr><td>llvm-bugs</td><td>no migration at the moment</td></tr>
144<tr><td>llvm-commits</td><td>no migration at the moment</td></tr>
145<tr><td>llvm-dev</td><td>Project Infrastructure/LLVM Dev List Archives</td></tr>
146<tr><td>llvm-devmeeting</td><td>Community/US Developer Meeting</td></tr>
147<tr><td>llvm-foundation</td><td>Community/LLVM Foundation</td></tr>
148<tr><td>Mlir-commits</td><td>no migration at the moment</td></tr>
149<tr><td>Openmp-commits</td><td>no migration at the moment</td></tr>
150<tr><td>Openmp-dev</td><td>Runtimes/OpenMP</td></tr>
151<tr><td>Parallel_libs-commits</td><td>no migration at the moment</td></tr>
152<tr><td>Parallel_libs-dev</td><td>Runtimes/C++</td></tr>
153<tr><td>Release-testers</td><td>Project Infrastructure/Release Testers</td></tr>
154<tr><td>Test-list</td><td>Obsolete</td></tr>
155<tr><td>vmkit-commits</td><td>Obsolete</td></tr>
156<tr><td>WiCT</td><td>Community/Women in Compilers and Tools</td></tr>
157<tr><td>www-scripts</td><td>Obsolete</td></tr>
158</table>
159
160
161## FAQ
162
163### I don't want to use a web UI
164
165You can do most of the communication with your email client (see section on
166Setting up email interactions above). You only need to set up your account once
167and then configure which categories you want to subscribe to.
168
169### How do I send a private message?
170
171On the mailing list you have the opportunity to reply only to the sender of
172the email, not to the entire list. That is not supported when replying via
173email on Discourse. However you can send someone a private message via the
174Web UI: Click on the user's name above a post and then on `Message`.
175
176Also Discourse does not expose users' email addresses , so your private
177replies have to go through their platform (unless you happen to know the
178email address of the user.)
179
180### How can my script/tool send automatic messages?**
181
182In case you want to [create a new
183post/topic](https://docs.discourse.org/#tag/Posts/paths/~1posts.json/post)
184automatically from a script or tool, you can use the
185[Discourse API](https://docs.discourse.org/).
186
187### Who are the admins for Discourse?
188
189See https://llvm.discourse.group/about
190
191### What is the reason for the migration?
192
193See
194[this email](https://lists.llvm.org/pipermail/llvm-dev/2021-June/150823.html)
195
196### How do I set up a private mailing list?
197
198If needed categories can have individual [security
199settings](https://meta.discourse.org/t/how-to-use-category-security-settings-to-create-private-categories/87678)
200to limit visibility and write permissions. Contact the
201[admins](https://llvm.discourse.group/about) if you need such a category.
202
203### What will happen to our email archives?
204
205The Mailman archives will remain on the web server for now.
206
207### What are advantages of Discourse over the current mailing lists?
208
209* Users can post to any category, also without being subscribed.
210* Full text search on the Web UI.
211* Sending/replying via the Web UI (email is still possible).
212* View entire thread on one page.
213* Categories are a more light-weight option to structure the discussions than
214  creating new mailing lists.
215* Single sign on with GitHub.
216* User email addresses are kept private.
217
218### I have another question not covered here. What should I do?
219
220Please contact iwg@llvm.org or raise a
221[ticket on GitHub](https://github.com/llvm/llvm-iwg/issues).
222