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