Merge branch 'pr/31'
This commit is contained in:
commit
4b15f7179c
89
spec.md
89
spec.md
@ -1,41 +1,51 @@
|
|||||||
## Specification
|
# Specification
|
||||||
|
|
||||||
### Requirements
|
A compliant README must satisfy all the requirements listed below.
|
||||||
|
|
||||||
A compliant README must:
|
**Requirements:**
|
||||||
- Be called README.md (with capitalization).
|
- Be called README.md (with capitalization).
|
||||||
- Be a valid Markdown file.
|
- Be a valid Markdown file.
|
||||||
- Sections must appear in order delineated below. Optional sections may be omitted.
|
- Sections must appear in order given below. Optional sections may be omitted.
|
||||||
|
- Sections must have the titles listed below, unless otherwise specified.
|
||||||
- Must be new lines between each section.
|
- Must be new lines between each section.
|
||||||
|
|
||||||
**Suggestions:**
|
**Suggestions:**
|
||||||
- A "Back to Top" link for longer sections can be useful, but is not required by any means.
|
- A "Back to Top" link for longer sections can be useful, but is not required by any means.
|
||||||
|
|
||||||
### Sections
|
## Sections
|
||||||
|
|
||||||
#### Title
|
### Title
|
||||||
**Status:** Required.
|
**Status:** Required.
|
||||||
|
|
||||||
**Requirements:**
|
**Requirements:**
|
||||||
- Must match repository name. If it cannot, there must be a note in the long description about why.
|
- Title must match repository and package manager names. If any of these don't match, there must be a note in the [Long Description](#long-description) explaining why.
|
||||||
- Must match package manager name. If it cannot, there must be a note in the long description about why.
|
|
||||||
|
|
||||||
**Suggestions:**
|
**Suggestions:**
|
||||||
- Should be self-evident.
|
- Should be self-evident.
|
||||||
|
|
||||||
#### Banner
|
### Banner
|
||||||
**Status:** Optional.
|
**Status:** Optional.
|
||||||
|
|
||||||
**Requirements:**
|
**Requirements:**
|
||||||
|
- Does not require its own title.
|
||||||
- Must link to local image in current repository.
|
- Must link to local image in current repository.
|
||||||
- Must appear directly after the title.
|
- Must appear directly after the title.
|
||||||
|
|
||||||
#### Badges
|
### Badges
|
||||||
**Status:** Optional.
|
**Status:** Optional.
|
||||||
|
|
||||||
**Requirements:**
|
**Requirements:**
|
||||||
|
- Does not require a title of its own.
|
||||||
- Must be newline delimited.
|
- Must be newline delimited.
|
||||||
|
|
||||||
#### Short Description
|
**Suggestions:**
|
||||||
|
- Use http://shields.io or a similar service to create and host the images.
|
||||||
|
|
||||||
|
### Short Description
|
||||||
**Status:** Required.
|
**Status:** Required.
|
||||||
|
|
||||||
**Requirements:**
|
**Requirements:**
|
||||||
|
- Does not require its own title.
|
||||||
- Must be less than 120 characters.
|
- Must be less than 120 characters.
|
||||||
- Must start with `> `
|
- Must start with `> `
|
||||||
- Must be on it's own line.
|
- Must be on it's own line.
|
||||||
@ -46,10 +56,11 @@ A compliant README must:
|
|||||||
- Use [gh-description](https://github.com/RichardLitt/gh-description) to set and get GitHub description.
|
- Use [gh-description](https://github.com/RichardLitt/gh-description) to set and get GitHub description.
|
||||||
- Use `npm show . description` to show the description from a local [npm](https://npmjs.com) package.
|
- Use `npm show . description` to show the description from a local [npm](https://npmjs.com) package.
|
||||||
|
|
||||||
#### Long Description
|
### Long Description
|
||||||
**Status:** Optional.
|
**Status:** Optional.
|
||||||
|
|
||||||
**Requirements:**
|
**Requirements:**
|
||||||
- Must have no heading.
|
- Does not require its own title.
|
||||||
|
|
||||||
**Suggestions:**
|
**Suggestions:**
|
||||||
- If too long, consider moving to the [Background](#background) section.
|
- If too long, consider moving to the [Background](#background) section.
|
||||||
@ -66,9 +77,9 @@ progressively greater amount of knowledge."
|
|||||||
|
|
||||||
~ [Kirrily "Skud" Robert, perlmodstyle](http://perldoc.perl.org/perlmodstyle.html)
|
~ [Kirrily "Skud" Robert, perlmodstyle](http://perldoc.perl.org/perlmodstyle.html)
|
||||||
|
|
||||||
|
### Table of Contents
|
||||||
#### Table of Contents
|
|
||||||
**Status:** Required by default, optional for READMEs less than 100 lines.
|
**Status:** Required by default, optional for READMEs less than 100 lines.
|
||||||
|
|
||||||
**Requirements:**
|
**Requirements:**
|
||||||
- Must link to all Markdown sections in the file.
|
- Must link to all Markdown sections in the file.
|
||||||
- Must start with the next section; do not include the title or Table of Contents headings.
|
- Must start with the next section; do not include the title or Table of Contents headings.
|
||||||
@ -77,55 +88,65 @@ progressively greater amount of knowledge."
|
|||||||
**Suggestions:**
|
**Suggestions:**
|
||||||
- May capture third and fourth depth headings. If it is a long ToC, these are optional.
|
- May capture third and fourth depth headings. If it is a long ToC, these are optional.
|
||||||
|
|
||||||
#### Security
|
### Security
|
||||||
**Status**: Optional.
|
**Status**: Optional.
|
||||||
**Requirements:**
|
|
||||||
- May go here if visibility of security section is important. Otherwise, should be in [Extra Sections](#extra-sections).
|
|
||||||
|
|
||||||
#### Background
|
**Requirements:**
|
||||||
|
- May go here if it is important to highlight security concerns. Otherwise, it should be in [Extra Sections](#extra-sections).
|
||||||
|
|
||||||
|
### Background
|
||||||
**Status:** Optional.
|
**Status:** Optional.
|
||||||
|
|
||||||
**Requirements:**
|
**Requirements:**
|
||||||
- Cover motivation.
|
- Cover motivation.
|
||||||
- Cover abstract dependencies.
|
- Cover abstract dependencies.
|
||||||
- Cover intellecutal provenance: A `See Also` section is also fitting.
|
- Cover intellectual provenance: A `See Also` section is also fitting.
|
||||||
|
|
||||||
#### Install
|
### Install
|
||||||
**Status:** Required by default, optional for doc modules.
|
**Status:** Required by default, optional for doc modules.
|
||||||
|
|
||||||
**Requirements:**
|
**Requirements:**
|
||||||
- Code block illustrating how to install.
|
- Code block illustrating how to install.
|
||||||
|
|
||||||
Subsections:
|
**Subsections:**
|
||||||
- `Dependencies`. Required if necessary.
|
- `Dependencies`. Required if there are unusual dependencies or dependencies that must be manually installed.
|
||||||
- `Updating`. Optional.
|
- `Updating`. Optional.
|
||||||
|
|
||||||
**Suggestions:**
|
**Suggestions:**
|
||||||
- Link to prerequisite sites for language: [npmjs](https://npmjs.com), [godocs](https://godoc.org), etc.
|
- Link to prerequisite sites for programming language: [npmjs](https://npmjs.com), [godocs](https://godoc.org), etc.
|
||||||
- Include any system-specific information needed for Installation.
|
- Include any system-specific information needed for installation.
|
||||||
- Subsection for dependencies needed for install to work.
|
|
||||||
- If there is no code in the module - for instance, a document-based module - this section is not required.
|
- If there is no code in the module - for instance, a document-based module - this section is not required.
|
||||||
|
|
||||||
#### Usage
|
### Usage
|
||||||
**Status:** Required by default, optional for doc modules.
|
**Status:** Required by default, optional for doc modules.
|
||||||
|
|
||||||
**Requirements:**
|
**Requirements:**
|
||||||
- Code block illustrating common usage.
|
- Code block illustrating common usage.
|
||||||
- If CLI compatible, code block indicating common usage.
|
- If CLI compatible, code block indicating common usage.
|
||||||
- If importable, code block indicating both import functionality and usage.
|
- If importable, code block indicating both import functionality and usage.
|
||||||
|
|
||||||
Subsections:
|
**Subsections:**
|
||||||
- `CLI`. Required if CLI functionality exists.
|
- `CLI`. Required if CLI functionality exists.
|
||||||
- If relevant, point to a runnable file for the usage code.
|
|
||||||
|
|
||||||
**Suggestions:**
|
**Suggestions:**
|
||||||
- Cover basic choices that may affect usage: for instance, if JavaScript, cover promises/callbacks, ES6 here.
|
- Cover basic choices that may affect usage: for instance, if JavaScript, cover promises/callbacks, ES6 here.
|
||||||
|
- If relevant, point to a runnable file for the usage code.
|
||||||
- If there is no code in the module - for instance, a document-based module - this section is not required.
|
- If there is no code in the module - for instance, a document-based module - this section is not required.
|
||||||
|
|
||||||
#### Extra Sections
|
### Extra Sections
|
||||||
**Status**: Optional.
|
**Status**: Optional.
|
||||||
|
|
||||||
**Requirements:**
|
**Requirements:**
|
||||||
- None.
|
- None.
|
||||||
|
|
||||||
#### API
|
**Suggestions:**
|
||||||
|
- Does not require its own title, however the sections included within it must have titles.
|
||||||
|
- This should contain any other sections that are relevant, placed after [Usage](#usage) and before [API](#api).
|
||||||
|
- Specifically, the [Security](#security) section should be here if it wasn't important enough to be placed above.
|
||||||
|
|
||||||
|
### API
|
||||||
**Status:** Optional.
|
**Status:** Optional.
|
||||||
|
|
||||||
**Requirements:**
|
**Requirements:**
|
||||||
- Describe exported functions and objects.
|
- Describe exported functions and objects.
|
||||||
|
|
||||||
@ -135,8 +156,9 @@ Subsections:
|
|||||||
- Describe caveats.
|
- Describe caveats.
|
||||||
- If using an external API generator (like go-doc, js-doc, or so on), point to an external `API.md` file. This can be the only item in the section, if present.
|
- If using an external API generator (like go-doc, js-doc, or so on), point to an external `API.md` file. This can be the only item in the section, if present.
|
||||||
|
|
||||||
#### Contribute
|
### Contribute
|
||||||
**Status**: Required.
|
**Status**: Required.
|
||||||
|
|
||||||
**Requirements:**
|
**Requirements:**
|
||||||
- State where users can ask questions.
|
- State where users can ask questions.
|
||||||
- State whether PRs are accepted.
|
- State whether PRs are accepted.
|
||||||
@ -148,8 +170,9 @@ Subsections:
|
|||||||
- Link to the GitHub issues.
|
- Link to the GitHub issues.
|
||||||
- Link to Code of Conduct. This is often in Contribute, or organization wide, so may not be necessary for each module.
|
- Link to Code of Conduct. This is often in Contribute, or organization wide, so may not be necessary for each module.
|
||||||
|
|
||||||
#### License
|
### License
|
||||||
**Status:** Required.
|
**Status:** Required.
|
||||||
|
|
||||||
**Requirements:**
|
**Requirements:**
|
||||||
- State license initials or name.
|
- State license initials or name.
|
||||||
- State license owner.
|
- State license owner.
|
||||||
|
Loading…
Reference in New Issue
Block a user