README

Last updated

Screenshot of the README file of cURL README-cURL black trimmed.png
Screenshot of the README file of cURL

A README file contains descriptive information about the content of a directory in which the file is located. The scope of the information generally includes the files of the directory and may include descendant directories; even the directory tree. The name is intended to draw a user's attention to important and orientational information about the directory content. A rule of thumb for one unfamiliar with the content of a directory is to read the README file before other files. Although the name README is often used, there are many other similar names used for the same purpose including "Read Me" and "READ.ME". Sometimes the file name includes an extension to indicate the file format such as "README.txt" for plain text or "README.md" for Markdown. [1] The file's name is often all caps since it stands out visually; considered yelling by some.

Contents

A README file in an archive acts the same as in a directory since an archive is like a directory that is stored as a single file.

Content

Lacking standardization, the format and content of a README file varies dramatically. For a software project, a README file commonly includes information such as:

History

The convention of including a README file began in the mid-1970s. [3] [4] [5] [6] [7] [8] [9] Early Macintosh system software installed a Read Me on the Startup Disk, and README files commonly accompanied third-party software.

In particular, there is a long history of free software and open-source software including a README file; the GNU Coding Standards encourage including one to provide "a general overview of the package". [10]

Since the advent of the web as a de facto standard platform for software distribution, many software packages have moved (or occasionally, copied) some of the above ancillary files and pieces of information to a website or wiki, sometimes including the README itself, or sometimes leaving behind only a brief README file without all of the information required by a new user of the software.

The popular source code hosting website GitHub strongly encourages the creation of a README file if one exists in the main (top-level) directory of a repository, it is automatically presented on the repository's front page. [11] In addition to plain text, various other formats and file extensions are also supported, [12] and HTML conversion takes extensions into account in particular a README.md is treated as GitHub Flavored Markdown.

Directory content metadata is sometimes stored in files in addition to or instead of a README. [13] The following table lists commonly-used file names along with content of what is commonly in the file. As with README, there are no formal standards that govern the file names nor the content of them. Yet, there are conventions as dictated by Gnits Standards and GNU Autotools.

READMEGeneral information
AUTHORSCredits
THANKSAcknowledgments
CHANGELOG A detailed changelog, intended for programmers
NEWSA basic changelog, intended for users
INSTALLInstallation instructions
COPYING/LICENSECopyright and licensing information
BUGSKnown bugs and instructions on reporting new ones
CONTRIBUTING/HACKINGGuide for prospective contributors to the project
FAQ Frequently asked questions and answers
TODO Planned changes

See also

References

  1. Raymond, Eric Steven (1996). The New Hacker's Dictionary. MIT Press. pp. 378–79. ISBN   978-0-26268092-9. Hacker's-eye introduction traditionally included in the top-level directory of a Unix source distribution, containing a pointer to more detailed documentation, credits, miscellaneous revision history, notes, etc. […] When asked, hackers invariably relate the README convention to the famous scene in Lewis Carroll's Alice's Adventures In Wonderland in which Alice confronts magic munchies labeled "Eat Me" and "Drink Me".
  2. 1 2 Manes, Stephen (November 1996). "README? Sure--before I buy!". PC World . 14 (11): 366.
  3. "PDP-10 Archive: decus/20-0079/readme.txt from decus_20tap3_198111". pdp-10.trailing-edge.com. 1974-11-27. Retrieved 2018-03-03. [README.TXT is the DOC file for SPICE/SINC/SLIC] This failsafe tape contains the circuit analysis programs SPICE SINC and SLIC described in the Applications Software Bulletin Volume 4. requirements: SPICE requires FORTRAN-10 version 4 because of its use of Right adjusted Holerith data. Executes in about 47K. […] it also includes this file, the FOROTS to go with the SAVes and the source for SECOND.MAC, the timing routine. SPICE is broken into three parts: 1SPICE.FOR, 2 and 3. There is a printed document to describe each of the programs. These are included in the DECUS packet. The documentation and programs were originally developed by the E.E. department of the Univ. of Calif. at Berkeley on a CDC 6400. Except to convert the FORTRAN to the DECsystem-10 no changes have been made to the programs. For the test data SLIC and SINC have shown a slight variation with respect to the 6400, SPICE shows no variation. Good luck! Ashley Grayson 27-NOV-74 [end of README.TXT]
  4. "DECUS 10-LIB-4 Contains 10-210 through 10-241, except 10-223". pdp-10.trailing-edge.com. 1975-03-27. Retrieved 2018-03-03. The files on this FAILSAFE tape constitute the UCI LISP system. They are for the most part documented in the UCI LISP Manual, available from the Department of Information and Computer Science at the University of California, Irvine, California.
  5. "Programmer's Workbench /sys/source/lex/README". July 1977. Retrieved 2020-01-25.
  6. "Unix 7th edition /usr/doc/README". 1979. Retrieved 2020-01-25.
  7. "First 32bit BSD usr/doc/README". March 1980. Retrieved 2020-01-25.
  8. Langemeier, Jeff (2011-07-29). "Re: Origin of README" . Retrieved 2020-01-25 via Stackexchange. […] they had READMEs (actual physical printed files) for all of their punch cards and mag tape and pretty much anything else that was a "program". At that time you really needed one because of the labourous process that was involved with getting the created, ran, and everything else. These READMEs sometimes also included the actual printouts of how the punch cards were supposed to be punched as a form of error checking and debugging. The convention apparently also follows the old system in that with all the punch cards a "reem" of paper was attached with the statement README in caps printed on it, this had all of the instructions for use and loading of the punch cards into the system. For a time reference, this would have been in the 60s. […]
  9. Abdelhafith, Omar (2015-08-13). "README.md: History and Components". Archived from the original on 2020-01-25. Retrieved 2020-01-25.
  10. "GNU Coding Standards: Releases". www.gnu.org. Retrieved 2018-03-03.
  11. "About READMEs". GitHub Docs. Retrieved 2024-05-31.
  12. "Markup". GitHub. 2014-12-25. Retrieved 2015-02-08.
  13. Prana, Gede Artha Azriadi; Treude, Christoph; Thung, Ferdian; Atapattu, Thushari; Lo, David (2019-06-01). "Categorizing the Content of GitHub README Files" . Empirical Software Engineering. 24 (3): 1296–1327. arXiv: 1802.06997 . doi:10.1007/s10664-018-9660-3. ISSN   1573-7616.

Further reading

This article is based in part on the Jargon File, which is in the public domain.