| <!--990301 slightly modified version of the GCC contribute.html file--> |
| <html> |
| <head> |
| <title>How to contribute</title> |
| </head> |
| <!--#include virtual="/include/header-subpages.html"--> |
| <h2>How to contribute</h2> |
| <p> |
| The Standard C++ Library v3, or libstc++-2.90.x, follows an open development model. Active contributors are assigned maintainer-ship responsibility, and given write access to the CVS repository. First time submitors and all other potential contributors should follow this procedure: |
| |
| <p> |
| <hr> |
| <h4>ONE : read the documentation</h4> |
| <p> |
| |
| <p> |
| <ul> |
| <li> 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 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 href="http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+14882%2D1998">buy the standard on-line.)</a> |
| |
| <li> The library working group bugs, and known defects, can be obtained at these web sites: |
| <a href="http://www.dkuug.dk/jtc1/sc22/wg21/">http://www.dkuug.dk/jtc1/sc22/wg21 </a> |
| and <a href="http://www.comeaucomputing.com/iso/">http://www.comeaucomputing.com/iso/</a> |
| |
| <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://reality.sgi.com/austern_mti/std-c++/faq.html"> here </a>. |
| |
| <li> Peruse the <a href="http://www.gnu.ai.mit.edu/prep/standards_toc.html">GNU Coding Standards</a>, and chuckle when you hit the part about "Using Languages Other Than C." |
| |
| <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> |
| |
| <li> And last but certainly not least, read the library-specific information found <a href="../documentation.html"> here.</a> |
| |
| </ul> |
| |
| |
| |
| <p> |
| <hr> |
| <h4>TWO : copyright assignment</h4> |
| <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. Here is the <a href="libstdc++-assign.txt"> form. </a> |
| |
| Please contact <a href="mailto:benjamin@cygnus.com">Benjamin |
| Kosnik</a> if you are confused about the assignment or have general |
| licensing questions. |
| |
| |
| <p> |
| <hr> |
| <h4>THREE : submitting patches</h4> |
| <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> |
| <ul> |
| |
| <li> A description of the bug and how your patch fixes this bug. For |
| new features a description of the feature and your implementation. |
| |
| <li> A ChangeLog entry as plaintext; see the various ChangeLog files |
| for format and content. If using 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. |
| |
| <li> A testsuite submission or sample program that will easily and |
| simply show the existing error or test new functionality. |
| |
| <li> The patch itself. If you are accessing the CVS repository at |
| Cygnus, use "cvs update; cvs diff -c3p NEW"; else, use "diff -c3p OLD |
| NEW" ... If your version of diff does not support these options, then |
| get the latest version of GNU diff. |
| |
| <li> 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++ mailinglist. |
| |
| </ul> |
| |
| |