ce115cb4991619b038722391279d16e3bdebc1b1
[openssl-web.git] / policies / committers.html
1 <!DOCTYPE html>
2 <html lang="en">
3   <!--#include virtual="/inc/head.shtml" -->
4
5   <body>
6     <!--#include virtual="/inc/banner.shtml" -->
7
8     <div id="main">
9       <div id="content">
10         <div class="blog-index">
11           <article>
12             <header>
13               <h1>Guidelines for OpenSSL Committers</h1>
14             </header>
15
16             <div class="entry-content">
17               <h2>Who is a committer?</h2>
18
19               <p>OpenSSL committers are contributors who have commit access
20               to the
21               <a href="https://git.openssl.org">OpenSSL source code repository</a>.
22               Committers review and commit their own patches as well as
23               those of other contributors.</p>
24
25               <h2>How to become a committer?</h2>
26               <p>Commit access is granted by the OpenSSL Management Committee
27               (OMC) (see the
28               <a href="/policies/bylaws.html">OpenSSL bylaws</a>).
29
30               <p>We welcome contributors who become domain experts in some
31               part of the library (for example, low-level crypto) as well as
32               generalists who contribute to all areas of the codebase. All
33               committers share the responsibility for the overall health
34               of the project: aside from contributing quality features,
35               committers are team players who fix bugs, address open
36               issues, review community contributions, and improve tests and
37               documentation. Committers are also shepherds of the OpenSSL
38               community and its
39               <a href="/community/conduct.html">code of conduct</a>.</p>
40
41               <p>To become a committer, start by contributing code. Read our
42               <a href="/policies/codingstyle.html">coding style</a>, and get
43               to know our build and test system. Then, use the
44               <a href="/policies/roadmap.html">project roadmap</a>,
45               <a href="https://github.com/openssl/openssl/issues">Github issue tracker</a>,
46               and our
47               <a href="/community/mailinglists.html">mailing lists</a>
48               find impactful ideas to work on. Seek feedback from multiple OMC
49               members to understand the project, and to support your
50               application. Let them know that you'd like to become a committer
51               - they'll nominate you when your code review record demonstrates
52               impact as well as understanding of the codebase and coding style
53               (usually after a few months of activity). The final decision to
54               grant commit access is taken by an OMC vote.</p>
55
56               <h2>How to maintain commit status?</h2>
57               <p>To maintain commit status, you should stay active in the
58               project. As stated in the project bylaws, if you remain inactive
59               for several months, your commit access will be withdrawn - but
60               you are always welcome back, just ask an OMC member to
61               re-nominate you.</p>
62               <p>In the unlikely and unfortunate event that your actions
63               conflict with the project objectives or are otherwise
64               disruptive, commit access may also be revoked by vote of the
65               OMC.</p>
66
67               <h2>Code reviews</h2>
68               <p>All submissions must be reviewed and approved by at least two
69               committers, one of whom must also be an OMC member. If the
70               author is also a committer then that counts as one of the
71               reviews. In other words:</p>
72               <ul>
73                 <li>OMC members need one approval from any committer</li>
74                 <li>Committers need one approval from a committer within the
75                 OMC</li>
76                 <li>Contributors without commit rights need two approvals,
77                 including one from the OMC.</li>
78               </ul>
79
80               <p>This process may seem a little heavy, but OpenSSL is a large,
81               complicated codebase, and we think two reviews help prevent
82               security bugs, as well as disseminate knowledge to the growing
83               contributor base.</p>
84
85               <p>Contributors without commit rights cannot formally approve
86               patches but are nevertheless welcome to comment on submissions
87               and do technical reviews. We always value another pair of eyes,
88               and volunteering for reviews counts favourably towards becoming
89               a committer. As an author, we ask that you address all comments,
90               even if you already have the necessary approvals.</p>
91  
92               <p>If you have trouble finding consensus on a difficult review,
93               reach out to the OMC at
94               <a href="mailto:openssl-team@openssl.org">openssl-team@openssl.org</a>
95               (private, moderated) or committers at
96               <a href="mailto:openssl-dev@openssl.org">openssl-dev@openssl.org</a>
97               (public). On GitHub, you can reach OMC members at @openssl/team,
98               and committers can be found at @openssl/dev.</p>
99
100               <h2>Commit workflow</h2>
101               <p>We do code reviews on GitHub. The
102               <a href="https://github.com/openssl/openssl">OpenSSL GitHub
103 repository</a>
104               is a mirror, so we do not merge on GitHub. When you become a
105               committer, we.ll send you instructions to get commit access to
106               the main repository. To have handy links to review history, we
107               record the reviewers and GitHub pull request IDs in commit
108               headers. We have some helper scripts in the
109               <a href="https://github.com/openssl/tools">tools repo</a>
110               to add these headers automatically.</p>
111
112               <p>We don't use merge commits.</p>
113
114               <p>If at any point during development or review you discover
115               a potential security issue, we ask that you report it to
116               <a href="mailto:openssl-security@openssl.org"> openssl-security@openssl.org</a>
117               and don't discuss it further in public. We review security
118               sensitive patches privately, off GitHub. We do not currently
119               have a way to open access to those reviews after the patches
120               have been released.</p>
121
122               <h2>A note on CLAs</h2>
123               <p>All authors, including committers, must have current CLAs on
124               file. A CLA is not required for trivial contributions (e.g. the
125               fix of a spelling mistake). If all reviewers as well as the
126               original author agree that the submission is trivial, the commit
127               can be labelled "CLA: trivial" to skip CLA checks.</p>
128
129             </div>
130
131             <footer>
132               You are here: <a href="/">Home</a>
133               : <a href="/policies"> Policies</a>
134               : <a href="">Guidelines for Committers</a>.
135               <br><a href="/sitemap.txt">Sitemap</a>
136             </footer>
137           </article>
138         </div>
139         <!--#include virtual="sidebar.shtml" -->
140       </div>
141     </div>
142
143     <!--#include virtual="/inc/footer.shtml" -->
144   </body>
145 </html>