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

Marking new features as “Beta" #275

Open
zmerr opened this issue May 29, 2022 · 5 comments
Open

Marking new features as “Beta" #275

zmerr opened this issue May 29, 2022 · 5 comments

Comments

@zmerr
Copy link

zmerr commented May 29, 2022

Is your feature request related to a problem? Please describe.

After a new feature is added to a released in Metals, it takes some time for us to make sure it is working bug free.

Describe the solution you'd like

I think it is a good idea to be able to mark new features as Beta with a small sign added somewhere next to them for both warning the users that this is new and might have problems, and for hinting that they might consider reporting any bugs they find with the functioning of the new feature.

Another benefit is that, this would improve the confidence of users in the correct functioning of metals, by setting the right exceptions about the bug prone functionalities.

Describe alternatives you've considered

assuming that new features are bug free unless something is reported.

Additional context

Functionalities such as the adding or removal of braces, or map/flatMap to for comprehension conversion, are complicated with the worry that some special cases might not have been covered. Adding the beta flag to these features makes the users more careful when using such new features.

Search terms

beta labeling features

@tanishiking
Copy link
Member

@zmerr Hey, thank you for raising the issue!
I personally don't think it''s a good solution to add Beta flag to Metals because

  • We can use server version setting instead of Beta flag.
    • Beta flag is useful practice for products that provide one or two versions to end users, and enable users to switch between normal version and beta version.
    • However, users can switch versions (even nightly ones) of Metals.
  • I believe unstable features shouldn't be released (though sometimes we unintentionally introduce bugs).
    • If Beta is more like experimental feature flag, I'm in.

As of flatMap to for comprehension code action, what do you think about adding "(beta)" to the title of code action?

@zmerr
Copy link
Author

zmerr commented May 30, 2022

@tanishiking Thank you for sharing your thoughts.

Beta flag is useful practice for products that provide one or two versions to end users, and enable users to switch between normal version and beta version.

I have seen examples of just certain features getting flagged as Beta in other software products, instead of the whole release. what do you think of that one?

As of flatMap to for comprehension code action, what do you think about adding "(beta)" to the title of code action

Well, yes, I think that is a good idea. This way, the user would not just tap “switch to flatMap” and then later realize that the semantic of their code had been changed as a result.

@tanishiking
Copy link
Member

tanishiking commented May 30, 2022

My concern is like, release features under beta flags, and nobody uses it. I prefer to expose all features as much as possible (maybe with some cautions), and receive more feedback.

Yeah, I'm aware of softwares releases features under beta flag. I think they basically means "Please DO NOT use this one in production, that may wreck your whole environment".
In the future, Metals may need a beta flag for some features that may break users' environment (e.g. sbt's usePipeline, or Scala3's cc flag). But, I think it's not now (as we don't have such one in our release candidate).

In terms of the code action, users can safely switch back and forth by undo / redo, so I believe we don't need to hide them under beta flag :)

@zmerr
Copy link
Author

zmerr commented May 30, 2022

@tanishiking

I prefer to expose all features as much as possible (maybe with some cautions), and receive more feedback.

hmmm…. that’s a thing🧐

@tgodzik
Copy link
Contributor

tgodzik commented May 30, 2022

Yeah, I'm aware of softwares releases features under beta flag. I think they basically means "Please DO NOT use this one in production, that may wreck your whole environment".

Yeah, I think we should not let the users think that something can break. We can add a note in the release notes to report any issues they see.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants