1Getting Involved
2================
3
4LLVM welcomes contributions of all kinds. To get started, please review the following topics:
5
6.. contents::
7   :local:
8
9.. toctree::
10   :hidden:
11
12   Contributing
13   DeveloperPolicy
14   CodeReview
15   SupportPolicy
16   SphinxQuickstartTemplate
17   Phabricator
18   HowToSubmitABug
19   BugLifeCycle
20   CodingStandards
21   GitBisecting
22
23:doc:`Contributing`
24   An overview on how to contribute to LLVM.
25
26:doc:`DeveloperPolicy`
27   The LLVM project's policy towards developers and their contributions.
28
29:doc:`CodeReview`
30   The LLVM project's code-review process.
31
32:doc:`SupportPolicy`
33   The LLVM support policy for core and non-core components.
34
35:doc:`SphinxQuickstartTemplate`
36  A template + tutorial for writing new Sphinx documentation. It is meant
37  to be read in source form.
38
39:doc:`Phabricator`
40   Describes how to use the Phabricator code review tool hosted on
41   http://reviews.llvm.org/ and its command line interface, Arcanist.
42
43:doc:`HowToSubmitABug`
44   Instructions for properly submitting information about any bugs you run into
45   in the LLVM system.
46
47:doc:`BugLifeCycle`
48   Describes how bugs are reported, triaged and closed.
49
50:doc:`CodingStandards`
51  Details the LLVM coding standards and provides useful information on writing
52  efficient C++ code.
53
54:doc:`GitBisecting`
55  Describes how to use ``git bisect`` on LLVM's repository.
56
57.. _development-process:
58
59Development Process
60-------------------
61
62Information about LLVM's development process.
63
64.. toctree::
65   :hidden:
66
67   Projects
68   HowToReleaseLLVM
69   Packaging
70   ReleaseProcess
71   HowToAddABuilder
72   ReleaseNotes
73
74:doc:`Projects`
75  How-to guide and templates for new projects that *use* the LLVM
76  infrastructure.  The templates (directory organization, Makefiles, and test
77  tree) allow the project code to be located outside (or inside) the ``llvm/``
78  tree, while using LLVM header files and libraries.
79
80:doc:`HowToReleaseLLVM`
81  This is a guide to preparing LLVM releases. Most developers can ignore it.
82
83:doc:`ReleaseProcess`
84  This is a guide to validate a new release, during the release process. Most developers can ignore it.
85
86:doc:`HowToAddABuilder`
87   Instructions for adding new builder to LLVM buildbot master.
88
89:doc:`Packaging`
90   Advice on packaging LLVM into a distribution.
91
92:doc:`Release notes for the current release <ReleaseNotes>`
93   This describes new features, known bugs, and other limitations.
94
95.. _mailing-lists:
96
97Mailing Lists
98-------------
99
100If you can't find what you need in these docs, try consulting the mailing
101lists.
102
103`Developer's List (llvm-dev)`__
104  This list is for people who want to be included in technical discussions of
105  LLVM. People post to this list when they have questions about writing code
106  for or using the LLVM tools. It is relatively low volume.
107
108  .. __: http://lists.llvm.org/mailman/listinfo/llvm-dev
109
110`Commits Archive (llvm-commits)`__
111  This list contains all commit messages that are made when LLVM developers
112  commit code changes to the repository. It also serves as a forum for
113  patch review (i.e. send patches here). It is useful for those who want to
114  stay on the bleeding edge of LLVM development. This list is very high
115  volume.
116
117  .. __: http://lists.llvm.org/pipermail/llvm-commits/
118
119`Bugs & Patches Archive (llvm-bugs)`__
120  This list gets emailed every time a bug is opened and closed. It is
121  higher volume than the LLVM-dev list.
122
123  .. __: http://lists.llvm.org/pipermail/llvm-bugs/
124
125`Test Results Archive (llvm-testresults)`__
126  A message is automatically sent to this list by every active nightly tester
127  when it completes.  As such, this list gets email several times each day,
128  making it a high volume list.
129
130  .. __: http://lists.llvm.org/pipermail/llvm-testresults/
131
132`LLVM Announcements List (llvm-announce)`__
133  This is a low volume list that provides important announcements regarding
134  LLVM.  It gets email about once a month.
135
136  .. __: http://lists.llvm.org/mailman/listinfo/llvm-announce
137
138.. _online-sync-ups:
139
140Online Sync-Ups
141---------------
142
143A number of regular calls are organized on specific topics. It should be
144expected that the range of topics will change over time. At the time of
145writing, the following sync-ups are organized:
146
147.. list-table:: LLVM regular sync-up calls
148   :widths: 25 25 25 25
149   :header-rows: 1
150
151   * - Topic
152     - Frequency
153     - Calendar link
154     - Minutes/docs link
155   * - RISC-V
156     - Every 2 weeks on Thursday
157     - `ics <https://calendar.google.com/calendar/ical/lowrisc.org_0n5pkesfjcnp0bh5hps1p0bd80%40group.calendar.google.com/public/basic.ics>`__
158       `gcal <https://calendar.google.com/calendar/b/1?cid=bG93cmlzYy5vcmdfMG41cGtlc2ZqY25wMGJoNWhwczFwMGJkODBAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ>`__
159     -
160   * - Scalable Vectors and Arm SVE
161     - Monthly, every 3rd Tuesday
162     - `ics <https://calendar.google.com/calendar/ical/bjms39pe6k6bo5egtsp7don414%40group.calendar.google.com/public/basic.ics>`__
163       `gcal <https://calendar.google.com/calendar/u/0/[email protected]>`__
164     - `Minutes/docs <https://docs.google.com/document/d/1UPH2Hzou5RgGT8XfO39OmVXKEibWPfdYLELSaHr3xzo/edit>`__
165   * - ML Guided Compiler Optimizations
166     - Monthly
167     -
168     - `Minutes/docs <https://docs.google.com/document/d/1JecbplF09l3swTjze-UVeLh4L48svJxGVy4mz_e9Rhs/edit?usp=gmail#heading=h.ts9cmcjbir1j>`__
169   * - `LLVM security group <https://llvm.org/docs/Security.html>`__
170     - Monthly, every 3rd Tuesday
171     - `ics <https://calendar.google.com/calendar/ical/eoh3m9k1l6vqbd1fkp94fv5q74%40group.calendar.google.com/public/basic.ics>`__
172       `gcal <https://calendar.google.com/calendar/embed?src=eoh3m9k1l6vqbd1fkp94fv5q74%40group.calendar.google.com>`__
173     - `Minutes/docs <https://docs.google.com/document/d/1GLCE8cl7goCaLSiM9j1eIq5IqeXt6_YTY2UEcC4jmsg/edit?usp=sharing>`__
174   * - `CIRCT <https://github.com/llvm/circt>`__
175     - Weekly, on Wednesday
176     -
177     - `Minutes/docs <https://docs.google.com/document/d/1fOSRdyZR2w75D87yU2Ma9h2-_lEPL4NxvhJGJd-s5pk/edit#heading=h.mulvhjtr8dk9>`__
178   * - `MLIR <https://mlir.llvm.org>`__ design meetings
179     - Weekly, on Thursdays
180     -
181     - `Minutes/docs <https://docs.google.com/document/d/1y_9f1AbfgcoVdJh4_aM6-BaSHvrHl8zuA5G4jv_94K8/edit#heading=h.cite1kolful9>`__
182   * - flang
183     - Multiple meeting series, `documented here <https://github.com/llvm/llvm-project/blob/main/flang/docs/GettingInvolved.md#calls>`__
184     -
185     -
186   * - OpenMP
187     - Multiple meeting series, `documented here <https://openmp.llvm.org/docs/SupportAndFAQ.html>`__
188     -
189     -
190   * - LLVM Alias Analysis
191     - Every 4 weeks on Tuesdays
192     - `ics <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201103/a3499a67/attachment-0001.ics>`__
193     - `Minutes/docs <https://docs.google.com/document/d/17U-WvX8qyKc3S36YUKr3xfF-GHunWyYowXbxEdpHscw>`__
194   * - Windows/COFF related developments
195     - Every 2 months on Thursday
196     -
197     - `Minutes/docs <https://docs.google.com/document/d/1A-W0Sas_oHWTEl_x_djZYoRtzAdTONMW_6l1BH9G6Bo/edit?usp=sharing>`__
198   * - Vector Predication
199     - Every 2 weeks on Tuesdays, 3pm UTC
200     -
201     - `Minutes/docs <https://docs.google.com/document/d/1q26ToudQjnqN5x31zk8zgq_s0lem1-BF8pQmciLa4k8/edit?usp=sharing>`__
202   * - LLVM Pointer Authentication
203     - Every month on Mondays
204     - `ics <https://calendar.google.com/calendar/ical/fr1qtmrmt2s9odufjvurkb6j70%40group.calendar.google.com/public/basic.ics>`__
205     - `Minutes/docs <https://docs.google.com/document/d/14IDnh3YY9m6Ej_PaRKOz8tTTZlObgtLl8mYeRbytAec/edit?usp=sharing>`__
206   * - MemorySSA in LLVM
207     - Monthly, first Monday of the month; 10:30amPT, 1:30pmET, 5:30pmUTC
208     - `ics <https://calendar.google.com/calendar/ical/c_1mincouiltpa24ac14of14lhi4%40group.calendar.google.com/public/basic.ics>`__
209       `gcal <https://calendar.google.com/calendar/embed?src=c_1mincouiltpa24ac14of14lhi4%40group.calendar.google.com>`__
210     - `Minutes/docs <https://docs.google.com/document/d/1-uEEZfmRdPThZlctOq9eXlmUaSSAAi8oKxhrPY_lpjk/edit#>`__
211
212IRC
213---
214
215Users and developers of the LLVM project (including subprojects such as Clang)
216can be found in #llvm on `irc.oftc.net <irc://irc.oftc.net/llvm>`_.
217
218This channel has several bots.
219
220* Buildbot reporters
221
222  * llvmbb - Bot for the main LLVM buildbot master.
223    http://lab.llvm.org:8011/console
224  * smooshlab - Apple's internal buildbot master.
225
226* robot - Bugzilla linker. %bug <number>
227
228* clang-bot - A `geordi <http://www.eelis.net/geordi/>`_ instance running
229  near-trunk clang instead of gcc.
230
231.. _meetups-social-events:
232
233Meetups and social events
234-------------------------
235
236.. toctree::
237   :hidden:
238
239   MeetupGuidelines
240
241Besides developer `meetings and conferences <https://llvm.org/devmtg/>`_,
242there are several user groups called
243`LLVM Socials <https://www.meetup.com/pro/llvm/>`_. We greatly encourage you to
244join one in your city. Or start a new one if there is none:
245
246:doc:`MeetupGuidelines`
247
248.. _community-proposals:
249
250Community wide proposals
251------------------------
252
253Proposals for massive changes in how the community behaves and how the work flow
254can be better.
255
256.. toctree::
257   :hidden:
258
259   CodeOfConduct
260   Proposals/GitHubMove
261   BugpointRedesign
262   Proposals/LLVMLibC
263   Proposals/TestSuite
264   Proposals/VariableNames
265   Proposals/VectorizationPlan
266   Proposals/VectorPredication
267
268:doc:`CodeOfConduct`
269   Proposal to adopt a code of conduct on the LLVM social spaces (lists, events,
270   IRC, etc).
271
272:doc:`Proposals/GitHubMove`
273   Proposal to move from SVN/Git to GitHub.
274
275:doc:`BugpointRedesign`
276   Design doc for a redesign of the Bugpoint tool.
277
278:doc:`Proposals/LLVMLibC`
279   Proposal to add a libc implementation under the LLVM project.
280
281:doc:`Proposals/TestSuite`
282   Proposals for additional benchmarks/programs for llvm's test-suite.
283
284:doc:`Proposals/VariableNames`
285   Proposal to change the variable names coding standard.
286
287:doc:`Proposals/VectorizationPlan`
288   Proposal to model the process and upgrade the infrastructure of LLVM's Loop Vectorizer.
289
290:doc:`Proposals/VectorPredication`
291   Proposal for predicated vector instructions in LLVM.
292