Created
October 10, 2013 05:09
-
-
Save kevonc/6913337 to your computer and use it in GitHub Desktop.
A Style Guide for README files
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# README-README: A Style Guide for README files | |
## Contents | |
The `README.md` file and supporting documents should describe the following, in this order. If the file starts getting long, break it into pieces | |
* **Project Titles** as a level-1 heading | |
- with descriptive tagline: I should be informed and intrigued. Examples: | |
- "Sinatra is a DSL for quickly creating web applications in Ruby with minimal | |
effort" | |
- "Rails is a web-application framework that includes everything needed to create | |
database-backed web applications according to the Model-View-Controller (MVC) pattern." | |
- "Resque (pronounced like "rescue") is a Redis-backed library for creating | |
background jobs, placing those jobs on multiple queues, and processing | |
them later." | |
* **Overview** | |
- what it does | |
- why you might want to use it, and why you might not | |
* **Example Usage**: a basic example. Nothing fancy -- put rich examples in the detailed usage section | |
* **Getting Started** | |
- installation & prerequisites | |
- how to run examples and tests | |
- include a `Procfile` to start any necessary servers or daemon processes | |
- location of: | |
- code | |
- issue tracker | |
- wiki | |
- blog posts, screencasts, etc | |
- compiled documentation (add the project to [rdoc.info](http://rdoc.info)) | |
- travis-ci results | |
- mailing list | |
* **Design Goals** | |
- lightweight or full-featured? | |
- performance, flexibility, expressiveness? | |
* **Detailed Usage** | |
- models and interface | |
- examples | |
- configuration | |
- middleware or plugins | |
- how it works | |
* **Comparable Tools** | |
* **Developer info** | |
- Important Components | |
- layout of internal code tree | |
- Limitations and known issues | |
- performance and benchmarking | |
* **Colophon** | |
- Credits -- everyone who has contributed code, libraries from which we've borrowed code. | |
- Copyright and License -- state the license type (typically "Apache 2.0" or "All Rights Reserved and Confidential") and refer to the `LICENSE.md` file. Don't paste the license contents in here. | |
- How to contribute | |
- References | |
## Formatting | |
* Call the file `README.md`. | |
* Write in markdown format. | |
- You should use triple backtick blocks for code, and supply a language prefix: | |
```ruby | |
def hello(str) | |
puts "hello #{str}!" | |
end | |
``` | |
* Do not wrap lines. In emacs, enable the `longlines-mode` to make your document word wrap intelligently. | |
## Supporting Documentation | |
Besides a `README.md`, your repo should contain a `CHANGELOG.md` summarizing major code changes, a `LICENSE.md` describing the code's license (typically Apache 2.0 for our open-source projects, All Rights Reserved for internal projects), and a `notes/` directory that is a git submodule of the project's wiki. See the [style guide for repo organization](https://github.com/infochimps-labs/style_guide/blob/master/style-guide-for-repo-organization.md) for more details. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment