- TODO: Initial proposal setup
- Abstract
- Problem
- Background
- Proposal
- Details
- Rationale
- Alternatives considered
TIP: Run
./new_proposal.py "TITLE"
to do new proposal setup.
- Copy this template to
new.md
, and create a commit. - Create a GitHub pull request, to get a pull request number.
- Add the
proposal draft
label to the pull request.
- Add the
- Rename
new.md
to/proposals/p####.md
, where####
should be the pull request number. - Update the title of the proposal (the
TODO
on line 1). - Update the link to the pull request (the
####
on line 11). - Delete this section.
TODOs indicate where content should be updated for a proposal. See Carbon Governance and Evolution for more details.
TODO: Describe, in a succinct paragraph, the gist of this document. This paragraph should be reproduced verbatim in the PR summary.
TODO: What problem are you trying to solve? How important is that problem? Who is impacted by it?
TODO: Is there any background that readers should consider to fully understand this problem and your approach to solving it?
TODO: Briefly and at a high level, how do you propose to solve the problem? Why will that in fact solve it?
TODO: Fully explain the details of the proposed solution.
TODO: How does this proposal effectively advance Carbon's goals? Rather than
re-stating the full motivation, this should connect that motivation back to
Carbon's stated goals and principles. This may evolve during review. Use links
to appropriate sections of /docs/project/goals.md
,
and/or to documents in /docs/project/principles
.
For example:
- Community and culture
- Language tools and ecosystem
- Performance-critical software
- Software and language evolution
- Code that is easy to read, understand, and write
- Practical safety and testing mechanisms
- Fast and scalable development
- Modern OS platforms, hardware architectures, and environments
- Interoperability with and migration from existing C++ code
TODO: What alternative solutions have you considered?