Skip to content

Commit

Permalink
Add a proposal state for when merged behind a feature flag (#161)
Browse files Browse the repository at this point in the history
Add a proposal state for when merged behind a feature flag

### Motivation

When introducing breaking changes, it can be convenient to hide the new behavior behind a feature flag. However, up until now, proposals didn't have a state that represents "feature landed but is not enabled by default yet".

### Modifications

This PR introduces a new state for proposals for this.

Also, added missing documentation for the `featureFlags` key in the config file.

### Result

Now proposals can be moved to the new state before their feature is enabled unconditionally.

### Test Plan

N/A


Reviewed by: simonjbeaumont

Builds:
     ✔︎ pull request validation (5.8) - Build finished. 
     ✔︎ pull request validation (5.9) - Build finished. 
     ✔︎ pull request validation (docc test) - Build finished. 
     ✔︎ pull request validation (integration test) - Build finished. 
     ✔︎ pull request validation (nightly) - Build finished. 
     ✔︎ pull request validation (soundness) - Build finished. 

#161
  • Loading branch information
czechboy0 authored Aug 2, 2023
1 parent bf49be1 commit ea1a1db
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ The configuration file has the following keys:
- `types`: Common types and abstractions used by generated client and server code.
- `client`: Client code that can be used with any client transport (depends on code from `types`).
- `server`: Server code that can be used with any server transport (depends on code from `types`).
- `additionalImports` (optional): array of strings. Each string value Swift module name. An import statement will be added to the generated source files for each module.
- `additionalImports` (optional): array of strings. Each string value is a Swift module name. An import statement will be added to the generated source files for each module.
- `featureFlags` (optional): array of strings. Each string must be a valid feature flag to enable. For a list of currently supported feature flags, check out [FeatureFlags.swift](https://github.com/apple/swift-openapi-generator/blob/main/Sources/_OpenAPIGeneratorCore/FeatureFlags.swift).

### Example config files

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ While it's encouraged to get feedback by opening a pull request with a proposal
4. Open a pull request with your proposal and solicit feedback from other contributors.
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.
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.
7. The proposal is considered Approved once the implementation and proposal PRs have been merged.
7. The proposal is considered Approved once the implementation, proposal PRs have been merged, and, if originally disabled by a feature flag, feature flag enabled unconditionally.

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.

Expand All @@ -29,6 +29,7 @@ If you have any questions, tag [Honza Dvorsky](https://github.com/czechboy0) or
- Awaiting Review
- In Review
- Ready for Implementation
- In Preview
- Approved
- Deferred

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Feature name (template proposal)
- Issue: [apple/swift-openapi-generator#1](https://github.com/apple/swift-openapi-generator/issues/1)
- Implementation:
- [apple/swift-openapi-generator#1](https://github.com/apple/swift-openapi-generator/pull/1)
- Feature flag: `proposalNNNN`
- Affected components:
- generator
- runtime
Expand Down

0 comments on commit ea1a1db

Please sign in to comment.