|
| 1 | +# Proposals |
| 2 | + |
| 3 | +Collaborate on API changes to Swift OpenAPI Generator by writing a proposal. |
| 4 | + |
| 5 | +## Overview |
| 6 | + |
| 7 | +For non-trivial changes that affect the public API, the Swift OpenAPI Generator project adopts a ligthweight version of the [Swift Evolution](https://github.com/apple/swift-evolution/blob/main/process.md) process. |
| 8 | + |
| 9 | +Writing a proposal first helps discuss multiple possible solutions early, apply useful feedback from other contributors, and avoid reimplementing the same feature multiple times. |
| 10 | + |
| 11 | +While it's encouraged to get feedback by opening a pull request with a proposal early in the process, it's also important to consider the complexity of the implementation when evaluating different solutions (as per <doc:Project-scope-and-goals>). For example, this might mean including a prototype implementation of the feature in the same PR as the proposal document. |
| 12 | + |
| 13 | +> Note: The goal of this process is to help solicit feedback from the whole community around the project, and we will continue to refine the proposal process itself. Use your best judgement, and don't hesitate to propose changes to the proposal structure itself! |
| 14 | +
|
| 15 | +### Steps |
| 16 | + |
| 17 | +1. Make sure there's a GitHub issue for the feature or change you would like to propose. |
| 18 | +2. Duplicate the `SOAR-NNNN.md` document and replace `NNNN` with the next available proposal number. |
| 19 | +3. Link the GitHub issue from your proposal, and fill in the proposal. |
| 20 | +4. Open a pull request with your proposal and solicit feedback from other contributors. |
| 21 | +5. Once a maintainer confirms that the proposal is ready for review, the state is updated accordingly. The review period is 7 days, and ends when one of the maintainers marks the proposal as Ready for Implementation, or Deferred. |
| 22 | +6. Before the pull request is merged, there should be an implementation ready, either in the same pull request, or a separate one, linked from the proposal. |
| 23 | +7. The proposal is considered Approved once the implementation and proposal PRs have been merged. |
| 24 | + |
| 25 | +If you have any questions, tag [Honza Dvorsky](https://github.com/czechboy0) or [Si Beaumont](https://github.com/simonjbeaumont) in your issue or pull request on GitHub. |
| 26 | + |
| 27 | +### Possible review states |
| 28 | + |
| 29 | +- Awaiting Review |
| 30 | +- In Review |
| 31 | +- Ready for Implementation |
| 32 | +- Approved |
| 33 | +- Deferred |
| 34 | + |
| 35 | +### Possible affected components |
| 36 | + |
| 37 | +- generator |
| 38 | +- runtime |
| 39 | +- client transports |
| 40 | +- server transports |
| 41 | + |
| 42 | +## Topics |
| 43 | + |
| 44 | +- <doc:SOAR-NNNN> |
0 commit comments