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