*: Regenerate.
[gcc.git] / libstdc++-v3 / doc / html / manual / appendix_contributing.html
1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Appendix A.  Contributing</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"><meta name="keywords" content="
2 ISO C++
3 ,
4 library
5 "><meta name="keywords" content="
6 ISO C++
7 ,
8 runtime
9 ,
10 library
11 "><link rel="home" href="../index.html" title="The GNU C++ Library"><link rel="up" href="bk01pt04.html" title="Part IV.  Appendices"><link rel="prev" href="bk01pt04.html" title="Part IV.  Appendices"><link rel="next" href="source_organization.html" title="Directory Layout and Source Conventions"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix A. 
12 Contributing
13
14 </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk01pt04.html">Prev</a> </td><th width="60%" align="center">Part IV. 
15 Appendices
16 </th><td width="20%" align="right"> <a accesskey="n" href="source_organization.html">Next</a></td></tr></table><hr></div><div class="appendix" title="Appendix A.  Contributing"><div class="titlepage"><div><div><h1 class="title"><a name="appendix.contrib"></a>
17 Contributing
18 <a class="indexterm" name="id675873"></a>
19 </h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="appendix_contributing.html#contrib.list">Contributor Checklist</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_contributing.html#list.reading">Reading</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.copyright">Assignment</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.getting">Getting Sources</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.patches">Submitting Patches</a></span></dt></dl></dd><dt><span class="section"><a href="source_organization.html">Directory Layout and Source Conventions</a></span></dt><dt><span class="section"><a href="source_code_style.html">Coding Style</a></span></dt><dd><dl><dt><span class="section"><a href="source_code_style.html#coding_style.bad_identifiers">Bad Identifiers</a></span></dt><dt><span class="section"><a href="source_code_style.html#coding_style.example">By Example</a></span></dt></dl></dd><dt><span class="section"><a href="source_design_notes.html">Design Notes</a></span></dt></dl></div><p>
20 The GNU C++ Library follows an open development model. Active
21 contributors are assigned maintainer-ship responsibility, and given
22 write access to the source repository. First time contributors
23 should follow this procedure:
24 </p><div class="section" title="Contributor Checklist"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="contrib.list"></a>Contributor Checklist</h2></div></div></div><div class="section" title="Reading"><div class="titlepage"><div><div><h3 class="title"><a name="list.reading"></a>Reading</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
25 Get and read the relevant sections of the C++ language
26 specification. Copies of the full ISO 14882 standard are
27 available on line via the ISO mirror site for committee
28 members. Non-members, or those who have not paid for the
29 privilege of sitting on the committee and sustained their
30 two meeting commitment for voting rights, may get a copy of
31 the standard from their respective national standards
32 organization. In the USA, this national standards
33 organization is
34 <a class="link" href="http://www.ansi.org" target="_top">ANSI</a>.
35 (And if you've already registered with them you can
36 <a class="link" href="http://webstore.ansi.org/RecordDetail.aspx?sku=INCITS%2fISO%2fIEC+14882-2003" target="_top">buy the standard on-line</a>.)
37 </p></li><li class="listitem"><p>
38 The library working group bugs, and known defects, can
39 be obtained here:
40 <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/" target="_top">http://www.open-std.org/jtc1/sc22/wg21</a>
41 </p></li><li class="listitem"><p>
42 The newsgroup dedicated to standardization issues is
43 comp.std.c++: the
44 <a class="link" href="http://www.comeaucomputing.com/csc/faq.html" target="_top">FAQ</a>
45 for this group is quite useful.
46 </p></li><li class="listitem"><p>
47 Peruse
48 the <a class="link" href="http://www.gnu.org/prep/standards" target="_top">GNU
49 Coding Standards</a>, and chuckle when you hit the part
50 about <span class="quote"><span class="quote">Using Languages Other Than C</span></span>.
51 </p></li><li class="listitem"><p>
52 Be familiar with the extensions that preceded these
53 general GNU rules. These style issues for libstdc++ can be
54 found in <a class="link" href="source_code_style.html" title="Coding Style">Coding Style</a>.
55 </p></li><li class="listitem"><p>
56 And last but certainly not least, read the
57 library-specific information found in
58 <a class="link" href="appendix_porting.html" title="Appendix B.  Porting and Maintenance">Porting and Maintenance</a>.
59 </p></li></ul></div></div><div class="section" title="Assignment"><div class="titlepage"><div><div><h3 class="title"><a name="list.copyright"></a>Assignment</h3></div></div></div><p>
60 Small changes can be accepted without a copyright assignment form on
61 file. New code and additions to the library need completed copyright
62 assignment form on file at the FSF. Note: your employer may be required
63 to fill out appropriate disclaimer forms as well.
64 </p><p>
65 Historically, the libstdc++ assignment form added the following
66 question:
67 </p><p>
68 <span class="quote"><span class="quote">
69 Which Belgian comic book character is better, Tintin or Asterix, and
70 why?
71 </span></span>
72 </p><p>
73 While not strictly necessary, humoring the maintainers and answering
74 this question would be appreciated.
75 </p><p>
76 For more information about getting a copyright assignment, please see
77 <a class="link" href="http://www.gnu.org/prep/maintain/html_node/Legal-Matters.html" target="_top">Legal
78 Matters</a>.
79 </p><p>
80 Please contact Benjamin Kosnik at
81 <code class="email">&lt;<a class="email" href="mailto:bkoz+assign@redhat.com">bkoz+assign@redhat.com</a>&gt;</code> if you are confused
82 about the assignment or have general licensing questions. When
83 requesting an assignment form from
84 <code class="email">&lt;<a class="email" href="mailto:mailto:assign@gnu.org">mailto:assign@gnu.org</a>&gt;</code>, please cc the libstdc++
85 maintainer above so that progress can be monitored.
86 </p></div><div class="section" title="Getting Sources"><div class="titlepage"><div><div><h3 class="title"><a name="list.getting"></a>Getting Sources</h3></div></div></div><p>
87 <a class="link" href="http://gcc.gnu.org/svnwrite.html" target="_top">Getting write access
88 (look for "Write after approval")</a>
89 </p></div><div class="section" title="Submitting Patches"><div class="titlepage"><div><div><h3 class="title"><a name="list.patches"></a>Submitting Patches</h3></div></div></div><p>
90 Every patch must have several pieces of information before it can be
91 properly evaluated. Ideally (and to ensure the fastest possible
92 response from the maintainers) it would have all of these pieces:
93 </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
94 A description of the bug and how your patch fixes this
95 bug. For new features a description of the feature and your
96 implementation.
97 </p></li><li class="listitem"><p>
98 A ChangeLog entry as plain text; see the various
99 ChangeLog files for format and content. If you are
100 using emacs as your editor, simply position the insertion
101 point at the beginning of your change and hit CX-4a to bring
102 up the appropriate ChangeLog entry. See--magic! Similar
103 functionality also exists for vi.
104 </p></li><li class="listitem"><p>
105 A testsuite submission or sample program that will
106 easily and simply show the existing error or test new
107 functionality.
108 </p></li><li class="listitem"><p>
109 The patch itself. If you are accessing the SVN
110 repository use <span class="command"><strong>svn update; svn diff NEW</strong></span>;
111 else, use <span class="command"><strong>diff -cp OLD NEW</strong></span> ... If your
112 version of diff does not support these options, then get the
113 latest version of GNU
114 diff. The <a class="link" href="http://gcc.gnu.org/wiki/SvnTricks" target="_top">SVN
115 Tricks</a> wiki page has information on customising the
116 output of <code class="code">svn diff</code>.
117 </p></li><li class="listitem"><p>
118 When you have all these pieces, bundle them up in a
119 mail message and send it to libstdc++@gcc.gnu.org. All
120 patches and related discussion should be sent to the
121 libstdc++ mailing list.
122 </p></li></ul></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bk01pt04.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01pt04.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="source_organization.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part IV. 
123 Appendices
124  </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Directory Layout and Source Conventions</td></tr></table></div></body></html>