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