gawk development is distributed. It’s done using electronic
mail (email) and via branches in the Git repo1 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 email@example.com 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
Your contribution can be almost anything that is relevant for
gawk, such as code fixes, documentation fixes, and/or new
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
gawkcore, 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 firstname.lastname@example.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
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
NOTE: Because of the GNU project’s requirements for signed paperwork for contributions, the
gawkproject 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.
The email@example.com 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
gawk development, then you probably should
subscribe to the list.
Short for “repository”.