build-time feature flags aka sveltable features, deprecations, etc - #1247
NullVoxPopuli wants to merge 4 commits into
Conversation
|
I like the general goal but I think this RFC is talking about multiple different things without explaining them. These are separate concepts (some of which are layered on each other):
The RFC seems to want to try to leave all that mess untouched and just change the mechanism underneath, but that just adds to learning burden. I think we can design a clear and coherent small new core and simultaneously deprecate all the old things with deprecation guides that show how you can do each case with the small new core. We don't need to retcon how existing flags work. They can continue working exactly the same until 8.0 or whenever the deprecation period ends. And that doesn't need to slow down adoption -- because a new flag in the new small core can strip the old behavior away immediately. For the new small core, I think we go even simpler than what you've described. Something like:
I think it's reasonable to hash out that small core and deprecate the old things in a single RFC, because the two are so entwined. We don't want to ship a new thing without being sure it actually replaces all the old things, and we don't want to deprecate the old things without having their clear replacement. The things to deprecate probably include:
|
|
Discussing what the new APIs replace in the RFC is a good thing to do. I still think the deprecation RFC should follow the replacement RFC. When we combine both the new feature and the deprecations that follow on into one RFC we lose a lot of fidelity in tracking the deprecations and the RFC. As part of making a new feature 'Recommended' we open the deprecation RFCs that stem from it and ideally at that point the community is happy with the new feature and ready for the old ways to go away. |
Summary
This pull request is proposing a new RFC.
To succeed, it will need to pass into the Exploring Stage, followed by the Accepted Stage.
A Proposed or Exploring RFC may also move to the Closed Stage if it is withdrawn by the author or if it is rejected by the Ember team. This requires an "FCP to Close" period.
An FCP is required before merging this PR to advance to Accepted.
Upon merging this PR, automation will open a draft PR for this RFC to move to the Ready for Released Stage.
Exploring Stage Description
This stage is entered when the Ember team believes the concept described in the RFC should be pursued, but the RFC may still need some more work, discussion, answers to open questions, and/or a champion before it can move to the next stage.
An RFC is moved into Exploring with consensus of the relevant teams. The relevant team expects to spend time helping to refine the proposal. The RFC remains a PR and will have an
Exploringlabel applied.An Exploring RFC that is successfully completed can move to Accepted with an FCP is required as in the existing process. It may also be moved to Closed with an FCP.
Accepted Stage Description
To move into the "accepted stage" the RFC must have complete prose and have successfully passed through an "FCP to Accept" period in which the community has weighed in and consensus has been achieved on the direction. The relevant teams believe that the proposal is well-specified and ready for implementation. The RFC has a champion within one of the relevant teams.
If there are unanswered questions, we have outlined them and expect that they will be answered before Ready for Release.
When the RFC is accepted, the PR will be merged, and automation will open a new PR to move the RFC to the Ready for Release stage. That PR should be used to track implementation progress and gain consensus to move to the next stage.
Checklist to move to Exploring
S-Proposedis removed from the PR and the labelS-Exploringis added.Checklist to move to Accepted
Final Comment Periodlabel has been added to start the FCP