Contribution Checklist

A contribution to the GLIBC project should always be sent to the appropriate mailing list for the contribution scope:

A high-quality contribution includes the following things:

1. Bugzilla entry

A bugzilla entry for a bug should be created and *should* contain everything a high-quality mailing list submission would contain.

If your contribution fixes a user-visible issue we strongly suggest it should have a bugzilla entry.

Please follow the bugzilla procedures.

2. Contribution Email Subject Line

A high-quality email subject line for a contribution contains the following tags:

For a Single patch contribution:

For Multi-part patch set contributions where [PATCH 0/2] is used to described the forth coming patches:

For a request for comment that doesn't have to be a patch at all:

For a request for comment on a patch or patch set:

For a patch for against a bug filed in bugzilla:

For a patch that effects a particular architecture only:

3. Properly Identified Contribution Scope

3.1. Base

3.2. Add-Ons (NPTL, localedata, posix, libidn, et al)

3.3. Ports

3.4. Out-of-Scope (Automatically Generated Files)

Changes in automatically regenerated files (configure, for example) should not be included in the submitted patch.

4. Detailed Explanation of the Patch

4.1. General Patch Requirements

4.2. Documentation

If your patch adds a new interface then that interface should be documented in the glibc manual.

Where possible please additionally contribute a manual page to the Linux man-pages project: http://www.kernel.org/doc/man-pages/

4.3. Qualification (Locales)

Most contributions don't require explicit justification for the patch. Necessity of inclusion can be negotiated with the maintainer. One exception is Locales - the GLIBC maintainers cannot easily judge on their own if your new version is correct.

5. Check For New Warnings

Check the make log for new warnings. Any new warnings generated should have the cause corrected before submission of the patch.

6. Testing

     Copyright (C) year1, year5 copyright-holder

     Copyright (C) year1, year5, year6 copyright-holder

     Copyright (C) year1, year5-year7 copyright-holder

     Copyright (C) year1-year7 copyright-holder

9. Attribution

10. Properly Formatted GNU ChangeLog

YYYY-MM-DD<2 spaces>John Doe<2 spaces><johndoe@some.email.address>
<blank-line>
<tab--->[BZ #<number>]<use this if there is a bugzilla associated with the patch>
<tab--->* login/utmp_file.c (pututline_file): Replace call to 'dup()'<line wrap at or before column 79>
<tab--->with libc internal symbol '__dup()' to avoid access through<line wrap at or before column 79>
<tab--->the PLT.
<tab--->* manual/install.texi: Minimum version updated.
<tab--->* INSTALL: Regenerated.

2008-12-12  John Doe  <johndoe@some.email.address>

        [BZ #9999]
        * login/utmp_file.c (pututline_file): Replace call to 'dup()'
        with libc internal symbol '__dup()' to avoid access through
        the PLT.
        * manual/install.texi: Minimum version updated.
        * INSTALL: Regenerated.

11. Properly Formatted Changes

11.1. 79-Column Lines

All source files in glibc must use lines of fewer than 80 characters. The only exceptions are when it's syntactically impossible to split a line for some reason.

11.2. Nested C Preprocessor Directives

These need to properly indented.

e.g.:

#if FOO
# define BAR
#endif

and not:

#if FOO
#define BAR
#endif

Note that in a header file, the outer #ifndef _FILE_H/#endif pair does not increase the indentation level.

#ifndef _FILE_H
#if FOO
# define BAR
#endif
#endif

12. Proper Formatted Unified diff of the Changes

If you have any questions regarding these criteria please email libc-help@sourceware.org .

13. Ping and keep pinging

If your patch is not reviewed it may just mean that the reviewers are busy. Please ping and keep pinging the patch on a weekly basis.

None: Contribution checklist (last edited 2012-05-14 14:52:57 by RyanScottArnold)