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   SphinxQuickstartTemplate
15   Phabricator
16   HowToSubmitABug
17   BugLifeCycle
18   CodingStandards
19
20:doc:`Contributing`
21   An overview on how to contribute to LLVM.
22
23:doc:`DeveloperPolicy`
24   The LLVM project's policy towards developers and their contributions.
25
26:doc:`SphinxQuickstartTemplate`
27  A template + tutorial for writing new Sphinx documentation. It is meant
28  to be read in source form.
29
30:doc:`Phabricator`
31   Describes how to use the Phabricator code review tool hosted on
32   http://reviews.llvm.org/ and its command line interface, Arcanist.
33
34:doc:`HowToSubmitABug`
35   Instructions for properly submitting information about any bugs you run into
36   in the LLVM system.
37
38:doc:`BugLifeCycle`
39   Describes how bugs are reported, triaged and closed.
40
41:doc:`CodingStandards`
42  Details the LLVM coding standards and provides useful information on writing
43  efficient C++ code.
44
45.. _development-process:
46
47Development Process
48-------------------
49
50Information about LLVM's development process.
51
52.. toctree::
53   :hidden:
54
55   Projects
56   LLVMBuild
57   HowToReleaseLLVM
58   Packaging
59   ReleaseProcess
60   HowToAddABuilder
61   ReleaseNotes
62
63:doc:`Projects`
64  How-to guide and templates for new projects that *use* the LLVM
65  infrastructure.  The templates (directory organization, Makefiles, and test
66  tree) allow the project code to be located outside (or inside) the ``llvm/``
67  tree, while using LLVM header files and libraries.
68
69:doc:`LLVMBuild`
70  Describes the LLVMBuild organization and files used by LLVM to specify
71  component descriptions.
72
73:doc:`HowToReleaseLLVM`
74  This is a guide to preparing LLVM releases. Most developers can ignore it.
75
76:doc:`ReleaseProcess`
77  This is a guide to validate a new release, during the release process. Most developers can ignore it.
78
79:doc:`HowToAddABuilder`
80   Instructions for adding new builder to LLVM buildbot master.
81
82:doc:`Packaging`
83   Advice on packaging LLVM into a distribution.
84
85:doc:`Release notes for the current release <ReleaseNotes>`
86   This describes new features, known bugs, and other limitations.
87
88.. _mailing-lists:
89
90Mailing Lists
91-------------
92
93If you can't find what you need in these docs, try consulting the mailing
94lists.
95
96`Developer's List (llvm-dev)`__
97  This list is for people who want to be included in technical discussions of
98  LLVM. People post to this list when they have questions about writing code
99  for or using the LLVM tools. It is relatively low volume.
100
101  .. __: http://lists.llvm.org/mailman/listinfo/llvm-dev
102
103`Commits Archive (llvm-commits)`__
104  This list contains all commit messages that are made when LLVM developers
105  commit code changes to the repository. It also serves as a forum for
106  patch review (i.e. send patches here). It is useful for those who want to
107  stay on the bleeding edge of LLVM development. This list is very high
108  volume.
109
110  .. __: http://lists.llvm.org/pipermail/llvm-commits/
111
112`Bugs & Patches Archive (llvm-bugs)`__
113  This list gets emailed every time a bug is opened and closed. It is
114  higher volume than the LLVM-dev list.
115
116  .. __: http://lists.llvm.org/pipermail/llvm-bugs/
117
118`Test Results Archive (llvm-testresults)`__
119  A message is automatically sent to this list by every active nightly tester
120  when it completes.  As such, this list gets email several times each day,
121  making it a high volume list.
122
123  .. __: http://lists.llvm.org/pipermail/llvm-testresults/
124
125`LLVM Announcements List (llvm-announce)`__
126  This is a low volume list that provides important announcements regarding
127  LLVM.  It gets email about once a month.
128
129  .. __: http://lists.llvm.org/mailman/listinfo/llvm-announce
130
131IRC
132---
133
134Users and developers of the LLVM project (including subprojects such as Clang)
135can be found in #llvm on `irc.oftc.net <irc://irc.oftc.net/llvm>`_.
136
137This channel has several bots.
138
139* Buildbot reporters
140
141  * llvmbb - Bot for the main LLVM buildbot master.
142    http://lab.llvm.org:8011/console
143  * smooshlab - Apple's internal buildbot master.
144
145* robot - Bugzilla linker. %bug <number>
146
147* clang-bot - A `geordi <http://www.eelis.net/geordi/>`_ instance running
148  near-trunk clang instead of gcc.
149
150.. _meetups-social-events:
151
152Meetups and social events
153-------------------------
154
155.. toctree::
156   :hidden:
157
158   MeetupGuidelines
159
160Besides developer `meetings and conferences <https://llvm.org/devmtg/>`_,
161there are several user groups called
162`LLVM Socials <https://www.meetup.com/pro/llvm/>`_. We greatly encourage you to
163join one in your city. Or start a new one if there is none:
164
165:doc:`MeetupGuidelines`
166
167.. _community-proposals:
168
169Community wide proposals
170------------------------
171
172Proposals for massive changes in how the community behaves and how the work flow
173can be better.
174
175.. toctree::
176   :hidden:
177
178   CodeOfConduct
179   Proposals/GitHubMove
180   BugpointRedesign
181   Proposals/LLVMLibC
182   Proposals/TestSuite
183   Proposals/VariableNames
184   Proposals/VectorizationPlan
185
186:doc:`CodeOfConduct`
187   Proposal to adopt a code of conduct on the LLVM social spaces (lists, events,
188   IRC, etc).
189
190:doc:`Proposals/GitHubMove`
191   Proposal to move from SVN/Git to GitHub.
192
193:doc:`BugpointRedesign`
194   Design doc for a redesign of the Bugpoint tool.
195
196:doc:`Proposals/LLVMLibC`
197   Proposal to add a libc implementation under the LLVM project.
198
199:doc:`Proposals/TestSuite`
200   Proposals for additional benchmarks/programs for llvm's test-suite.
201
202:doc:`Proposals/VariableNames`
203   Proposal to change the variable names coding standard.
204
205:doc:`Proposals/VectorizationPlan`
206   Proposal to model the process and upgrade the infrastructure of LLVM's Loop Vectorizer.