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