This document exists to describe a proposal for enhancing the fastn
language.
This is a Request For Comment. Please share your comments by posting them in the
pull request for this RFC if this RFC is not merged yet. If the RFC is merged,
you can post comment on our official Discord, or
open a discussion on Github.
rfc
.Note: This RFC is heavly inspired by and borrows from the Rust's RFC process document.
The freewheeling way that we add new features tofastn
has been good for early
development, but for fastn
to become a mature platform we need to develop some
more self-discipline when it comes to changing the system. This is a proposal
for a more principled RFC process to make it a more integral part of the overall
development process, and one that is followed consistently to introduce
features to fastn
.Many changes, including bug fixes and documentation improvements can be implemented and reviewed via the normal GitHub pull request workflow.
Some changes though are "substantial", and we ask that these be put through a bit of a design process and produce a consensus among thefastn
community and
the core team.You need to follow this process if you intend to make "substantial" changes to
the fastn
distribution. What constitutes a "substantial" change is evolving
based on community norms, but may include the following.
In short, to get a major feature added to fastn
, one must first get the RFC
merged in fastn.com
repo. At that point the RFC is 'active' and may be
implemented with the goal of eventual inclusion into fastn
.
fastn.com
repo: https://github.com/fastn-stack/fastn.comrfcs/0000-template.ftd
to `rfcs/0000-my-feature.ftd (where 'my-feature'
is descriptive. don't assign an RFC number yet).Whomever merges the RFC should do the following:
rfcs/index.ftd
We have to only teach developers-of-fastn
about this new process, so teaching
impact of this RFC is minimal. Even for developers-of-fastn
, given fastn
is
implemented in Rust, so all developers of fastn are familiar with Rust, and also
given we have heavily borrewed from Rust's RFC process, teaching this should not
pose a challenge in terms of new concepts.
fastn.com/rfcs/
.