README
In 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
, README.md
(to indicate the use of Markdown), or README.1ST
.
The file's name is generally written in uppercase. On Unix-like systems in particular, this causes it to stand out – both 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.
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
- Troubleshooting instructions
- Credits and acknowledgments
- A changelog (usually aimed at fellow programmers)
- A news section (usually aimed at end users)
History
It is unclear when the convention of including a README file began, but examples dating to the mid-1970s have been found. 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".
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. In addition to plain text, various other formats and file extensions are also supported, and HTML conversion takes extensions into account – in 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. 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:
README
General information AUTHORS
Credits THANKS
Acknowledgments CHANGELOG
A detailed changelog, intended for programmers NEWS
A basic changelog, intended for users INSTALL
Installation instructions COPYING
/LICENSE
Copyright and licensing information BUGS
Known bugs and instructions on reporting new ones CONTRIBUTING
/HACKING
Guide for prospective contributors to the project
Also commonly distributed with software packages are an FAQ file and a TODO
file, which lists planned improvements.