-
-
Notifications
You must be signed in to change notification settings - Fork 497
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Quest: Feature flags for upcoming Edition features #2047
Comments
I do understand the plan and agree with it 👍. I also do think it represents what we discussed on 6/17. |
Overall this looks like a good way forward! Some thoughts:
Update: we discussed it again during the Learning core team meeting and clarified the issue. Sounds good to me 👍 |
Will feature flags be in query params -- so that we can link to specific areas with flags enabled/disabled? (I think we should!) |
I agree with @IgnaceMaes -- I prefer the I also agree that TS examples are different than a feature flag since it would be a feature flag that lived forever. |
@kategengler I added the examples to explain what will happen with Typescript. We probably need to not call these things "feature flags" in the code because it is implying that they will get deleted eventually. TS is a "sub-flag" in my example. Looking at the examples does it work the way that you expect it to? |
I think the examples are fine but I do think you have two different concepts, even if they may share implementation details. One is for a long-lived feature of the guides to toggle between different types of examples (TS vs JS) and another is feature flags which are expected to be deleted eventually. |
Ed and I started thinking about actually writing documentation under this scheme -- we found that it is a bit awkward because each flag needs an on and and and off state. For example, If updating the Quick Start for template tag, we'd need to fence both the old hbs way and the new template-tag way. |
This issue is intended to be a holding place for everything related to the idea of "feature flags" to unblock writing documentation for upcoming Editions - specifically Polaris.
Summary of the problem
As part of our last Edition (Octane) we started a long-running branch that was open for almost a year. This branch was challenging to keep up to date and we needed to constantly merge our work between main and our branch to make sure that updates were not lost over the course of that year. Learning from the challenges of maintaining that long-running branch we propose that we implement a feature-flag strategy for the up-coming Edition Polaris.
Motivation of feature flags
If we use a feature-flag strategy we can merge any updates to the documentation straight to the
main
branch without needing to keep a long-running branch up to date. It will also mean that the production deployment of the guides will be the same place that you will be able to see the "Polaris preview guides" by toggling a flag that says you want to see the preview guides. When Polaris becomes the released Edition then the process of releasing is to just delete the feature flag for that version of the guides 👍Requirements
data-flag="something"
structure so we don't use classes to define structure but this could be discussed and decided upon laterExample
To clarify some of the specifics of the above, I want to provide an example of a feature flag and a sub-flag that we are currently contemplating adding to the guides.
We want to add the
polaris
feature flag that will allow us to start writing preview documentation for the upcoming Polaris edition. One of the "Pillars of Polaris" is full native Typescript support, but we don't want to force people to use typescript if they don't want to so we want to provide a toggle that can switch between Javascript and Typescript.So starting with the current version (5.10) we want people to see a toggle for
Polaris preview docs
, but we will not show them the toggle for Typescript until after they have pickedPolaris preview docs
.This also means that anyone viewing the previous guides version(s) will not see the toggle for
Polaris preview docs
and won't be able to view any of the docs in Typescript.The version after Polaris is made the default edition (e.g. 6.8) you will no longer be able to switch to the
Octane
version of the docs, and the Typescript toggle will remain. At this point the typescript feature-flag is no longer going to be a "sub-flag" and will essentially be "promoted" to a top-level flag.Markdown example for guides version with Polaris preview e.g. 5.10
Markdown example for guides version after Polaris is the default e.g. 6.10 (guessing)
Process
Once there is broad agreement on this plan among the core teams we will start putting together more concrete tasks on how to make this plan happen. This issue will either become a series of tasks in a list or it will link to a project that will keep track of the work 👍
The text was updated successfully, but these errors were encountered: