For many free software projects it would be good to have a short document explaining how to get started with modifying it. It is customary to put this information in the README file. Some people consider README to be more suitable for end-users or people installing from source, and so the name HACKING is also used.

This is a checklist of things such a document might include.

  • How to build, for development, if it is different from normal builds. (Normal build instructions should go into README or INSTALL.)
  • Canonical version control repositories, for people who get a tarball.
  • Any build dependencies needed, and possibly where to get them.
  • How to run automatic tests.
  • Any other helper tools for figuring out, e.g., how to run profiles and performance tests.
  • How the source tree is laid out, and where to find the major components of the program.
  • Where and how to send patches.
  • Coding style issues, if any are unusual.

There may be more. If you can think of any, please add (this is a wiki, after all.) If you know of an existing checklist to replace this page, please add a link there.