Skip to content

Proposal: Experimental features interface / API #7026

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

Open
loujaybee opened this issue Dec 2, 2021 · 6 comments
Open

Proposal: Experimental features interface / API #7026

loujaybee opened this issue Dec 2, 2021 · 6 comments
Labels

Comments

@loujaybee
Copy link
Member

loujaybee commented Dec 2, 2021

This issue is a proposal to implement for a product-wide approach for experimental features in Gitpod.

Context / Motivations

We have the concept of "VS Code Insiders", an experimental pre-release designed for power-users to be able to test out features in VS Code before they're rolled out to the full user base (see below) [1].

But the IDE interface is now starting to get cluttered, and the distinction between pre-release versions isn't very clear (it already was not entirely clear what the insider's version is).

We are now considering applying the same approach (insiders/early access IDE's) for EAP [1] versions of JetBrains IDE's, where we have a pre-release version and a stable.

Additionally, we've had challenges in the past of users not knowing when a feature is a beta / pre-release vs a stable one (e.g. #8783). This causes potential to upset or confusion for users and causes additional support burden due to increased GitHub tickets, questions from users, etc. The docs labels help somewhat, but do not guarantee that a user understands fully the implications of an experimental feature:

image

We have beta labels in-app, but again, do not ensure that a user is entirely aware of implications of an experimental feature:
image

The same challenge applies also for experimental commands within gp cli

Solution

  • A clear description of the experimental feature (to the user) e.g. what the feature does, what are the impacts
  • A way to toggle on/off the feature

From a technical design perspective, the solution needs to be able to be easily plugged into other aspects of the application, so a logical API and/or interface is essential. The solution should also play nicely with any existing feature flag behaviours, and potentially could be used for A/B testing in the future. We'd also need to consider how this might look when integrated with other API's such as gp CLI.

Related: #6826 (comment)
Related internal Slack discussion.

CC: @jakobhero

@loujaybee
Copy link
Member Author

Relates to #7081

@loujaybee
Copy link
Member Author

CC @mikenikles — it would be useful if this could also apply to changes in the docs, as I'm thinking about how we ensure docs updates are synced also with feature updates, I believe you were thinking about moving docs into the main repo somehow so that we can review both at the same time?

@loujaybee
Copy link
Member Author

Note: It has been discussed elsewhere to give community heroes some forms of early access to beta features, maybe this feature can help facilitate that, also.

@pawlean
Copy link
Contributor

pawlean commented Dec 16, 2021

Note: It has been discussed elsewhere to give community heroes some forms of early access to beta features, maybe this feature can help facilitate that, also.

This sounds awesome!

@mikenikles
Copy link
Contributor

Yes, I have an experimental PR at https://github.com/gitpod-io/website/pull/1367.

The technical limitation we had in April no longer exists. There are a few tasks listed in the PR that need to happen first though.

@stale
Copy link

stale bot commented Mar 17, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the meta: stale This issue/PR is stale and will be closed soon label Mar 17, 2022
@ghuntley ghuntley added the meta: never-stale This issue can never become stale label Mar 24, 2022
@stale stale bot removed the meta: stale This issue/PR is stale and will be closed soon label Mar 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants