-
Notifications
You must be signed in to change notification settings - Fork 29.8k
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
Allow extensions to publish beta releases and users to opt-in to them #15756
Comments
I would very much like this myself. |
Why not putting those experimental features behind a configuration setting and have the opt-in mechanism be toggling that setting to |
This is an option, but I think it has some drawbacks
None of these issues are huge, but since the Insiders builds work so well and it seems like a similar scenario it seemed like a good request to raise for discussion :) |
I agree, this would be a really useful feature. Right now I'm distributing our beta releases via VSIX downloads, but that is cumbersome and I don't reach many folks that way. Hiding things behind a feature flag wouldn't really help. For example, we are about to release a new version that changes a lot of code, the whole architecture of the extension. There is no way that we could have had that behind a feature flag. |
I would love to see this as well -- while feature flags work in certain cases, it doesn't cover them all. It also provides a sanity check and limits the "damage" of a bad release. And installing via vsix is just too user unfriendly to really be viable imo -- as it is completely manual. |
Just to kick this one again, because the issues surrounding the manual install and REQUIRED uninstall of vsix causes lots of pain for users and seemingly creates cases of corrupt installations -- I've definitely seen an up tick in GitLens issues caused by vsix/marketplace versions on top of one another. |
Yeah, I meant to post back here - when I did a beta release a few months ago I had reports of issues installing/uninstalling the vsix: |
I gave up on vsix testing because of the complications mentioned above. Yesterday I shipped a huge bug that only occurred if I'm starting to think about publishing a second version of my extension with Beta in the name to allow people to choose to test new releases earlier (seems like at least one other has done this). |
@sandy081 Sounds good! Am I right in thinking november milestone is 1.19 and not released to stable yet? I'll try and do some testing latest this/next week. |
Yes 1.19 will be released to stable this week. Let me know if you still want this feature to be opened after that. |
@sandy081 Haven't had chance to test it yet; but I think there's still value in this feature even if vsix works better than it did, for example:
|
This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines. Happy Coding! |
😔 |
@isidorn Thanks for the hard work. We're looking forward to a way to publish Type Hierarchy feature as a preview feature and pre-release extension is a great choice. However, the related APIs are in proposed state (see microsoft/language-server-protocol#1231 (comment) and https://github.com/microsoft/vscode-languageserver-node/blob/main/client/src/common/proposed.typeHierarchy.ts), enabled by The question is that we want to find a way to take advantage of the pre-release channel to make more users use our preview features with proposed APIs, is that possible? Or is there any consideration about this? |
@CsCherrYY there have been some discussions around this but nothing definite yet. We want to make sure that the |
Is there some way to find out from code whether the currently running extension was installed as a pre-release version or not? We want to send telemetry to different destinations, depending on whether a user is running a pre-release version or not. |
A version cannot be both pre-release and not pre-release, so if you manage the extension, then you are in control of the process for launching pre-release versions and therefore know which versions are pre-release. If you follow the suggestions outlined in the documentation:
then you can easily check the current extension version and act accordingly based on whether is an even or odd minor release. |
@davidanthoff exactly as @TwitchBronBron explained: you can look at your extension version and act accordingly. |
There's a lot to read through in this issue and I wasn't sure what the expected behavior is with regards to 'insiders'. Should insiders users automatically be updated the prerelease of an extension? This isn't currently happening for the Jupyter Extension. I had to explicitly pick 'Switch to prerelease version' |
Uh oh...if VS Code Insiders users have to manually opt-in, we're likely to see our Insiders usage drop by a lot. @bobbrow Are you sure we should switch to the new mechanism if that's the case? And/or can we get VS Code to change the behavior first? |
We support automatically migrating separate extensions to the pre-release version of the main extension - extension authors just have to inform us they want this. |
@isidorn I'm not sure that's going to work? Won't it force all users to the latest? For me I didn't want the latest, but when I do, it should show me the latest is the prerelease version. That's the behavior we have right now. Users pick when they upgrade, but the recommended upgrade is the most recent insiders only build. |
@gjsjohnmurray correct. |
@rchiodo you would just do that code for your insider version of the extension. So that way you would transition only your insider users to the new pre-release version. |
@isidorn that's the behavior with the jupyter extension not already installed. But if it was already installed, the update notification won't pick prerelease. And I believe the command suggested would force an update? Maybe I'm wrong about that. |
I guess it won't be terrible to force prerelease if the extension isn't already in insiders for a specific version (one time thing). Maybe we can add code to ask the user on insiders. |
@rchiodo there is just one minor thing missing to have this flow super nice #139528 And yes. So my full suggestion is the following:
Hope I was more clear now. Thank you |
Also another way to ensure users don't automatically get switched to a non-insiders release (if that is what you want) -- you can have your insiders versions always be greater than stable version. For example in GitLens I am planning to keep my |
GitHub Pull Requests and issues does the same thing. Before releasing a new stable, we will always release a new insiders with the increased version. |
Apologies if this has come up before; I'm unable to find any related issues.
It would be cool to be able to publish extensions in a beta form (similar to Code Insiders) so that they can be run "in production" with real users that have opted-in. This would reduce the disk in publishing an extension because you can push it to a smaller number of users for testing (I probably don't need to sell this to you, I guess you have Insiders for very similar reasons).
I know we can package and distribute extensions ourselves for now, but it's not as easy (eg. updating is not automatic).
I originally thought the "Preview" flag might've provided this functionality but unless I've overlooked something, it does not seem to.
The text was updated successfully, but these errors were encountered: