gawkworkflow: Contributing
1 How to Start Contributing
***************************
'gawk' development is distributed. It's done using electronic mail
(email) and via branches in the Git repo(1) on Savannah
(http://savannah.gnu.org), the GNU project's source code management
site.
In this major node we use some Git terminology. If you're not at all
familiar with Git, then skim this major node and come back after reading
the rest of the Info file.
'gawk' is similar to many other Free Software projects. To begin
contributing, simply start! Take a look at the 'TODO' file in the
distribution, see if there is something of interest to you, and ask on
the <bug-gawk@gnu.org> mailing list if anyone else is working on it. If
not, then go for it! (Development Stuff for a discussion of
some of the technical things you'll need to do. Here we describe the
process in general.)
Your contribution can be almost anything that is relevant for 'gawk',
such as code fixes, documentation fixes, and/or new features.
NOTE: If possible, new features should be done using 'gawk''s
extension mechanism. If you want to add a user-visible language
change to the 'gawk' core, you're going to have to convince the
maintainer and other developers that it's really worthwile to do
so.
Changes that improve performance or portability, or that fix bugs,
or that enable more things in extensions, will require less
convincing, of course.
As you complete a task, submit patches for review to the
<bug-gawk@gnu.org> mailing list, where you'll be given feedback about
your work. Once your changes are acceptable, the maintainer will commit
them to the Git repository.
Over time, as the maintainer and development team gain confidence in
your ability to contribute, you may be asked to join the private 'gawk'
developers' mailing list, and/or be granted commit access to the Git
repository on Savannah. This has happened to more than one person who
just "came out of the woodwork."
Until that happens, or if you don't want to join the list, you should
continue to work with private branches and submission of patches to the
mailing list.
Once you have commit access, if you want to make a major change or
add a major feature, where the patch(es) would be very large, it has
become the practice to create a separate branch, based off of 'master',
to host the feature. This way the maintainer can review it, and you can
continue to improve it, until it's ready for integration into 'master'.
NOTE: Because of the GNU project's requirements for signed
paperwork for contributions, the 'gawk' project will *not* work
with pull requests from GitHub (http://github.com) or any other
Git-based software hosting service. You must submit patches to the
mailing list, and be willing to sign paperwork for large patches.
The <bug-gawk@gnu.org> mailing list is not private. Anyone may send
mail to it, and anyone may subscribe to it. To subscribe, go to the
list's web page (https://lists.gnu.org/mailman/listinfo/bug-gawk) and
follow the instructions there. If you plan to be involved long-term
with 'gawk' development, then you probably should subscribe to the list.
---------- Footnotes ----------
(1) Short for "repository".