rfcs/rfcs/rfc0.md

100 lines
3.6 KiB
Markdown
Raw Normal View History

2018-08-09 04:40:24 +00:00
---
title: "Standard 1: RFC Format and Semantics"
number: 0
author: Robert Miles <khuxkm@tilde.team>
2019-06-19 23:10:32 +00:00
status: Accepted
2018-08-09 04:40:24 +00:00
---
2019-06-19 23:41:45 +00:00
2019-06-19 23:10:32 +00:00
## Abstract
2018-08-09 04:40:24 +00:00
2019-06-19 23:41:45 +00:00
This RFC defines the format used by an RFC. RFCs in this system are stored
as Markdown files with YAML front-matter. RFC files MAY be stored with any
extension commonly used by markdown files.
2018-08-09 04:40:24 +00:00
This RFC also defines the semantics of how the RFC system will work.
2019-06-19 23:10:32 +00:00
## Front-matter format
2018-08-09 04:40:24 +00:00
The front-matter MUST contain the following key-value pairs:
2019-06-19 23:41:45 +00:00
- `title`: The title of the document. Standards documents should be
titled in the format `Standards X: Y` where X is the standards number
and Y is the title of the standard. ([See below for an explanation of
standards.](#types-of-documents))
2018-08-09 04:40:24 +00:00
2019-06-19 23:41:45 +00:00
- `number`: The canonical number of the RFC. Starts at 0 (this document)
and counts up in decimal.
2018-08-09 04:40:24 +00:00
- `author`: The author of the document. May contain email.
2019-06-19 23:41:45 +00:00
- `status`: The status of this document. Should be `Accepted` or
`Proposed`. (Rejected documents are not made a part of the repository.)
2018-08-09 04:40:24 +00:00
The front-matter MAY contain the following key-value pairs:
- `updates`: A comma-seperated list of RFCs this RFC updates.
- `updated-by`: A comma-seperated list of RFCs that update this RFC.
2019-06-19 23:41:45 +00:00
Note that the two lists should be added to in sequence; if RFC 2 updates
RFC 1, then RFC 2 needs to have 1 in its `updates` and RFC 1 needs 2 in its
`updated-by`.
2018-08-09 04:40:24 +00:00
2019-06-19 23:10:32 +00:00
## Semantics of the RFC System
2018-08-09 04:40:24 +00:00
2019-06-19 23:41:45 +00:00
The RFC system for tilde boxes will be hosted at
https://rfc.tildeverse.org/ and on the tildeverse gitea as
[tildeverse/rfcs](https://tildegit.org/tildeverse/rfcs).
2018-08-09 04:40:24 +00:00
2019-06-19 23:10:32 +00:00
### Types of Documents
2018-08-09 04:40:24 +00:00
2019-06-19 23:41:45 +00:00
RFC documents are simply requests. They are for simple things like defining
how something should work or how something should be done.
2018-08-09 04:40:24 +00:00
2019-06-19 23:41:45 +00:00
Standards documents are like mandates. They require something. For example,
this document requires a would-be submitter to follow this format for RFCs. A
Standards document can be amended by RFC documents, and any RFC documents
in violation of a Standards document, unless otherwise stated within the
Standards document, are invalid.
2018-08-09 04:40:24 +00:00
2019-06-19 23:10:32 +00:00
### Procedural Section
2018-08-09 04:40:24 +00:00
2019-06-19 23:41:45 +00:00
Every RFC and Standards document should end with a procedural information
section (id tagged implicitly as [#procedural-section](#procedural-section)).
2018-08-09 04:40:24 +00:00
There are 2 sub-sections to the procedural info section:
2019-06-19 23:41:45 +00:00
- Security Considerations (tagged implicitly as
[#security-considerations](#security-considerations)) - If there are any
security reasons/concerns for the document, they MUST be subsections of this.
2018-08-09 04:40:24 +00:00
2019-06-19 23:41:45 +00:00
- Configuration Considerations (tagged implicitly as
[#configuration-considerations](#configuration-considerations)) - For example,
if configs need to be changed due to the RFC.
2018-08-09 04:40:24 +00:00
2019-06-19 23:10:32 +00:00
### Submission guidelines
2018-08-09 04:40:24 +00:00
2019-06-19 23:41:45 +00:00
An RFC should be submitted as a PR to the [git
repo](https://tildegit.org/tildeverse/rfcs). RFCs MUST come with a draft name.
2018-08-09 04:40:24 +00:00
2019-06-19 23:41:45 +00:00
For example, a draft name for an RFC to make tilde.chat allow IRC connections
without SSL could be `draft-tilde-chat-without-ssl`.
2018-08-09 04:40:24 +00:00
2019-06-19 23:41:45 +00:00
The only time an RFC can omit the number tag in its front-matter is when it
is a draft. Drafts do not have numbers and are of the status `Proposed`. If
or when an RFC is accepted, it will be given a number (at which time it MUST
be renamed `rfcX.md`, where X is the number). The status MUST be changed to
`Accepted` and the number tag MUST contain the assigned number. When the
former draft meets these requirements, the PR will be merged.
2018-08-09 04:40:24 +00:00
2019-06-19 23:10:32 +00:00
## Procedural Information
2018-08-09 04:40:24 +00:00
2019-06-19 23:10:32 +00:00
### Security Considerations
2018-08-09 04:40:24 +00:00
There are no security considerations to this document.
2019-06-19 23:10:32 +00:00
### Configuration Considerations
2018-08-09 04:40:24 +00:00
2019-06-19 23:41:45 +00:00
A subdomain of tildeverse.org has been provisioned for the RFC project,
and a repo has been created, in accordance with this document.