xref: /openbsd-src/gnu/gcc/libstdc++-v3/docs/html/17_intro/contribute.html (revision 404b540a9034ac75a6199ad1a32d1bbc7a0d4210)
1*404b540aSrobert<?xml version="1.0" encoding="ISO-8859-1"?>
2*404b540aSrobert<!DOCTYPE html
3*404b540aSrobert          PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4*404b540aSrobert          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5*404b540aSrobert
6*404b540aSrobert<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7*404b540aSrobert<head>
8*404b540aSrobert  <title>How to contribute</title>
9*404b540aSrobert<link rel="StyleSheet" href="../lib3styles.css" type="text/css" />
10*404b540aSrobert<link rel="Start" href="../documentation.html" type="text/html"
11*404b540aSrobert title="GNU C++ Standard Library" />
12*404b540aSrobert<link rel="Help" href="../faq/index.html" type="text/html" title="F.A.Q." />
13*404b540aSrobert</head>
14*404b540aSrobert<!--990301 slightly modified version of the GCC contribute.html file-->
15*404b540aSrobert<!-- #include virtual="/include/header-subpages.html"-->
16*404b540aSrobert<body>
17*404b540aSrobert<h2>How to contribute</h2>
18*404b540aSrobert<p> The Standard C++ Library v3, follows an open development
19*404b540aSrobertmodel. Active contributors are assigned maintainer-ship
20*404b540aSrobertresponsibility, and given write access to the CVS repository. First
21*404b540aSroberttime contributors should follow this procedure:
22*404b540aSrobert</p>
23*404b540aSrobert
24*404b540aSrobert<hr />
25*404b540aSrobert<h4>ONE : read the documentation</h4>
26*404b540aSrobert
27*404b540aSrobert<ul>
28*404b540aSrobert <li> Get and read the relevant sections of the C++ language
29*404b540aSrobertspecification. Copies of the full ISO 14882 standard are available on
30*404b540aSrobertline via the ISO mirror site for committee members. Non-members, or
31*404b540aSrobertthose who have not paid for the privilege of sitting on the committee
32*404b540aSrobertand sustained their two meeting commitment for voting rights, may get
33*404b540aSroberta copy of the standard from their respective national standards
34*404b540aSrobertorganization. In the USA, this national standards organization is ANSI
35*404b540aSrobertand their web-site is right
36*404b540aSrobert
37*404b540aSrobert <a href="http://www.ansi.org">here.</a>
38*404b540aSrobert(And if you've already registered with them, clicking this link will take you to directly to the place where you can
39*404b540aSrobert<a href="http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%3A2003">buy the standard on-line.)</a>
40*404b540aSrobert</li>
41*404b540aSrobert
42*404b540aSrobert<li> The library working group bugs, and known defects, can be obtained here:
43*404b540aSrobert <a href="http://www.open-std.org/jtc1/sc22/wg21/">http://www.open-std.org/jtc1/sc22/wg21 </a>
44*404b540aSrobert</li>
45*404b540aSrobert
46*404b540aSrobert<li> The newsgroup dedicated to standardization issues is comp.std.c++: this FAQ for this group is quite useful and can be found <a href="http://www.jamesd.demon.co.uk/csc/faq.html"> here </a>.
47*404b540aSrobert</li>
48*404b540aSrobert
49*404b540aSrobert <li> Peruse the <a href="http://www.gnu.org/prep/standards_toc.html">GNU Coding Standards</a>, and chuckle when you hit the part about "Using Languages Other Than C."
50*404b540aSrobert</li>
51*404b540aSrobert
52*404b540aSrobert <li> Be familiar with the extensions that preceded these general GNU rules. These style issues for libstdc++ can be found in the file C++STYLE, located in the root level of the distribution, or <a href="C++STYLE"> here. </a>
53*404b540aSrobert</li>
54*404b540aSrobert
55*404b540aSrobert <li> And last but certainly not least, read the library-specific information found <a href="../documentation.html"> here.</a>
56*404b540aSrobert</li>
57*404b540aSrobert
58*404b540aSrobert</ul>
59*404b540aSrobert
60*404b540aSrobert
61*404b540aSrobert
62*404b540aSrobert<hr />
63*404b540aSrobert<h4>TWO : copyright assignment</h4>
64*404b540aSrobert<p>
65*404b540aSrobertSmall changes can be accepted without a copyright assignment form on
66*404b540aSrobertfile. New code and additions to the library need completed copyright
67*404b540aSrobertassignment form on file at the FSF. Note: your employer may be required
68*404b540aSrobertto fill out appropriate disclaimer forms as well.
69*404b540aSrobert</p>
70*404b540aSrobert
71*404b540aSrobert<p> Historically, the libstdc++ assignment form added the following question:
72*404b540aSrobert</p>
73*404b540aSrobert
74*404b540aSrobert<code>[Which Belgian comic book character is better, Tintin or
75*404b540aSrobertAsterix, and why?]</code>
76*404b540aSrobert
77*404b540aSrobert<p>
78*404b540aSrobertWhile not strictly necessary, humoring the maintainers and answering
79*404b540aSrobertthis question would be appreciated.
80*404b540aSrobert</p>
81*404b540aSrobert
82*404b540aSrobert<p>
83*404b540aSrobertFor more information about getting a copyright assignment, please see
84*404b540aSrobert<a href=http://www.gnu.org/prep/maintain_4.html#SEC4=> Legal Issues</a>
85*404b540aSrobert</p>
86*404b540aSrobert
87*404b540aSrobert<p>
88*404b540aSrobertPlease contact <a href="mailto:bkoz+assign@redhat.com">Benjamin
89*404b540aSrobertKosnik</a> if you are confused about the assignment or have general
90*404b540aSrobertlicensing questions. When requesting an assignment form from <a
91*404b540aSrobertHREF="mailto:assign@gnu.org">assign@gnu.org</a>, please cc
92*404b540aSrobertthe above libstdc++ maintainer so that progress can be monitored.
93*404b540aSrobert</p>
94*404b540aSrobert
95*404b540aSrobert
96*404b540aSrobert<hr />
97*404b540aSrobert<h4>THREE : submitting patches</h4>
98*404b540aSrobert
99*404b540aSrobert<p>
100*404b540aSrobertEvery patch must have several pieces of information before it can be
101*404b540aSrobertproperly evaluated. Ideally (and to ensure the fastest possible
102*404b540aSrobertresponse from the maintainers) it would have all of these pieces:
103*404b540aSrobert</p>
104*404b540aSrobert
105*404b540aSrobert<ul>
106*404b540aSrobert
107*404b540aSrobert <li> A description of the bug and how your patch fixes this bug. For
108*404b540aSrobert new features a description of the feature and your implementation. </li>
109*404b540aSrobert
110*404b540aSrobert <li> A ChangeLog entry as plain text; see the various ChangeLog files
111*404b540aSrobert for format and content. If using you are using emacs as your editor,
112*404b540aSrobert simply position the insertion point at the beginning of your change
113*404b540aSrobert and hit CX-4a to bring up the appropriate ChangeLog
114*404b540aSrobert entry. See--magic! Similar functionality also exists for vi.  </li>
115*404b540aSrobert
116*404b540aSrobert <li> A testsuite submission or sample program that will easily and
117*404b540aSrobert simply show the existing error or test new functionality.  </li>
118*404b540aSrobert
119*404b540aSrobert <li> The patch itself. If you are accessing the CVS repository at
120*404b540aSrobert Cygnus, use "cvs update; cvs diff -c3p NEW"; else, use "diff -c3p OLD
121*404b540aSrobert NEW" ... If your version of diff does not support these options, then
122*404b540aSrobert get the latest version of GNU diff. </li>
123*404b540aSrobert
124*404b540aSrobert <li> When you have all these pieces, bundle them up in a mail message
125*404b540aSrobertand send it to libstdc++@gcc.gnu.org. All patches and related
126*404b540aSrobertdiscussion should be sent to the libstdc++ mailing list. </li>
127*404b540aSrobert
128*404b540aSrobert</ul>
129*404b540aSrobert
130*404b540aSrobert</body>
131*404b540aSrobert</html>
132*404b540aSrobert
133