microsoft / vsmarketplace

Customer feedback and issue tracker repository for Visual Studio Marketplace
MIT License
39 stars 12 forks source link

Pre-release extensions decorations in the UI #264

Open isidorn opened 2 years ago

isidorn commented 2 years ago

VS Code has released support for pre-release extensions. Documentation can be found here.

Currently the Marketplace always shows the latest version of the extension on the Marketplace site. After discussing with @SaiKanth007 we believe that the easiest solution for the Marketplace would be to offer visual cues to the user if the current version is a pre-release version.

Here are some suggestion how we could improve this visually:

  1. Render a pre-release decoration next to the version if the version is pre-release
  2. Render pre-release decoration in the version history as @weinand suggests here https://github.com/microsoft/vsmarketplace/issues/262
  3. Render a small info banner in the header of the extension that would have some text "Latest version of the NAME extension is a pre-release version. To explore and install a release version click here." @SaiKanth007 do you already have some "info banner" space we could reuse for this?

To detect if a version of an extension is pre-release check if an attribute "Microsoft.VisualStudio.Code.PreRelease": true is present.

Timing: we expect multiple extensions to jump on this in the next 3 months. We believe that the solution we are proposing is low hanging, so it would be great if we could get something in the next couple of months.

fyi @sandy081 @prashantvc @misolori @alexr00 @pratikgawali for ideas

axelson commented 2 years ago

Shouldn't the default version that is shown in the marketplace be the stable version? Then from there if there is a newer pre-release version there could be a link to the pre-release.

isidorn commented 2 years ago

@axelson yes, that was our initial idea as well. However this would be a bigger change on the MP side, so we decided to use UI decorations as help instead. Reason is that for this topic we want to focus MP engineering effort on fully supporting semver versioning.

axelson commented 2 years ago

Ah, okay. I guess my thinking is that my extension will nearly always have a pre-release since I want the pre-releases to be generated automatically from the most recent branch. What do you mean by fully supporting semver versioning?

weinand commented 2 years ago

@axelson Semantic versioning (aka "semver") supports pre-release versions (see https://semver.org/#spec-item-9). With that we would not have to use our own numbering convention to denote pre-release versions (e.g. even vs odd minor numbers). Today the Marketplace does not support semver's pre-release versions.