A Fediverse Enhancement Proposal (FEP) is a document that provides information to the Fediverse community. The goal of a FEP is to improve interoperability and well-being of diverse services, applications and communities that form the Fediverse.
This document describes the scope, format and process of publishing Fediverse Enhancement Proposals.
A Fediverse Enhancement Proposal (FEP) should be a concise and focused documentation of a specific topic that is of interest to the Fediverse community.
A proposal should always have the intention of improving the interoperability and well-being of diverse services, applications and community of the Fediverse.
The Fediverse includes applications, services and communities using the ActivityPub protocol and other protocols that foster decentralized and diverse social media and culture.
Proposals may include descriptions of technical protocols and mechanisms, documentation of experimental work or current best practices.
Proposals are not limited to technical topics and may focus on social and cultural aspects.
Proposals may be entertaining and humorous (unlike this proposal).
All Fediverse Enhancement Proposals must be written in English, be properly formatted as CommonMark and be reasonably grammatical.
Authors should use inclusive language and examples and refrain from using oppressive terminology.
Every Fediverse Enhancement Proposal must have a descriptive title.
An identifier is computed from the proposal title as the first 4 digits of the sha256 hash (in hex). The identifier can be computed from the title with standard Unix tools:
$ echo -n "The Fediverse Enhancement Proposal Process" | sha256sum | cut -c-4
a4ed
By using the hash of the title as identifier we reduce the burden on facilitators to assign unique ids. This requires proposal titles to be unique.
Fediverse Enhancement Proposals are classified into following types:
Proposal metadata is placed at the top of the document as key-value pairs between opening and closing ~—~.
Following metadata key-value pairs may be placed at the top of a proposal:
type
: Indicates the type of the proposal. Can be either informational
or implementation
.slug
: the proposal identifier. The value must be enclosed within double quote marks, e.g. "a4ed"
.authors
: A comma separated list of authors of the proposal. Each item of the list should contain an author’s name followed by a contact address in angle brackets (e.g. Alyssa P. Hacker <alyssa.p.hacker@email.example>
, Alyssa P. Hacker <@alyssa.p.hacker@fediverse.example>
).status
: Indicates the proposal status. Can be either DRAFT
, WITHDRAWN
or FINAL
.dateReceived
: Date of when the proposal was added to the repository (when status is set to DRAFT
).dateWithdrawn
: Date of when the proposal status was set to WITHDRAWN
(only for proposals with status WITHDRAWN
).dateFinalized
: Date of when the proposal status was set to FINAL
(only for proposals with status FINAL
).trackingIssue
: Link to the tracking issue for the proposal.discussionsTo
: Link to the discussion.relatedFeps
: A comma separated list of related FEPs (e.g. FEP-a4ed, FEP-141a, FEP-686f
).replaces
: A comma separated list of FEPs that are replaced by the proposal.replacedBy
: Identifier of a FEP that replaces the proposal.Every FEP should include at least the following sections:
Following sections may be included in a proposal:
Fediverse Enhancement Proposals must be placed in the public domain by the authors with a CC0 1.0 Universal (CC0 1.0) Public Domain Dedication.
stateDiagram-v2
accTitle: FEP process flowchart
accDescr {
The process begins from the "DRAFT" status, followed by either of the "FINAL" or "WITHDRAWN" status.
The "WITHDRAWN" status can go back to the "DRAFT" status.
}
[*] --> DRAFT
DRAFT --> FINAL
DRAFT --> WITHDRAWN
WITHDRAWN --> DRAFT
FINAL --> [*]
SUBMISSION.md
file for a list of accepted submission methods.DRAFT
and is added to the repository. The facilitator also creates a tracking issue for the proposal and adds trackingIssue
attribute to the proposal metadata.
slug
, authors
, status
, dateReceived
, trackingIssue
and discussionsTo
.FINAL
or WITHDRAWN
, facilitator adds dateFinalized
or dateWithdrawn
attributes to the proposal metadata.DRAFT
:
WITHDRAWN
.FINAL
.WITHDRAWN
.FINAL
can not be changed or updated in a way that would lead to adjustments to implementations. Minor corrections are allowed.replaces
metadata attribute pointing to FEPs it supersedes.FINAL
, the original one MUST point to it in an added replacedBy
metadata attribute.WITHDRAWN
remains in the repository and can be resubmitted.FINAL
a facilitator will archive all discussions linked in the tracking issue and add the resulting archive links to the tracking issue.A list of facilitators is maintained in the FACILITATORS.md
file at the root of the FEP repository.
A list of methods in which a proposal may be submitted is maintained in the SUBMISSION.md
file at the root of the FEP repository.
FEP-a4ed (The Fediverse Enhancement Proposal Process) is a living document and can be updated despite having the FINAL
status.
Anyone can propose a change to FEP-a4ed (or other documents related to the FEP process) using any method listed in SUBMISSION.md
file. The change must be approved by at least two facilitators (one of them could be the submitter). For any part of the FEP process, there must be a sufficient number of facilitators who agreed to do the maintenance work. Changes should not be accepted before at least 1 month passes after the last update, to give facilitators and the community time to review them and provide feedback.
Minor changes (i.e. a correction of a typo or of a broken link) can be accepted immediately after getting two approvals from facilitators.
The process and format described in this proposal is influenced by other community driven documentation efforts such as the BitTorrent Enhancement Proposal Process, Scheme Request for Implementation and the IETF RFC Series.
CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
To the extent possible under law, the authors of this Fediverse Enhancement Proposal have waived all copyright and related or neighboring rights to this work.