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