1*645c845dSTanya Lattner# Discourse Migration Guide
2*645c845dSTanya Lattner
3*645c845dSTanya LattnerThis document is intended to help LLVM users to migrate from the mailing lists to
4*645c845dSTanya LattnerDiscourse. Discourse has two basic ways for interaction: Via the [web
5*645c845dSTanya LattnerUI](https://llvm.discourse.group/) and via emails.
6*645c845dSTanya Lattner
7*645c845dSTanya Lattner## Setting up your account
8*645c845dSTanya Lattner
9*645c845dSTanya LattnerThe easiest way is to create an account using your GitHub account:
10*645c845dSTanya Lattner
11*645c845dSTanya Lattner1. Navigate to https://llvm.discourse.group/
12*645c845dSTanya Lattner1. Click on "Sign Up" in the top right corner.
13*645c845dSTanya Lattner1. Choose "With GitHub" on the right side and log in with your GitHub account.
14*645c845dSTanya Lattner
15*645c845dSTanya Lattner## Structure of Discourse
16*645c845dSTanya Lattner
17*645c845dSTanya LattnerDiscourse's structure is similar to a set of mailing lists, however different
18*645c845dSTanya Lattnerterms are used there. To help with the transition, here's a translation table
19*645c845dSTanya Lattnerfor the terms:
20*645c845dSTanya Lattner
21*645c845dSTanya Lattner<table border=1>
22*645c845dSTanya Lattner<tr><th>Mailing list</th><th>Discourse</th></tr>
23*645c845dSTanya Lattner<tr><td><i>Mailing list</i>, consists of threads</td><td><i>category</i>, consists of topics</td></tr>
24*645c845dSTanya Lattner<tr><td><i>thread</i>, consists of emails</td><td><i>topic</i>, consists of posts</td></tr>
25*645c845dSTanya Lattner<tr><td>email</td><td>post</td></tr>
26*645c845dSTanya Lattner</table>
27*645c845dSTanya Lattner
28*645c845dSTanya Lattner## Setting up email interactions
29*645c845dSTanya Lattner
30*645c845dSTanya LattnerSome folks want to interact with Discourse purely via their email program. Here
31*645c845dSTanya Lattnerare the typical use cases:
32*645c845dSTanya Lattner
33*645c845dSTanya Lattner* You can [subscribe to a category or topic](https://discourse.mozilla.org/t/how-do-i-subscribe-to-categories-and-topics/16024)
34*645c845dSTanya Lattner* You can reply to a post, including quoting other peoples texts
35*645c845dSTanya Lattner  ([tested](https://llvm.discourse.group/t/email-interaction-with-discourse/3306/4) on GMail).
36*645c845dSTanya Lattner* [Quoting previous topics in an reply](https://meta.discourse.org/t/single-quote-block-dropped-in-email-reply/144802)
37*645c845dSTanya Lattner* **TODO:** Creating new topics via email is
38*645c845dSTanya Lattner  [supported](https://meta.discourse.org/t/start-a-new-topic-via-email/62977)
39*645c845dSTanya Lattner  but not configured at the moment. We would need to set up an email address
40*645c845dSTanya Lattner  per category and give Discourse POP3 access to that email account. This sounds
41*645c845dSTanya Lattner  like a solvable issue.
42*645c845dSTanya Lattner* You can filter incoming emails in your email client by category using the
43*645c845dSTanya Lattner  `List-ID` email header field.
44*645c845dSTanya Lattner
45*645c845dSTanya Lattner## Mapping of mailing lists to categories
46*645c845dSTanya Lattner
47*645c845dSTanya LattnerThis table explains the mapping from mailing lists to categories in Discourse.
48*645c845dSTanya LattnerThe email addresses of these categories will remain the same, after the
49*645c845dSTanya Lattnermigration.  Obsolete lists will become read-only as part of the Discourse
50*645c845dSTanya Lattnermigration.
51*645c845dSTanya Lattner
52*645c845dSTanya Lattner
53*645c845dSTanya Lattner<table border=1>
54*645c845dSTanya Lattner<tr><th>Mailing lists</th><th>Category in Discourse</th></tr>
55*645c845dSTanya Lattner
56*645c845dSTanya Lattner<tr><td>All-commits</td><td>no migration at the moment</td></tr>
57*645c845dSTanya Lattner<tr><td>Bugs-admin</td><td>no migration at the moment</td></tr>
58*645c845dSTanya Lattner<tr><td>cfe-commits</td><td>no migration at the moment</td></tr>
59*645c845dSTanya Lattner<tr><td>cfe-dev</td><td>Clang Frontend</td></tr>
60*645c845dSTanya Lattner<tr><td>cfe-users</td><td>Clang Frontend/Using Clang</td></tr>
61*645c845dSTanya Lattner<tr><td>clangd-dev</td><td>Clang Frontend/clangd</td></tr>
62*645c845dSTanya Lattner<tr><td>devmtg-organizers</td><td>Obsolete</td></tr>
63*645c845dSTanya Lattner<tr><td>Docs</td><td>Obsolete</td></tr>
64*645c845dSTanya Lattner<tr><td>eurollvm-organizers</td><td>Obsolete</td></tr>
65*645c845dSTanya Lattner<tr><td>flang-commits</td><td>no migration at the moment</td></tr>
66*645c845dSTanya Lattner<tr><td>flang-dev</td><td>Subprojects/Flang Fortran Frontend</td></tr>
67*645c845dSTanya Lattner<tr><td>gsoc</td><td>Obsolete</td></tr>
68*645c845dSTanya Lattner<tr><td>libc-commits</td><td>no migration at the moment</td></tr>
69*645c845dSTanya Lattner<tr><td>libc-dev</td><td>Runtimes/C</td></tr>
70*645c845dSTanya Lattner<tr><td>Libclc-dev</td><td>Runtimes/OpenCL</td></tr>
71*645c845dSTanya Lattner<tr><td>libcxx-bugs</td><td>no migration at the moment</td></tr>
72*645c845dSTanya Lattner<tr><td>libcxx-commits</td><td>no migration at the moment</td></tr>
73*645c845dSTanya Lattner<tr><td>libcxx-dev</td><td>Runtimes/C++</td></tr>
74*645c845dSTanya Lattner<tr><td>lldb-commits</td><td>no migration at the moment</td></tr>
75*645c845dSTanya Lattner<tr><td>lldb-dev</td><td>Subprojects/lldb</td></tr>
76*645c845dSTanya Lattner<tr><td>llvm-admin</td><td>no migration at the moment</td></tr>
77*645c845dSTanya Lattner<tr><td>llvm-announce</td><td>Announce</td></tr>
78*645c845dSTanya Lattner<tr><td>llvm-branch-commits</td><td>no migration at the moment</td></tr>
79*645c845dSTanya Lattner<tr><td>llvm-bugs</td><td>no migration at the moment</td></tr>
80*645c845dSTanya Lattner<tr><td>llvm-commits</td><td>no migration at the moment</td></tr>
81*645c845dSTanya Lattner<tr><td>llvm-dev</td><td>Project Infrastructure/LLVM Dev List Archives</td></tr>
82*645c845dSTanya Lattner<tr><td>llvm-devmeeting</td><td>Community/US Developer Meeting</td></tr>
83*645c845dSTanya Lattner<tr><td>llvm-foundation</td><td>Community/LLVM Foundation</td></tr>
84*645c845dSTanya Lattner<tr><td>Mlir-commits</td><td>no migration at the moment</td></tr>
85*645c845dSTanya Lattner<tr><td>Openmp-commits</td><td>no migration at the moment</td></tr>
86*645c845dSTanya Lattner<tr><td>Openmp-dev</td><td>Runtimes/OpenMP</td></tr>
87*645c845dSTanya Lattner<tr><td>Parallel_libs-commits</td><td>no migration at the moment</td></tr>
88*645c845dSTanya Lattner<tr><td>Parallel_libs-dev</td><td>Runtimes/C++</td></tr>
89*645c845dSTanya Lattner<tr><td>Release-testers</td><td>Project Infrastructure/Release Testers</td></tr>
90*645c845dSTanya Lattner<tr><td>Test-list</td><td>Obsolete</td></tr>
91*645c845dSTanya Lattner<tr><td>vmkit-commits</td><td>Obsolete</td></tr>
92*645c845dSTanya Lattner<tr><td>WiCT</td><td>Community/Women in Compilers and Tools</td></tr>
93*645c845dSTanya Lattner<tr><td>www-scripts</td><td>Obsolete</td></tr>
94*645c845dSTanya Lattner</table>
95*645c845dSTanya Lattner
96*645c845dSTanya Lattner
97*645c845dSTanya Lattner## FAQ
98*645c845dSTanya Lattner
99*645c845dSTanya Lattner### I don't want to use a web UI
100*645c845dSTanya Lattner
101*645c845dSTanya LattnerYou can do most of the communication with your email client (see section on
102*645c845dSTanya LattnerSetting up email interactions above). You only need to set up your account once
103*645c845dSTanya Lattnerand then configure which categories you want to subscribe to.
104*645c845dSTanya Lattner
105*645c845dSTanya Lattner### How do I send a private message?
106*645c845dSTanya Lattner
107*645c845dSTanya LattnerOn the mailing list you have the opportunity to reply only to the sender of
108*645c845dSTanya Lattnerthe email, not to the entire list. That is not supported when replying via
109*645c845dSTanya Lattneremail on Discourse. However you can send someone a private message via the
110*645c845dSTanya LattnerWeb UI: Click on the user's name above a post and then on `Message`.
111*645c845dSTanya Lattner
112*645c845dSTanya LattnerAlso Discourse does not expose users' email addresses , so your private
113*645c845dSTanya Lattnerreplies have to go through their platform (unless you happen to know the
114*645c845dSTanya Lattneremail address of the user.)
115*645c845dSTanya Lattner
116*645c845dSTanya Lattner### How can my script/tool send automatic messages?**
117*645c845dSTanya Lattner
118*645c845dSTanya LattnerIn case you want to [create a new
119*645c845dSTanya Lattnerpost/topic](https://docs.discourse.org/#tag/Posts/paths/~1posts.json/post)
120*645c845dSTanya Lattnerautomatically from a script or tool, you can use the
121*645c845dSTanya Lattner[Discourse API](https://docs.discourse.org/).
122*645c845dSTanya Lattner
123*645c845dSTanya Lattner### Who are the admins for Discourse?
124*645c845dSTanya Lattner
125*645c845dSTanya LattnerSee https://llvm.discourse.group/about
126*645c845dSTanya Lattner
127*645c845dSTanya Lattner### What is the reason for the migration?
128*645c845dSTanya Lattner
129*645c845dSTanya LattnerSee
130*645c845dSTanya Lattner[this email](https://lists.llvm.org/pipermail/llvm-dev/2021-June/150823.html)
131*645c845dSTanya Lattner
132*645c845dSTanya Lattner### How do I set up a private mailing list?
133*645c845dSTanya Lattner
134*645c845dSTanya LattnerIf needed categories can have individual [security
135*645c845dSTanya Lattnersettings](https://meta.discourse.org/t/how-to-use-category-security-settings-to-create-private-categories/87678)
136*645c845dSTanya Lattnerto limit visibility and write permissions. Contact the
137*645c845dSTanya Lattner[admins](https://llvm.discourse.group/about) if you need such a category.
138*645c845dSTanya Lattner
139*645c845dSTanya Lattner### What will happen to our email archives?
140*645c845dSTanya Lattner
141*645c845dSTanya LattnerThe Mailman archives will remain on the web server for now.
142*645c845dSTanya Lattner
143*645c845dSTanya Lattner### What are advantages of Discourse over the current mailing lists?
144*645c845dSTanya Lattner
145*645c845dSTanya Lattner* Users can post to any category, also without being subscribed.
146*645c845dSTanya Lattner* Full text search on the Web UI.
147*645c845dSTanya Lattner* Sending/replying via the Web UI (email is still possible).
148*645c845dSTanya Lattner* View entire thread on one page.
149*645c845dSTanya Lattner* Categories are a more light-weight option to structure the discussions than
150*645c845dSTanya Lattner  creating new mailing lists.
151*645c845dSTanya Lattner* Single sign on with GitHub.
152*645c845dSTanya Lattner* User email addresses are kept private.
153*645c845dSTanya Lattner
154*645c845dSTanya Lattner### I have another question not covered here. What should I do?
155*645c845dSTanya Lattner
156*645c845dSTanya LattnerPlease contact [email protected] or raise a
157*645c845dSTanya Lattner[ticket on GitHub](https://github.com/llvm/llvm-iwg/issues).
158