FEP-a4ed: The Fediverse Enhancement Proposal Process

Sure, this would work. There should be an easy navigation from the static site to the markdown doc to PR to in the repo then.

I guess in my most recent comments above, it indicates there’s already a need for this, but in a slightly more specific and practical manner (if y’all agree with that feedback, that is).

I have a couple of questions about the FEP process.

  • If I’m proposing a technical thing, is it preferable for it to have been implemented already?
  • If I’m adding fields to an ActivityPub object, and I expect them to be used widely in the future, which namespace should I be using? My own, i.e. http://smithereen.software/ns#? ActivityStreams? Something else?
1 Like

I am reluctant to add such a requirement. I do not think that discussion should be referenced from the FEP itself. The FEP by itself should be enough to understand the matter.

I think that is a good idea.

I have created tracking issues for the 3 DRAFT FEPs:

Pull request #13 includes a GitTea template for these tracking issues.

Also added as interim solution in #13.

I have also increased the time before a FEP automatically goes from DRAFT to WITHDRAWN from 90 days to 120 days. This is mostly because I have been away and almost missed the date…Generally a bit more time can not harm.

Would you want to submit a FEP addressing this?


I think it is nice to have at least one working implementation (good for figuring out all the things one forgets), but there is no strict requirement.

Excellent question.

