How to submit patches into the NASM
===================================

Actually the rules are pretty simple

Obtaining the source code
-------------------------

The NASM sources are tracked by Git SCM at https://github.com/netwide-assembler/nasm.git
repository. You either could download packed sources or use git tool itself

        git clone https://github.com/netwide-assembler/nasm.git

Changin the source code
-----------------------

When you change the NASM source code keep in mind -- we prefer tabs and
indentations to be 4 characters width, space filled.

Other "rules" could be learned from NASM sources -- just make your code
to look similar.

Producing patch
---------------

There are at least two ways to make it right.

 1) git format-patch

    You might need to read documentation on Git SCM how to prepare patch
    for mail submission. Take a look on http://book.git-scm.com/ and/or
    http://git-scm.com/documentation for details. It should not be hard
    at all.

 2) Use "diff -up"

    Use "diff -up" or "diff -uprN" to create patches.

Signing your work
-----------------

To improve tracking of who did what we've introduced a "sign-off" procedure
on patches that are being emailed around.

The sign-off is a simple line at the end of the explanation for the
patch, which certifies that you wrote it or otherwise have the right to
pass it on as a open-source patch.  The rules are pretty simple: if you
can certify the below:

        Developer's Certificate of Origin 1.1

        By making a contribution to this project, I certify that:

        (a) The contribution was created in whole or in part by me and I
            have the right to submit it under the open source license
            indicated in the file; or

        (b) The contribution is based upon previous work that, to the best
            of my knowledge, is covered under an appropriate open source
            license and I have the right under that license to submit that
            work with modifications, whether created in whole or in part
            by me, under the same open source license (unless I am
            permitted to submit under a different license), as indicated
            in the file; or

        (c) The contribution was provided directly to me by some other
            person who certified (a), (b) or (c) and I have not modified
            it.

	(d) I understand and agree that this project and the contribution
	    are public and that a record of the contribution (including all
	    personal information I submit with it, including my sign-off) is
	    maintained indefinitely and may be redistributed consistent with
	    this project or the open source license(s) involved.

then you just add a line saying

        Signed-off-by: Random J Developer <random@developer.example.org>

using your real name (please, no pseudonyms or anonymous contributions if
it possible)

An example of patch message
---------------------------

From: Random J Developer <random@developer.example.org>
Subject: [PATCH] Short patch description

Long patch description:

Explain the problem you are fixing, the consequences of that problem,
and why your patch is the correct way to fix it.

Signed-off-by: Random J Developer <random@developer.example.org>
---
Patch body here

Mailing patches
---------------

The patches should be sent to NASM development mailing list

    nasm-devel@lists.sourceforge.net

Please make sure the email client you're using doesn't screw
your patch (line wrapping and so on).

Wait for response
-----------------

Be patient. Most NASM developers are pretty busy people so if
there is no immediate response on your patch -- don't
be surprised, sometimes a patch may fly around a week(s) before
gets reviewed. But definitely the patches will not go to /dev/null.

    ---
    With best regards,
    NASM-team
