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

Marketplace Extension Manifest - SemVer not actually supported #50

Open
glenn2223 opened this issue Apr 1, 2021 · 19 comments
Open

Marketplace Extension Manifest - SemVer not actually supported #50

glenn2223 opened this issue Apr 1, 2021 · 19 comments
Labels
enhancement New feature or request
Milestone

Comments

@glenn2223
Copy link

Sorry if this isn't the correct place to bring this issue up.


Site ref: https://code.visualstudio.com/api/references/extension-manifest#fields
Github doc: https://github.com/microsoft/vscode-docs/blob/a641ec03073b116b12b9f5fcee95c024a79c6899/api/references/extension-manifest.md

It states under version that it's SemVer compatible. However, if I suffix a version with -rc.1 - which SemVer document, and have even used themselves (figure 1) - I get an error (figure 2)

Table row copied from the page

Name Required Type Details
version Y string SemVer compatible version.

image
(figure 1 - SemVer's own version of release candidate)

image
(figure 2 - Error displayed saying that only #.#.#.# is allowed)

@gregvanl
Copy link

gregvanl commented Apr 1, 2021

Hi @glenn2223 This looks like a VS Code product issue so moving to the microsoft/vscode repo.

@gregvanl gregvanl transferred this issue from microsoft/vscode-docs Apr 1, 2021
@gjsjohnmurray
Copy link
Contributor

I think this is a constraint of Marketplace, so probably belongs at https://github.com/microsoft/vsmarketplace

@glenn2223

This comment has been minimized.

@glenn2223
Copy link
Author

A new development, initially reported here

So, as well as this issue I have reported here - which I will report at the suggested link, there's also a new issue with VS Code

Issue with VS Code

My extension isn't installing or is being automatically uninstalled, there's no errors in the code as a drag & drop of a .vsix file works

Steps to replicate: (brief)

  1. Package the extension with version 5.0.0 (preview)
  2. Upload it
  3. Make changes
  4. Package with the same version
  5. Upload it
  6. No one can install the extension or it automatically get uninstalled

Steps: (full breakdown)

  1. Package the extension with version 5.0.0-rc.1 (preview)
  2. Create a release on GitHub and add the package to it
  3. Try to upload & get this error - only #.#.# is allowed
  4. Package again, this time with version 5.0.0 (preview)
  5. Upload this to the marketplace (upload successful)
  6. Make changes
  7. Package the extension with version 5.0.0-rc.2 (preview)
  8. Create a release on GitHub and add the package to it
  9. Package again - as I know it won't work - again with version 5.0.0 (preview)
  10. Upload this to the marketplace (upload successful)
  11. No one can install the extension or it automatically get uninstalled

@sandy081
Copy link
Member

sandy081 commented Apr 6, 2021

It has to be supported by Marketplace, so assigning to @fiveisprime ( I could not simply transfer it )

@fiveisprime fiveisprime removed their assignment Apr 7, 2021
@fiveisprime fiveisprime transferred this issue from microsoft/vscode Apr 7, 2021
@isidorn isidorn added the enhancement New feature or request label Dec 10, 2021
@isidorn isidorn added this to the Backlog milestone Dec 10, 2021
@isidorn
Copy link
Collaborator

isidorn commented Dec 10, 2021

This is something which we definitely want to support, but is not on the immediate plan. This requires the change of the MP infrastructure which will take some time.

@Eskibear
Copy link
Member

Eskibear commented Dec 9, 2022

Any updates or concrete plan to support SemVer in marketplace?

Here VMware does build pre-release vscode extensions (see bottom section of this page), following SemVer. But they are not able to publish to marketplace using the pre-release channel, we have to manually download .vsix files and install/update.

@isidorn
Copy link
Collaborator

isidorn commented Dec 9, 2022

@Eskibear there are plans to support SemVer versioning in the VS Marketplace. But I do not think that this will happen in the next 12 months.
@prashantvc might have more details.

@prashantvc
Copy link
Contributor

@Eskibear It's on our backlog, we are planning to support SemVer for limited set of developer/extension authors first. It will have certain limitation in the beginning, we would love to chat with on these limitation and trade off to support semver

You can block my calendar here

// @amit-kulkarni-in

@TwitchBronBron
Copy link

@Eskibear there are plans to support SemVer versioning in the VS Marketplace. But I do not think that this will happen in the next 12 months. @prashantvc might have more details.

It's been roughly 15 months since this comment. Any chance we could get an update on the current status of this feature?🤞

@prashantvc
Copy link
Contributor

prashantvc commented Mar 20, 2023

Unfortunately, I no longer work with the Marketplace team.

@xavierdecoster can provide more details

@seaniyer seaniyer assigned seaniyer and unassigned prashantvc Apr 12, 2023
@triwav
Copy link

triwav commented Sep 12, 2023

Any update on this? This makes providing extension betas to users limited to providing them a VSIX manually. Would love to see this added.

@alexr00
Copy link
Member

alexr00 commented Sep 13, 2023

@triwav I maintain https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github. We do still use VS Code's pre-release extension mechanism, but we've had to do something unintuitive:

We've been doing this since extension pre-releases were supported and it works.

@Eskibear
Copy link
Member

Eskibear commented Sep 13, 2023

Though there can be various kinds of workaround, they are workaround. It would be much more helpful if marketplace support semantic version natively, to get rid of some limitation.
For example, as far as I know, max length of patch version is 10, meaning I cannot use a version like 1.0.yyyyMMddHHmmss. In the workaround mentioned above, vscode team uses yyyyMMddHH as patch version, causing the trouble if I build multiple private packages within the same hour.
And it seems that identifier is not supported either, meaning I have to use the patch version as an "identifier".

Before that happens (if possible), VS Code team's versioning mechanism seems to be a good workaround.

@andyleejordan
Copy link
Member

We do still use VS Code's pre-release extension mechanism, but we've had to do something unintuitive:

  • Odd numbered releases are pre-release
  • Even numbered are stable

This is exactly what we settled on for the PowerShell Extension for VS Code too. I documented it here. It...works, it's just quite the workaround.

I also note a few other things that don't work with pre-release:

  • like the preview field of package.json can't be used, it'll apply to both stable and pre-release,
  • similarly we can't ship our product's preview-branded icon for the pre-release either.

@triwav
Copy link

triwav commented Sep 13, 2023

I think the even odd would be confusing to users not aware that's what you were doing no?

@andyleejordan
Copy link
Member

They don't really see it. If they're on the stable channel, they just get new versions like x.0.0, x.2.0, x.4.0, and if they're on the pre-release channel they get x.1.0, x.3.0, x.5.0. Depending on how you release them they might get x.0.0, x.1.0, x.2.0, which while that sounds ideal actually means you've done a stable release with a version > the latest pre-release version...which causes the VS Code marketplace to stop displaying the availability of a pre-release channel at all.

Look I'm very glad they got pre-release channels working but it's definitely a "minimal viable product." There's a lot broken and missing still that's caused extension developers a lot of headaches. But they were very hopeful in onboarding folks who had existing separate "stable" and "pre-release/preview" extensions.

@Malix-Labs
Copy link

Problem

  • Full semver standard is not supported (only MAJOR.MINOR.PATCH) (see VSCode API Docs)
    • Pre-release versions are forced to be non-standard (see https://semver.org/#spec-item-9).
      • VSCode Docs gave a non-standard workaround:

        we recommend that extensions use major.EVEN_NUMBER.patch for release versions and major.ODD_NUMBER.patch for pre-release versions. For example: 0.2.* for release and 0.3.* for pre-release. (source)

        Whereas not using an odd/even arbitrary rule for minor but having non-linear patch for stable releases would be less arbitrary and confusing.

    • Pre-release are defined by a flag (--pre-release)

Solution

  • Supporting full semver
    • Would allow pre-release semver to be standard (see https://semver.org/#spec-item-9)
    • No more non-standard workaround (source)
    • Pre-release could be defined by semver instead of a flag (--pre-release)

Notes

@eliericha
Copy link

Hello,

Is there any update regarding full support of semver in the VS Marketplace?

In the past @xavierdecoster has been mentioned as a PoC for Marketplace matters. Is that still the case? :)

Thanks!

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

No branches or pull requests