FEPs do not have any control of what should be added to ActivityStreams. Maybe it might make sense to add a FEP namespace (e.g. https://activitypub.dev/fep/ns#) where things can be added but in the mean time I think it is better to use your own.


You mean a FEP to update the FEP FEP :wink:

I may pick this up at a later date. There’s a good basis now, with which we can run for the moment. See what makes sense or not later on.

Something else. Yesterday some interesting background on FEP-like processes:

And a HN discussion about the article (80+ comments).

NABC model from Stanford was mentioned, which stands for Need, Approach, Benefit, Competitors. Both Need and Competitors are most interesting. Separatng Need from Approach is great for the understanding of the author, while Competitors “is the part the authors have to consider competitors of their proposal.”. It has the effect of:

“Thinking about an alternative solution instead of their suggestion requires people to focus on the problem instead of blindly loving and defending their solutions.”

Overall “The process seeks a consent-based environment, not a consensus-based one [AND] brings accountability , as well”

A post was merged into an existing topic: Business domains, LD vocabulary extensions and namespaces

I kindly request final comments on “FEP-a4ed: The Fediverse Enhancement Proposal Process”.

Notable changes since the proposal has been received:

  • Reduce number of characters in identifier to 4. More readable and good enough.
  • Specify the EDITORS.md and SUBMISSION.md files.
  • Increase time before proposal is auto-withdrawn to 120 days.
  • Update some references.

See also the tracking issue.

I have requested finalization in 14 days. If there are no objections, the proposal will become final on the 18th of January.



@pukkamustard I finally read FEP-a4ed and it looks great. A really solid basis for coherent communication in the community.

There’s scope for publishing FINAL FEPs as Social Incubator CG Reports if there’s interest from the community in producing documents with the w3c header on, under w3.org. As well as being preserved at a persistent URL, they have the advantage of being easily submitable to Working Groups as input documents for formal standardisation in future.


I also think the FEP process could be a good way to incubate extensions to AS2, which can then be adopted through a proposal to the CG and added to the AS2 namespace. Since the CG had not manage to come up with a process for this so far, we can talk about adopting the FEP for it at some point.

1 Like

Sorry for being a bit late to the party. My gripes with the process so far were:

  • there no being clear way to submit the FEP, but that has been fixed
  • the FEP IDs changing, but I expect this won’t change again

The current document looks good, although I wonder if it should provide guidance and venues for authors to get discussion and feedback on their proposals.

One very minor typo: BitTorrent Enhancment Proposal Process → BitTorrent Enhancement Proposal Process

Claire via SocialHub noreply@socialhub.activitypub.rocks writes:

Sorry for being a bit late to the party. My gripes with the
process so far were:

  • there no being clear way to submit the FEP, but that has been


  • the FEP IDs changing, but I expect this won’t change again

Yes, sorry about that. FEP-8fcf and FEP-f1d5 were a bit special as
they were submitted before the process itself was finalized. This
should not happen again.

The current document looks good, although I wonder if it should
provide guidance and venues for authors to get discussion and
feedback on their proposals.

This is an important point that has been brought up previously
(see thread above).

I’m very reluctant to give any concrete recommendations or
requirements on venues for discussing proposal. My hope is that
such venues will develop naturally. When these are established it
might make sense to document these venues. This can be done in an
additional FEP. In best case these would be venues that fit with
the spirit of the Fediverse and are federated/decentralized (as
opposed to this highly centralized forum).

One very minor typo: BitTorrent Enhancment Proposal Process →
BitTorrent Enhancement Proposal Process

Thanks for the catch. Fixed with

Feedback AFTER the FEP became FINAL starts here …

This FEP has become FINAL and…

A proposal with status FINAL can not be changed or updated.

Now suppose I would like to change it. What’s the procedure? Should one write another FEP that suppercedes the current one if it becomes FINAL. If so, how do we document that so it is clear to everyone? Or should FEP’s be Versioned instead?

The change I am thinking about is following:

  • While in DRAFT mode there should not be a Timer that is ticking (the 60 day period). This is the stage where you prepare your proposal before it is ready for the world.
  • Add an additional workflow step PROPOSED where the 60-day review period starts.

The workflow then looks as follows:

                                                +-------> | FINAL | 
                                                |         +-------+
         +-------+          +----------+        |
-------->| DRAFT | -------->| PROPOSED |--------+
         +-------+          +----------+        |
             ^                                  |         +-----------+
             |                                  +-------> | WITHDRAWN |
             |                                            +-----------+
             |                                                  |

Why extend?

  • So all drafts being prepared are in one place.
  • So you can work with others to hone it together before actually proposing.

For the case where a new FEP supercedes another this may be reflected in its state, plus a reference to the superceding FEP is added to the old one. Maybe a better state name is in order e.g. ARCHIVED or even (maybe) DEPRECATED in some cases…

                                                          +-------+                +------------+
                                                +-------> | FINAL |--[other-FEP]-->| SUPERCEDED |
                                                |         +-------+                +------------+
         +-------+          +----------+        |
-------->| DRAFT | -------->| PROPOSED |--------+
         +-------+          +----------+        |
             ^                                  |         +-----------+
             |                                  +-------> | WITHDRAWN |
             |                                            +-----------+
             |                                                  |

CC @pukkamustard @cjs

1 Like

I wonder if we need a new state, an update mechanism, or just RFC-style later-ones-just-supercede.

It is possible an older item isn’t 100% superceded, just parts of it, so I am hesitant to add a new state – this would imply a whole thing is obsolete.

FEP process

Yes, that’s true, but in that case you’d have metadata on the other FEP which make it effectively not-FINAL-anymore. Like you have “this version” and “latest version”. I am assuming that any significant update must undergo the entire review process. Once the update becomes FINAL, then a warning on the old one must be shown “This is not the latest FINAL version” or something, similar to what you see at W3C.

If an update is underway in the process, does it have the same title + ID? That might be confusing. Alternatively an update could be part of the same document, i.e. it contains all versions, but that’d be confusing too.

Note that it gets complicated pretty quick. A W3C spec is designed to be something self-contained, whereas a FEP is an enchancement and not necessarily be ‘atomic’ i.e. it may need to be adapted to comply with other FEP’s as they are finalized. There are relationships.

Talking W3C… we may reuse the exact same mechanism. I figure it takes care of most of this. We want the FEP’s to be practical, least ceremonial, but they should also be useful and a sprawl of FEP’s - once the process gets traction - may go against that.


In addition to the FEP process itself arises the question: How to find out what FEP’s an implementation complies to?

I suggest that - for now - this should be in the FEDERATION.md document, proposed last year by @darius in Documenting federation behavior in a semi-standard way? proposed the FEDERATION.md convention, and discussed in SocialCG 2020-02-08.

How this works should be documented in the FEP process too, imho.

Note, I have proposed an extension to FEDERATION.md and will continue discussion in: Improvement to FEDERATION.md convention: Murmurations

Created an issue to attempt to restart the FEP process. #20 - Draft that should be either final or withdrawn - Fediverse-Enhancement-Proposals - Gitea: Git with a cup of tea

I feel there may also need to be an update process for EDITORS so that the basic machinations occur weekly or so.

1 Like

Very happy to see renewed action on this.

@weex Would you be willing to volunteer as an editor? Anybody else?

1 Like

Yes, I volunteer to be an editor.

1 Like

I’ll also help take things forward.

1 Like

Very happy to see the FEP process alive again!

Thank you both for volunteering!

Here the pull request to change editors:

@aschrijver: Can you check your contact details?

@cjs, @lain: Could you review the pull request?

1 Like