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