RFC Process¶
Significant changes to the Pony language or standard library go through a Request for Comments (RFC) process. An RFC is a written proposal that the community reviews and discusses before a decision is made.
When You Need an RFC¶
RFCs are required for changes to:
- Language syntax or semantics
- Standard library public APIs (adding, changing, or removing)
- Project-wide processes or policies
RFCs are not needed for:
- Bug fixes
- Refactoring that doesn’t change public behavior
- Internal implementation changes
- Documentation improvements
- Tooling changes (corral, ponyup, etc.)
If you’re unsure, ask in the #RFCs channel on Zulip or bring it up at the Development Sync.
Process¶
- Discuss informally. Float your idea in the #RFCs channel on Zulip or at the weekly Development Sync. Early feedback helps shape the proposal before you invest time writing it up.
- Write the RFC. Fork the rfcs repository, copy the template, and fill it in.
- Submit a PR. Open a pull request against the rfcs repository. This is where formal review happens.
- Iterate. Respond to feedback and revise the RFC as needed. Discussion happens on the PR itself and often at the Development Sync.
- Final Comment Period. Once the RFC is considered ready, it enters a one-week Final Comment Period (FCP). This is the last chance for the community to raise concerns.
- Decision. After FCP, the RFC is either accepted or rejected.
Template Sections¶
The RFC template asks for:
- Summary – a brief description of the proposal
- Motivation – why this change is needed
- Detailed design – the technical details
- How We Teach This – how documentation, tutorials, and error messages should be updated
- How We Test This – how the change will be tested
- Drawbacks – reasons not to do this
- Alternatives – other approaches considered
- Unresolved questions – open issues to resolve during the RFC process
More Information¶
The rfcs repository has the full details, including the template and all existing RFCs.