Skip to content
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

Support "Feature Preview" rollout of settings/defaults. #134684

Closed
JacksonKearl opened this issue Oct 8, 2021 · 8 comments
Closed

Support "Feature Preview" rollout of settings/defaults. #134684

JacksonKearl opened this issue Oct 8, 2021 · 8 comments
Assignees
Labels
feature-request Request for new features or functionality settings-editor VS Code settings editor issues telemetry Telemetry system issues verified Verification succeeded
Milestone

Comments

@JacksonKearl
Copy link
Contributor

JacksonKearl commented Oct 8, 2021

A few times now we've done "Phased Rollouts" of new feature (welcome, native notebooks, etc.), default setting values. It'd be nice to have some sort of standardized way both for

  • VS Code core to have phased roll-out of a change in default setting values (including new feature flags)
  • Users to have a way to view a list of the "experimental" changes currently available/enabled, ideally with a link to a tracking issue on GH

Perhaps an @experiments tag in settings editor could help here? Or something new, maybe taking inspi from GitHub's "Feature Preview" modal.

cc @roblourens @digitarald @luabud

@JacksonKearl JacksonKearl self-assigned this Oct 8, 2021
@JacksonKearl JacksonKearl added the feature-request Request for new features or functionality label Oct 8, 2021
@JacksonKearl JacksonKearl added this to the Backlog milestone Oct 8, 2021
@JacksonKearl JacksonKearl added settings-editor VS Code settings editor issues telemetry Telemetry system issues labels Oct 8, 2021
@rzhao271 rzhao271 self-assigned this Oct 15, 2021
@sbatten
Copy link
Member

sbatten commented Nov 2, 2021

Some thoughts on this from the experiment service (now called workbench assignment service) side...

@JacksonKearl had already made all the technical changes to override experiment values (explicitly on or off).

The configuration service cannot rely on the assignment because it needs to rely on settings for overrides, so the settings editor should do the merging logic. Right now, overrides are hidden settings with fixed names based on the treatment variables. I would expect this could be done by adding explicit settings that would allow you to describe the experiment. The settings editor would then need to handle the different states (am i opted in or out by choice or by the treatment group).

@digitarald
Copy link
Contributor

Love this for many reasons, as it naturally allows the rollout both via outreach leading to manual opt-in and experiments leading to opting in a random set of users.

To support this for extensions, I'd love to see this '@experiment' tag supported in settings contributed by package.json as well.

@sandy081
Copy link
Member

@JacksonKearl @sbatten Can you please shed some light here - what is expected from configuration land?

@rzhao271 rzhao271 modified the milestones: November 2021, December 2021 Nov 24, 2021
sandy081 added a commit that referenced this issue Nov 26, 2021
@sandy081 sandy081 modified the milestones: December 2021, November 2021 Nov 26, 2021
@sandy081
Copy link
Member

@digitarald @rzhao271

Added support for overriding default values of experimental settings through experiments service. This works in the following way:

  • A setting can be tagged experimental using experimental tag
  • Workbench gets default values for these settings through experiments service (workbench assignment service) by passing the key config.${setting}. Eg: config.workbench.welcomePage.preferReducedMotion
  • Workbench overrides these defaults values for these settings.

@JacksonKearl - You can adopt your setting workbench.welcomePage.preferReducedMotion by adding experimental tag and workbench will update the default value.

@sandy081
Copy link
Member

Let me know if there is any thing needs to be done here. Otherwise we are good to close it.

@sandy081 sandy081 added the verification-needed Verification of issue is requested label Nov 29, 2021
@sandy081
Copy link
Member

@JacksonKearl / @digitarald Can you please verify this?

@luabud
Copy link
Member

luabud commented Nov 30, 2021

Thanks a lot for working on this, @sandy081! I verified it works 🥳 I added "tags": ["experimental"] to the python.formatting.provider setting in the Python extension. Then I set up the experiment in the control tower for my machine only with config.python.formatting.provider set to black, and it correctly enabled black as my default formatter:

image

It also shows correctly when auto completing the setting:

image

@luabud luabud added verified Verification succeeded and removed verification-needed Verification of issue is requested labels Nov 30, 2021
@digitarald
Copy link
Contributor

Also 👍 from me. I verified with @sbatten who added the experimental flag to workbench.experimental.layoutControl.enabled.

guibber pushed a commit to guibber/vscode that referenced this issue Nov 30, 2021
@github-actions github-actions bot locked and limited conversation to collaborators Jan 13, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feature-request Request for new features or functionality settings-editor VS Code settings editor issues telemetry Telemetry system issues verified Verification succeeded
Projects
None yet
Development

No branches or pull requests

7 participants