Closed pascalberger closed 5 years ago
@AdmiringWorm @gep13 Opinions?
IMO, I don't believe there is a need to have a package for specifically for latest
version, IMO (and what I would do), is to only have the specific versions and put a dependency on the version of vscode the support was added in.
How should we handle the extensions which are still at version 0.x while the current manual package is already at 1.0?
Unfortunately, they can't be handled with specific versions until they are above version 1.0. Unless we deprecate the package, and resubmit under a new name though. Which probably wouldn't make sense.
OK with this. I would suggest to wait with switch to specific versions until https://github.com/Microsoft/vscode/issues/63903 is fixed (targeted at February release)
I'm actually considering a different option, which would allow us to start using specific versioning right away, and keeping backward compatibility with previous versions of vscode.
While it won't help the extensions we can't update yet, nor would it disable auto-update, but I still think it may be useful.
Would need to change the extension you submitted earlier though chocolatey-vscode.extension
, and then depend on that one.
@AdmiringWorm You mean by extending the Install-VsCodeExtension
function to detect the installed version of Visual Studio Code and either install latest version or specific version?
Not sure if this makes sense or leads to more confusion for users
That is actually what I was thinking of, don't really think it would lead to more confusion for users.
Most likely, most of them already have updated to a version that support specific versioning, those that haven't are most likely businesses I think.
Basically it would be done silently, or just output a warning to the user and recommending them to update vscode, before installing the latest version instead
As I said, I'm currently only considering it. Not committed myself to anything
A package has been submitted already for this with the -latest
extension. I agree with @AdmiringWorm with not being keen on the idea of that extension. From what I can see above no decision has yet been made?
I agree with @pauby, I think a package should always install the version it was intended to. I believe it's even in the requirements for moderation: https://chocolatey.org/docs/moderation#requirements-and-guidelines
So, common opinion is:
Just to be clear:
1. Visual Studio Code Extension Package should install the exact same version of the extension as the Chocolatey package has
So that means for this that version 1.0.0 of the extension would be installed?
3\. Extensions have a dependency to a Visual Studio Code version which allows to implement the above two points or fallback to install latest version of the extension and let Visual Studio Code do the auto-update in previous versions
Is this a .nuspec dependency, logic inside chocolatey-vscode.extension
or the chocolateyInstall.ps1
of the package?
4\. There will be no support to installing extensions through Chocolatey and let Visual Studio Code do the updating starting with a certain versions of Visual Studio Code and updates need to be done through Chocolatey.
Can you explain this one?
I just tried to summarize what peoples opinion are.
1. Visual Studio Code Extension Package should install the exact same version of the extension as the Chocolatey package has
So that means for this that version 1.0.0 of the extension would be installed?
This package should not exist if I get peoples opinions correctly
3\. Extensions have a dependency to a Visual Studio Code version which allows to implement the above two points or fallback to install latest version of the extension and let Visual Studio Code do the auto-update in previous versions
Is this a .nuspec dependency, logic inside
chocolatey-vscode.extension
or thechocolateyInstall.ps1
of the package?
What's your opinion?
4\. There will be no support to installing extensions through Chocolatey and let Visual Studio Code do the updating starting with a certain versions of Visual Studio Code and updates need to be done through Chocolatey.
Can you explain this one?
As I've understand the votes people have given, then they prefer that Chocolatey packages always install the specific version (so Chocolatey package 1.2.3 installs Software version 1.2.3). Means that we install the specific Visual Studio Code extension from a Chocolatey Package for a Visual Studio Code extension, which also means that Visual Studio Code won't take care of updating the extension afterwards (actually it does in the current version, but there's an issue to change this behavior)
But as said I just tried to summarize what I understood peoples opinions are on this topic to try to come to a conclusion. I personally don't have strong opinions. I see use cases that people might want to install just the latest version and have Visual Studio Code do the auto-update, therefore my suggestion to provide two packages for these different use cases. But if common opinion is that this is not how Chocolatey packages should work I'm completely fine with it.
If I've summarized it wrongly or there are different opinions please speak out.
@pascalberger I think you summarized it quite well.
@pauby said
3\. Extensions have a dependency to a Visual Studio Code version which allows to implement the above two points or fallback to install latest version of the extension and let Visual Studio Code do the auto-update in previous versions
Is this a .nuspec dependency, logic inside
chocolatey-vscode.extension
or thechocolateyInstall.ps1
of the package?
That would most likely be a summary from my previous comment regarding adding a fallback in the chocolatey-vscode.extension
, no need to have that in the install script if I add it to the extension itself.
@mkevenaar I agree with @pauby, I think a package should always install the version it was intended to. I believe it's even in the requirements for moderation: chocolatey.org/docs/moderation#requirements-and-guidelines
hmm, I had forgotten about the requirement of package version == software version. I guess that settles that then, although when looking at the create packages docs, it's mentioned as a recommendation: https://chocolatey.org/docs/create-packages#versioning-recommendations
The best recommendation is to use the same versioning that the installable/portable application uses.
So there is kind of a conflict there (unless I'm reading it completely wrong).
So there is kind of a conflict there (unless I'm reading it completely wrong).
I also think this is not consistent. Also there are several packages which always install latest version (beside the existing Visual Studio Code extension packages also e.g. popular ones like Google Chrome)
To clarify consent is:
I also think this is not consistent. Also there are several packages which always install latest version (beside the existing Visual Studio Code extension packages also e.g. popular ones like Google Chrome)
There are always exceptions to the rule but from what I understand here I don't feel this is one of the exceptions. As far as possible a package version should be the same as that for which it is installing (software, driver, extension, module etc).
@AdmiringWorm said:
hmm, I had forgotten about the requirement of package version == software version. I guess that settles that then, although when looking at the create packages docs, it's mentioned as a recommendation:
It is. But it's a strong one. In my early days as a moderator this was pointed out to me when I missed it on a package I moderated.
Is this still relevant? If so, what is blocking it? Is there anything you can do to help move it forward?
Dear contributor, because this issue seems to be inactive for quite some time now, I've automatically closed it. If you still feel this is a valid issue, please feel free to re-open the issue. Thank you for your contribution.
Expected Behavior
Package for Visual Studio Code extensions should be available in two versions: One which installs the latest version of the extension and lets Visual Studio Code to the update handling, and another one which installs a specific version.
Current Behavior
Currently the packages are installing the latest version, as this was the only possibility pre 0.30.0.
Possible Solution
For each Visual Studio Code extension package create a new package with
-latest
prefix (e.g.vscode-azurerm-tools-latest
) which will install the latest version as the current package does.Update the current package to install specific version.
Advantage of this approach would be to have clear packages afterwards. Drawback is that it will change behavior of existing packages and won't work for some packages yet, as the Visual Studio Code version number is lower than the current package version.