Sections
Title |
Required |
Usually this should be the repository name |
Table of Content |
Optional |
Strongly recommended if you have a long README |
Summary |
Required |
Summary of the content of the repository |
Features |
Optional |
Feature of your tool, modules, library |
Prerequisites |
Required |
Prerequisites for using your tool, module, library |
Usage |
Required |
Basic usage for your tool, module, library |
Examples |
Optional |
More specific examples of how to use your tool, module, library |
Common Problems |
Optional |
If any identified, list the common problems that users can encounter here |
terraform-docs Sections |
Required (TF Module) |
For Terraform modules, ensure you run the terraform-docs
tool to include generated documentation for your module |
This is a list of "standard" sections but you do not have to limit yourself to these sections. Feel free to add any other sections that would improve documentation, user experience, and minimize end-user questions and support requests.
Recommended Tools
|
QK's preferred code editor |
|
Helps ensure consistent Markdown structure and format |
|
Helps ensure your README does not have any typo |
|
Helps creating Markdown table of content |
|
Helps creating Markdown tables |
|
|
Title
To keep things simple, you should usually set the title to the name of the repository since the README.md file is displayed by BitBucket. |
Table of Content
If you have a somewhat long README, we strongly recommend you add a ToC section so that users can have a quick view of all the content in your README and easily jump to a section they wish to read. We recommend you use a VS Code extension for this as creating the ToC manually is tedious. |
Summary
Summary of the content of the repository. This is usually a one-liner or a short paragraph. If desired, you can put this directly under the "Title" section. The goal is to let the user know early what the repository contains. |
Features
When creating a generic tool, module or library, we strongly recommend you create a "Features" section to "sell" it to potential users. The main benefit of such tools, modules or libraries is to standardize how things are done and provide users with easy to consume "LEGO" blocks on which they can build more complex projects. If you invested time to make your tool "usable" by many, you should take the time to explain its features and "sell" it to potential users so it bring value to many, not only you. |
Prerequisites
Ensure you document any prerequisites (software, steps, permissions, etc) needed to use the content of your repository. Doing so will ensure people who takes the time to read your documentation will not waste any time trying to make things work when they unknowingly are missing prerequisites. It will also minimize questions and complaints from users. |
Usage
Make sure you provide users with basic usage information for the content of your repository. What may seem evident to you may not be clear to others without context and explanations. This section should include the minimal information to get users up-and-running. |
|
|
Examples
In this section, you should include examples of how to use the content of your repository. It can be task-focused (e.g. To do this: Use this way), it can include code to show some common usage patterns or it can refer to more complete examples stored in the repository. You are free to use the format you want, the goal is to provide the users with common examples they can learn from. |
Common Problems
When you are aware (e.g. from your own experience or from user feedback) of common questions, problems, pitfalls or limitations, you should document them in this section. When you have solution or workarounds you should include them as well. The goal is to empower the user with the information needed to fix "most" issues already identified and minimize questions and complaints. --- As your repository become more popular, you may identify new questions or issues. When you do, you should update your README with new content. |
terraform-docs Sections
Required for all Terraform Modules. Please see the Terraform module specific cheat sheet for details. |
Tips
Always include a README.md
file in all your repositories. This file is automatically displayed by BitBucket and act as the main documentation for your repository. |
If your repository is published (public or to other project members), make sure your README.md
file includes the Required
sections. |
When necessary, feel free to add per-directory README.md
files inside your project to further improve documentation. These READMEs don't have to include all sections, they can simply include information more specific to this part of the repository. |
As the content of your repository changes, do not forget to update your README file(s). |
|