xref: /llvm-project/llvm/docs/DiscourseMigrationGuide.md (revision 1b12e92c80936b5c7f3898e9f793fa9c5875d46e)
1645c845dSTanya Lattner# Discourse Migration Guide
2645c845dSTanya Lattner
3*1b12e92cSTanya Lattner## 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.
4acef496bSTanya Lattner
5645c845dSTanya LattnerThis document is intended to help LLVM users to migrate from the mailing lists to
6645c845dSTanya LattnerDiscourse. Discourse has two basic ways for interaction: Via the [web
7645c845dSTanya LattnerUI](https://llvm.discourse.group/) and via emails.
8645c845dSTanya Lattner
9645c845dSTanya Lattner## Setting up your account
10645c845dSTanya Lattner
11645c845dSTanya LattnerThe easiest way is to create an account using your GitHub account:
12645c845dSTanya Lattner
13645c845dSTanya Lattner1. Navigate to https://llvm.discourse.group/
14645c845dSTanya Lattner1. Click on "Sign Up" in the top right corner.
15645c845dSTanya Lattner1. Choose "With GitHub" on the right side and log in with your GitHub account.
16645c845dSTanya Lattner
17645c845dSTanya Lattner## Structure of Discourse
18645c845dSTanya Lattner
19645c845dSTanya LattnerDiscourse's structure is similar to a set of mailing lists, however different
20645c845dSTanya Lattnerterms are used there. To help with the transition, here's a translation table
21645c845dSTanya Lattnerfor the terms:
22645c845dSTanya Lattner
23645c845dSTanya Lattner<table border=1>
24645c845dSTanya Lattner<tr><th>Mailing list</th><th>Discourse</th></tr>
25645c845dSTanya Lattner<tr><td><i>Mailing list</i>, consists of threads</td><td><i>category</i>, consists of topics</td></tr>
26645c845dSTanya Lattner<tr><td><i>thread</i>, consists of emails</td><td><i>topic</i>, consists of posts</td></tr>
27645c845dSTanya Lattner<tr><td>email</td><td>post</td></tr>
28645c845dSTanya Lattner</table>
29645c845dSTanya Lattner
30645c845dSTanya Lattner## Setting up email interactions
31645c845dSTanya Lattner
32645c845dSTanya LattnerSome folks want to interact with Discourse purely via their email program. Here
33645c845dSTanya Lattnerare the typical use cases:
34645c845dSTanya Lattner
35645c845dSTanya Lattner* You can [subscribe to a category or topic](https://discourse.mozilla.org/t/how-do-i-subscribe-to-categories-and-topics/16024)
36645c845dSTanya Lattner* You can reply to a post, including quoting other peoples texts
37645c845dSTanya Lattner  ([tested](https://llvm.discourse.group/t/email-interaction-with-discourse/3306/4) on GMail).
38645c845dSTanya Lattner* [Quoting previous topics in an reply](https://meta.discourse.org/t/single-quote-block-dropped-in-email-reply/144802)
39645c845dSTanya Lattner* You can filter incoming emails in your email client by category using the
40645c845dSTanya Lattner  `List-ID` email header field.
41586759ceSTanya Lattner* 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.
42586759ceSTanya Lattner
43586759ceSTanya Lattner## Mapping of email addresses to Discourse categories
44586759ceSTanya Lattner
45586759ceSTanya LattnerUse 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.
46586759ceSTanya Lattner
47586759ceSTanya Lattner<table border=1>
48586759ceSTanya Lattner<tr><th>Discourse Category</th><th>Email Address</th></tr>
49586759ceSTanya Lattner<tr><td>Beginner</td><td>beginners@discourse.llvm.org</td></tr>
50586759ceSTanya Lattner<tr><td>LLVM Project</td><td>llvmproject@discourse.llvm.org</td></tr>
51586759ceSTanya Lattner<tr><td>IR & Optimizations</td><td>IR.Optimizations@discourse.llvm.org</td></tr>
52586759ceSTanya Lattner<tr><td>IR & Optimizations - Loop Optimizations</td><td>IR.Optimizations-Loops@discourse.llvm.org</td></tr>
53586759ceSTanya Lattner<tr><td>Code Generation</td><td>codegen@discourse.llvm.org</td></tr>
54586759ceSTanya Lattner<tr><td>Code Generation - AMDGPU</td><td>codegen-amdgpu@discourse.llvm.org</td></tr>
55586759ceSTanya Lattner<tr><td>Code Generation - Common Infrastructure</td><td>codegen-common@discourse.llvm.org</td></tr>
56586759ceSTanya Lattner<tr><td>Code Generation - AArch64</td><td>codegen-aarch64@discourse.llvm.org</td></tr>
57586759ceSTanya Lattner<tr><td>Code Generation - Arm</td><td>codegen-arm@discourse.llvm.org</td></tr>
58586759ceSTanya Lattner<tr><td>Code Generation - PowerPC</td><td>codegen-powerpc@discourse.llvm.org</td></tr>
59586759ceSTanya Lattner<tr><td>Code Generation - RISCV</td><td>codegen-riscv@discourse.llvm.org</td></tr>
60586759ceSTanya Lattner<tr><td>Code Generation - WebAssembly</td><td>codegen-webassembly@discourse.llvm.org</td></tr>
61586759ceSTanya Lattner<tr><td>Code Generation - X86</td><td>codegen-x86@discourse.llvm.org</td></tr>
62586759ceSTanya Lattner<tr><td>Clang Frontend</td><td>clang@discourse.llvm.org</td></tr>
63586759ceSTanya Lattner<tr><td>Clang Frontend - Using Clang</td><td>clang-users@discourse.llvm.org</td></tr>
64586759ceSTanya Lattner<tr><td>Clang Frontend - clangd</td><td>clangd@discourse.llvm.org</td></tr>
65586759ceSTanya Lattner<tr><td>Clang Frontend - Building Clang</td><td>clang-build@discourse.llvm.org</td></tr>
66586759ceSTanya Lattner<tr><td>Clang Frontend - Static Analyzer</td><td>clang-staticanalyzer@discourse.llvm.org</td></tr>
67586759ceSTanya Lattner<tr><td>Runtimes</td><td>runtimes@discourse.llvm.org</td></tr>
68586759ceSTanya Lattner<tr><td>Runtimes - C++</td><td>runtimes-cxx@discourse.llvm.org</td></tr>
69586759ceSTanya Lattner<tr><td>Runtimes - Sanitizers</td><td>runtimes-sanitizers@discourse.llvm.org</td></tr>
70586759ceSTanya Lattner<tr><td>Runtimes - C</td><td>runtimes-c@discourse.llvm.org</td></tr>
71586759ceSTanya Lattner<tr><td>Runtimes - OpenMP</td><td>runtimes-openmp@discourse.llvm.org</td></tr>
72586759ceSTanya Lattner<tr><td>Runtimes - OpenCL</td><td>runtimes-opencl@discourse.llvm.org</td></tr>
73586759ceSTanya Lattner<tr><td>MLIR</td><td>mlir@discourse.llvm.org</td></tr>
74586759ceSTanya Lattner<tr><td>MLIR - Announce</td><td>mlir-announce@discourse.llvm.org</td></tr>
75586759ceSTanya Lattner<tr><td>MLIR - Newsletter</td><td>mlir-news@discourse.llvm.org</td></tr>
76586759ceSTanya Lattner<tr><td>MLIR - TCP-WG</td><td>mlir-tcpwg@discourse.llvm.org</td></tr>
77586759ceSTanya Lattner<tr><td>Subprojects</td><td>subprojects@discourse.llvm.org</td></tr>
78586759ceSTanya Lattner<tr><td>Subprojects - Polly</td><td>polly@discourse.llvm.org</td></tr>
79586759ceSTanya Lattner<tr><td>Subprojects - LLDB</td><td>lldb@discourse.llvm.org</td></tr>
80586759ceSTanya Lattner<tr><td>Subprojects - LLD</td><td>lld@discourse.llvm.org</td></tr>
81586759ceSTanya Lattner<tr><td>Subprojects - Flang</td><td> flang@discourse.llvm.org</td></tr>
82586759ceSTanya Lattner<tr><td>Subprojects - Bolt</td><td>bolt@discourse.llvm.org</td></tr>
83586759ceSTanya Lattner<tr><td>Project Infrastructure</td><td>infra@discourse.llvm.org</td></tr>
84586759ceSTanya Lattner<tr><td>Project Infrastructure - Release Testers</td><td>infra-release-testers@discourse.llvm.org</td></tr>
85586759ceSTanya Lattner<tr><td>Project Infrastructure - Website</td><td>infra-website@discourse.llvm.org</td></tr>
86586759ceSTanya Lattner<tr><td>Project Infrastructure - Documentation</td><td> infra-docs@discourse.llvm.org</td></tr>
87586759ceSTanya Lattner<tr><td>Project Infrastructure - GitHub</td><td>infra-github@discourse.llvm.org</td></tr>
88586759ceSTanya Lattner<tr><td>Project Infrastructure - Code Review</td><td>infra-codereview@discourse.llvm.org</td></tr>
89586759ceSTanya Lattner<tr><td>Project Infrastructure - Discord</td><td>infra-discord@discourse.llvm.org</td></tr>
90586759ceSTanya Lattner<tr><td>Project Infrastructure - Mailing Lists and Forums</td><td>infra-mailinglists@discourse.llvm.org</td></tr>
91586759ceSTanya Lattner<tr><td>Project Infrastructure - IRC</td><td> infra-irc@discourse.llvm.org</td></tr>
92586759ceSTanya Lattner<tr><td>Project Infrastructure - Infrastructure Working Group</td><td>infra-iwg@discourse.llvm.org</td></tr>
93586759ceSTanya Lattner<tr><td>Community</td><td>community@discourse.llvm.org</td></tr>
94586759ceSTanya Lattner<tr><td>Community - Women in Compilers and Tools</td><td>wict@discourse.llvm.org</td></tr>
95586759ceSTanya Lattner<tr><td>Community - Job Postings</td><td>community-jobs@discourse.llvm.org</td></tr>
96586759ceSTanya Lattner<tr><td>Community - US LLVM Developers' Meeting</td><td>devmtg-US@discourse.llvm.org</td></tr>
97586759ceSTanya Lattner<tr><td>Community - EuroLLVM</td><td>devmtg-euro@discourse.llvm.org</td></tr>
98586759ceSTanya Lattner<tr><td>Community - GSOC</td><td>gsoc@discourse.llvm.org</td></tr>
99586759ceSTanya Lattner<tr><td>Community - Community.o</td><td>community-dot-o@discourse.llvm.org</td></tr>
100586759ceSTanya Lattner<tr><td>Community - LLVM Foundation</td><td>foundation@discourse.llvm.org</td></tr>
101586759ceSTanya Lattner<tr><td>Community - Newsletters</td><td>newsletters@discourse.llvm.org</td></tr>
102586759ceSTanya Lattner<tr><td>Incubator</td><td>incubator@discourse.llvm.org</td></tr>
103586759ceSTanya Lattner<tr><td>Incubator - CIRCT</td><td>circt@discourse.llvm.org</td></tr>
104586759ceSTanya Lattner<tr><td>Incubator - Torch-MLIR</td><td>torch-mlir@discourse.llvm.org</td></tr>
105586759ceSTanya Lattner<tr><td>Incubator - Enzyme</td><td>enzyme@discourse.llvm.org</td></tr>
106586759ceSTanya Lattner<tr><td>Feedback</td><td>feedback@discourse.llvm.org</td></tr>
107586759ceSTanya Lattner</table>
108645c845dSTanya Lattner
109645c845dSTanya Lattner## Mapping of mailing lists to categories
110645c845dSTanya Lattner
111645c845dSTanya LattnerThis table explains the mapping from mailing lists to categories in Discourse.
112645c845dSTanya LattnerThe email addresses of these categories will remain the same, after the
113645c845dSTanya Lattnermigration.  Obsolete lists will become read-only as part of the Discourse
114645c845dSTanya Lattnermigration.
115645c845dSTanya Lattner
116645c845dSTanya Lattner
117645c845dSTanya Lattner<table border=1>
118645c845dSTanya Lattner<tr><th>Mailing lists</th><th>Category in Discourse</th></tr>
119645c845dSTanya Lattner
120645c845dSTanya Lattner<tr><td>All-commits</td><td>no migration at the moment</td></tr>
121645c845dSTanya Lattner<tr><td>Bugs-admin</td><td>no migration at the moment</td></tr>
122645c845dSTanya Lattner<tr><td>cfe-commits</td><td>no migration at the moment</td></tr>
123645c845dSTanya Lattner<tr><td>cfe-dev</td><td>Clang Frontend</td></tr>
124645c845dSTanya Lattner<tr><td>cfe-users</td><td>Clang Frontend/Using Clang</td></tr>
125645c845dSTanya Lattner<tr><td>clangd-dev</td><td>Clang Frontend/clangd</td></tr>
126645c845dSTanya Lattner<tr><td>devmtg-organizers</td><td>Obsolete</td></tr>
127645c845dSTanya Lattner<tr><td>Docs</td><td>Obsolete</td></tr>
128645c845dSTanya Lattner<tr><td>eurollvm-organizers</td><td>Obsolete</td></tr>
129645c845dSTanya Lattner<tr><td>flang-commits</td><td>no migration at the moment</td></tr>
130645c845dSTanya Lattner<tr><td>flang-dev</td><td>Subprojects/Flang Fortran Frontend</td></tr>
131645c845dSTanya Lattner<tr><td>gsoc</td><td>Obsolete</td></tr>
132645c845dSTanya Lattner<tr><td>libc-commits</td><td>no migration at the moment</td></tr>
133645c845dSTanya Lattner<tr><td>libc-dev</td><td>Runtimes/C</td></tr>
134645c845dSTanya Lattner<tr><td>Libclc-dev</td><td>Runtimes/OpenCL</td></tr>
135645c845dSTanya Lattner<tr><td>libcxx-bugs</td><td>no migration at the moment</td></tr>
136645c845dSTanya Lattner<tr><td>libcxx-commits</td><td>no migration at the moment</td></tr>
137645c845dSTanya Lattner<tr><td>libcxx-dev</td><td>Runtimes/C++</td></tr>
138645c845dSTanya Lattner<tr><td>lldb-commits</td><td>no migration at the moment</td></tr>
139645c845dSTanya Lattner<tr><td>lldb-dev</td><td>Subprojects/lldb</td></tr>
140645c845dSTanya Lattner<tr><td>llvm-admin</td><td>no migration at the moment</td></tr>
141645c845dSTanya Lattner<tr><td>llvm-announce</td><td>Announce</td></tr>
142645c845dSTanya Lattner<tr><td>llvm-branch-commits</td><td>no migration at the moment</td></tr>
143645c845dSTanya Lattner<tr><td>llvm-bugs</td><td>no migration at the moment</td></tr>
144645c845dSTanya Lattner<tr><td>llvm-commits</td><td>no migration at the moment</td></tr>
145645c845dSTanya Lattner<tr><td>llvm-dev</td><td>Project Infrastructure/LLVM Dev List Archives</td></tr>
146645c845dSTanya Lattner<tr><td>llvm-devmeeting</td><td>Community/US Developer Meeting</td></tr>
147645c845dSTanya Lattner<tr><td>llvm-foundation</td><td>Community/LLVM Foundation</td></tr>
148645c845dSTanya Lattner<tr><td>Mlir-commits</td><td>no migration at the moment</td></tr>
149645c845dSTanya Lattner<tr><td>Openmp-commits</td><td>no migration at the moment</td></tr>
150645c845dSTanya Lattner<tr><td>Openmp-dev</td><td>Runtimes/OpenMP</td></tr>
151645c845dSTanya Lattner<tr><td>Parallel_libs-commits</td><td>no migration at the moment</td></tr>
152645c845dSTanya Lattner<tr><td>Parallel_libs-dev</td><td>Runtimes/C++</td></tr>
153645c845dSTanya Lattner<tr><td>Release-testers</td><td>Project Infrastructure/Release Testers</td></tr>
154645c845dSTanya Lattner<tr><td>Test-list</td><td>Obsolete</td></tr>
155645c845dSTanya Lattner<tr><td>vmkit-commits</td><td>Obsolete</td></tr>
156645c845dSTanya Lattner<tr><td>WiCT</td><td>Community/Women in Compilers and Tools</td></tr>
157645c845dSTanya Lattner<tr><td>www-scripts</td><td>Obsolete</td></tr>
158645c845dSTanya Lattner</table>
159645c845dSTanya Lattner
160645c845dSTanya Lattner
161645c845dSTanya Lattner## FAQ
162645c845dSTanya Lattner
163645c845dSTanya Lattner### I don't want to use a web UI
164645c845dSTanya Lattner
165645c845dSTanya LattnerYou can do most of the communication with your email client (see section on
166645c845dSTanya LattnerSetting up email interactions above). You only need to set up your account once
167645c845dSTanya Lattnerand then configure which categories you want to subscribe to.
168645c845dSTanya Lattner
169645c845dSTanya Lattner### How do I send a private message?
170645c845dSTanya Lattner
171645c845dSTanya LattnerOn the mailing list you have the opportunity to reply only to the sender of
172645c845dSTanya Lattnerthe email, not to the entire list. That is not supported when replying via
173645c845dSTanya Lattneremail on Discourse. However you can send someone a private message via the
174645c845dSTanya LattnerWeb UI: Click on the user's name above a post and then on `Message`.
175645c845dSTanya Lattner
176645c845dSTanya LattnerAlso Discourse does not expose users' email addresses , so your private
177645c845dSTanya Lattnerreplies have to go through their platform (unless you happen to know the
178645c845dSTanya Lattneremail address of the user.)
179645c845dSTanya Lattner
180645c845dSTanya Lattner### How can my script/tool send automatic messages?**
181645c845dSTanya Lattner
182645c845dSTanya LattnerIn case you want to [create a new
183645c845dSTanya Lattnerpost/topic](https://docs.discourse.org/#tag/Posts/paths/~1posts.json/post)
184645c845dSTanya Lattnerautomatically from a script or tool, you can use the
185645c845dSTanya Lattner[Discourse API](https://docs.discourse.org/).
186645c845dSTanya Lattner
187645c845dSTanya Lattner### Who are the admins for Discourse?
188645c845dSTanya Lattner
189645c845dSTanya LattnerSee https://llvm.discourse.group/about
190645c845dSTanya Lattner
191645c845dSTanya Lattner### What is the reason for the migration?
192645c845dSTanya Lattner
193645c845dSTanya LattnerSee
194645c845dSTanya Lattner[this email](https://lists.llvm.org/pipermail/llvm-dev/2021-June/150823.html)
195645c845dSTanya Lattner
196645c845dSTanya Lattner### How do I set up a private mailing list?
197645c845dSTanya Lattner
198645c845dSTanya LattnerIf needed categories can have individual [security
199645c845dSTanya Lattnersettings](https://meta.discourse.org/t/how-to-use-category-security-settings-to-create-private-categories/87678)
200645c845dSTanya Lattnerto limit visibility and write permissions. Contact the
201645c845dSTanya Lattner[admins](https://llvm.discourse.group/about) if you need such a category.
202645c845dSTanya Lattner
203645c845dSTanya Lattner### What will happen to our email archives?
204645c845dSTanya Lattner
205645c845dSTanya LattnerThe Mailman archives will remain on the web server for now.
206645c845dSTanya Lattner
207645c845dSTanya Lattner### What are advantages of Discourse over the current mailing lists?
208645c845dSTanya Lattner
209645c845dSTanya Lattner* Users can post to any category, also without being subscribed.
210645c845dSTanya Lattner* Full text search on the Web UI.
211645c845dSTanya Lattner* Sending/replying via the Web UI (email is still possible).
212645c845dSTanya Lattner* View entire thread on one page.
213645c845dSTanya Lattner* Categories are a more light-weight option to structure the discussions than
214645c845dSTanya Lattner  creating new mailing lists.
215645c845dSTanya Lattner* Single sign on with GitHub.
216645c845dSTanya Lattner* User email addresses are kept private.
217645c845dSTanya Lattner
218645c845dSTanya Lattner### I have another question not covered here. What should I do?
219645c845dSTanya Lattner
220645c845dSTanya LattnerPlease contact iwg@llvm.org or raise a
221645c845dSTanya Lattner[ticket on GitHub](https://github.com/llvm/llvm-iwg/issues).
222