README
Template:Short description Template:Otheruses Template:Use dmy dates Template:Use list-defined references
In software distribution and software development, a README file contains information about the other files in a directory or archive of computer software. A form of documentation, it is usually a simple plain text file called README, Read Me, READ.ME, README.txt,[1] or README.md (to indicate the use of Markdown)
The file's name is generally written in uppercase. On Unix-like systems in particular, this causes it to stand outTemplate:Sndboth because lowercase filenames are more common, and because the ls command commonly sorts and displays files in ASCII-code order, in which uppercase filenames will appear first.[nb 1]
Contents
A README file typically encompasses:
- Configuration instructions
- Installation instructions
- Operating instructions
- A file manifest (a list of files in the directory or archive)
- Copyright and licensing information
- Contact information for the distributor or author
- A list of known bugs[2]
- Troubleshooting instructions[2]
- Credits and acknowledgments
- A changelog (usually aimed at fellow programmers)
- A news section (usually aimed at end users)
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 fileTemplate:Spaced ndashif 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 accountTemplate:Spaced ndashin particular a README.md is treated as GitHub Flavored Markdown.
As a generic term
The expression "readme file" is also sometimes used generically, for other files with a similar purpose.[13] For example, the source-code distributions of many free software packages (especially those following the Gnits Standards or those produced with GNU Autotools) include a standard set of readme files:
READMEGeneral information AUTHORSCredits THANKSAcknowledgments CHANGELOGA 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
Also commonly distributed with software packages are an FAQ file and a TODO file, which lists planned improvements.
See also
Notes
References
Further reading
- Script error: No such module "Citation/CS1". [1][2]
- Script error: No such module "Citation/CS1".
- Template:Cite magazine [3]
- Script error: No such module "Citation/CS1". [4]
This article is based in part on the Jargon File, which is in the public domain.
- ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedESR_1996_Dict - ↑ a b Cite error: Invalid
<ref>tag; no text was provided for refs namedManes_1996 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedDecus_1974_readme - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedDecus_1975_readme - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedPWB_1977 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedUNIX7_1979 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedBSD_1980 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedLangemeier_2011 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedAbdelhafith_2015 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedGNU_Standards - ↑ Script error: No such module "citation/CS1".
- ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedGithub_2014_Markup - ↑ Script error: No such module "Citation/CS1".
Cite error: <ref> tags exist for a group named "nb", but no corresponding <references group="nb"/> tag was found