gawk
development is distributed. It’s done using electronic
mail (email) and via branches in the Git repository (or repo)
on Savannah, the GNU
project’s source code management site.
In this chapter we use some Git terminology. If you’re not at all familiar with Git, then skim this chapter and come back after reading the rest of the Web page.
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! (See 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 thegawk
core, you’re going to have to convince the maintainer and the other developers that it’s really worthwhile 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 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 (see Assigning Copyrights to the FSF).
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 and follow the instructions there. If you plan to be involved
long-term with gawk
development, then you probably should
subscribe to the list.