{% set rfcid = “RFC-0098” %} {% include “docs/contribute/governance/rfcs/_common/_rfc_header.md” %}
The Component Framework (CF) system provides the foundations for running software on Fuchsia. With the exception of a few early-boot processes, all software spanning from low-level system services to UI-driven front end apps, are components and operate in the context of the Component Runtime.
For this reason, changes to the Component Framework can have a broad impact on the Fuchsia architecture and on developers who write software targeting Fuchsia.
The Fuchsia-wide RFC process provides a consistent and transparent process for making technical decisions with broad impact. This document seeks to provide the detail necessary to disambiguate between which CF changes have sufficiently broad impact to deserve a dedicated RFC, and which do not.
fuchsia.sys2
, fuchsia.component
, fuchsia.session
, CML, C++ component libraries, and so on.When a change does not fit the above criteria perfectly, the default stance is to either:
RFCs that document the status-quo are optional but encouraged. Publishing a status-quo RFC expands awareness of the existing architecture of Fuchsia to many more individuals, including those individuals outside Google. Additionally, they provide references to the current state of the architecture for future RFC authors to link to.
Note: Prior to adopting the RFC process, the Component Framework team used a local design review processed called Component Tuning Proposals (CTP).
Many features require work along spectrum from prototyping, to design feedback from peers, to getting hands-on customer experience with production-quality code and APIs. It is not unusual for CF contributors to gain experience with features, with iteratively-expanding audiences. For example, a feature proposal may go through a less-formal design process including members of the core team, an implementation, and then experimentation with fuchsia.git
developers, before going through the more formal RFC process.
Contributors may opt to enter the RFC process earlier, at their discretion, especially when they can predict that their design is destined for an RFC based on the criteria described above.
Any work that has already gone through the CF project's established design review processes will not be retroactively required to adhere to the RFC criteria defined here.
If a contributor wishes to work with the CF team on an RFC, they should feel free to reach out to component-framework-dev@fuchsia.dev and we'll assign them a designated contact.
No impact, process-only change.
We'll revisit these criteria if we find that the criteria herein are allowing changes to move ahead that would have been served better by the RFC process, or if the criteria herein are found to be too restrictive.
No impact.
Changes to the Component Framework area that modify security policy or strategy will require an RFC.
Changes to the Component Framework area that modify privacy policy or strategy will require an RFC.
No impact.
Does not apply.
It is unknown if the criteria in this document strike the right balance between broad, inclusive review at the expense of velocity, versus more targeted review.
Another alternative is to stick with the status-quo: the CF team uses its internal CTP process.