-
Notifications
You must be signed in to change notification settings - Fork 909
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
Side by side installations are deprecated and is pending removal in v2.0.0. #2878
Comments
I'm not clear on what you're trying to do here or what you want from raising the issue? |
I want to know how to fix that warning 🤷♂️ there should be some documentation on how to fix. |
Hey @viceice -- I was also looking to fix this. The documentation has been updated to mention this topic: https://docs.chocolatey.org/en-us/create/create-packages#naming-packages-to-allow-for-side-by-side-installation However, the documentation (and the problem itself) seems to be aimed at package creators. As an end user, we see deprecation warnings, but there's nothing we can really do about it. Feels like this message should either be presented just to package creators (somehow), or the message itself should better describe the nature of the issue to end users. |
The issue has likely been created when a package was installed as a side-by-side install that had those packages in your screenshot as dependencies and they were also installed side-by-side. @viceice You don't mention what you've done to troubleshoot this. Have you tried uninstalling the packages? |
> cuninst vcredist2015
Chocolatey v1.2.0
Uninstalling the following packages:
vcredist2015
KB2919355 has been installed as a side by side installation.
Side by side installations are deprecated and is pending removal in v2.0.0.
KB2919442 has been installed as a side by side installation.
Side by side installations are deprecated and is pending removal in v2.0.0.
KB2999226 has been installed as a side by side installation.
Side by side installations are deprecated and is pending removal in v2.0.0.
KB3033929 has been installed as a side by side installation.
Side by side installations are deprecated and is pending removal in v2.0.0.
KB3035131 has been installed as a side by side installation.
Side by side installations are deprecated and is pending removal in v2.0.0.
vcredist2015 has been installed as a side by side installation.
Side by side installations are deprecated and is pending removal in v2.0.0.
vcredist2015 not uninstalled. An error occurred during uninstall:
Unable to uninstall 'vcredist2015 14.0.24215.20170201' because 'tortoisegit 2.13.0.1' depends on it.
Chocolatey uninstalled 0/1 packages. 1 packages failed.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
Failures
- vcredist2015 (exited 1) - vcredist2015 not uninstalled. An error occurred during uninstall:
Unable to uninstall 'vcredist2015 14.0.24215.20170201' because 'tortoisegit 2.13.0.1' depends on it.
If a package uninstall is failing and/or you've already uninstalled the
software outside of Chocolatey, you can attempt to run the command
with `-n` to skip running a chocolateyUninstall script, additionally
adding `--skip-autouninstaller` to skip an attempt to automatically
remove system-installed software. Only the packaging files are removed
and not things like software installed to Programs and Features.
If a package is failing because it is a dependency of another package
or packages, then you may first need to consider if it needs to be
removed as packages have dependencies for a reason. If
you decide that you still want to remove it, head into
`$env:ChocolateyInstall\lib` and find the package folder you want to
be removed. Then delete the folder for the package. You should use
this option only as a last resort. <?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>tortoisegit</id>
<version>2.13.0.1</version>
<title>TortoiseGit</title>
<authors>TortoiseGit and contributors</authors>
<owners>chocolatey-community, dtgm</owners>
<licenseUrl>http://www.gnu.org/licenses/old-licenses/gpl-2.0.html</licenseUrl>
<projectUrl>https://tortoisegit.org/</projectUrl>
<iconUrl>https://cdn.jsdelivr.net/gh/chocolatey-community/chocolatey-packages@25a40985eb12778b130d754058887895f8b1bc40/icons/tortoisegit.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>...trimmed...</description>
<summary>TortoiseGit provides overlay icons showing the file status, a powerful context menu for Git and much more!</summary>
<releaseNotes>https://tortoisegit.org/docs/releasenotes/#Release_2.13.0.1</releaseNotes>
<copyright>© TortoiseGit</copyright>
<tags>git version-control dvcs admin foss</tags>
<projectSourceUrl>https://gitlab.com/tortoisegit/tortoisegit/</projectSourceUrl>
<packageSourceUrl>https://github.com/chocolatey-community/chocolatey-packages/tree/master/automatic/tortoisegit</packageSourceUrl>
<docsUrl>https://tortoisegit.org/docs/</docsUrl>
<mailingListUrl>https://groups.google.com/forum/#!forum/tortoisegit-dev</mailingListUrl>
<bugTrackerUrl>https://tortoisegit.org/issues</bugTrackerUrl>
<dependencies>
<dependency id="vcredist2015" version="14.0.24215.20170201" />
</dependencies>
</metadata>
</package> |
The best way to do this is to uninstall the versions of |
What does |
> choco list -l
Chocolatey v1.2.0
7zip 22.1
7zip.install 22.1
chocolatey 1.2.0
chocolatey-compatibility.extension 1.0.0
chocolatey-core.extension 1.4.0
chocolatey-windowsupdate.extension 1.0.5
cmdermini 1.3.20
docfx 2.59.4
dotnet-6.0-sdk 6.0.402
dotnet-6.0-sdk-4xx 6.0.402
dotnet-sdk 6.0.402
DotNet4.5.2 4.5.2.20140902
git 2.38.1
git.install 2.38.1
ikvm 8.1.5717.20170308
ILMerge 2.12.0803
KB2533623 2.0.0
KB2919355 has been installed as a side by side installation.
Side by side installations are deprecated and is pending removal in v2.0.0.
KB2919355 1.0.20160915
KB2919442 has been installed as a side by side installation.
Side by side installations are deprecated and is pending removal in v2.0.0.
KB2919442 1.0.20160915
KB2999226 has been installed as a side by side installation.
Side by side installations are deprecated and is pending removal in v2.0.0.
KB2999226 1.0.20181019
KB3033929 has been installed as a side by side installation.
Side by side installations are deprecated and is pending removal in v2.0.0.
KB3033929 1.0.5
KB3035131 has been installed as a side by side installation.
Side by side installations are deprecated and is pending removal in v2.0.0.
KB3035131 1.0.3
KB3063858 1.0.0
KB3118401 1.0.5
nodejs-lts 16.18.0
notepad3 5.21.1129.1
notepad3.install 5.21.1129.1
nuget.commandline 6.3.1
PowerShell 5.1.14409.20180811
powershell-core 7.2.6
processhacker 2.39
processhacker.install 2.39
pwsh 7.2.6
tailblazer 0.9.0.536
Temurin11jre 11.0.16.10100
tortoisegit 2.13.0.1
treesizefree 4.6.1.2
vcredist140 14.32.31332
vcredist2010 10.0.40219.32503
vcredist2015 has been installed as a side by side installation.
Side by side installations are deprecated and is pending removal in v2.0.0.
vcredist2015 14.0.24215.20170201
xxx1 1.0.0
xxx2 1.0.0
xxx3 1.0.0
xxx4 2.1.0
vswhere 3.0.3
45 packages installed. The |
The "xyz has been installed as a side by side installation." message appears to be triggered by the If you want the message to go away you can just delete the I used this sequence to clean things up:
NOTE: (unconfirmed relevance) I'm using Chocolatey 1.2 Professional on three of my systems and the only one where I'm seeing this problem is the one where I had set the |
I stumbled upon this after just deleting all folders containing an .sxs file by using |
I have the same issue as @viceice, and only those exact packages (the same KB... and vcredist2015) are the only packages that say "side-by-side" according to "choco list -lo". I am assuming it is some type of package that I have installed side-by-side before, but not uninstalled, which have left these packages on the system, perhaps? |
removing the |
So I don't really understand why this deprecation is happening. The solution or alternatives don't make sense to me either. Atm I maintain the GHC compiler packages, https://community.chocolatey.org/packages/ghc I have 7 years of side by side install-able compilers (where the packages have been designed to be able to run side by side) which will all stop working when this change goes into effect. The "recommendation" seems very weird to me, why would I need to create multiple packages, one for each version. It just doesn't make sense. If I do this, this breaks matrix installs, where you just specify the version of the compiler to install through The meta-package, well, I don't see how this works.
This seems moot, as without -m the only thing this adds is the ability to install the "latest" package version and doesn't help at all with side-by-side installs. As I can't use the meta-package version to install side by side packages. I still have to use the full new package versions. Third, my packages are currently exempt from moderation, After 7 years I'd certainly hope I built up enough good will not to have to go through moderation for every new version of a package I upload. This new "plan" means that for every new version I want to upload I'll be stuck in the moderation queue again, waiting for a mod to come along. Removing this features breaks years of software and github actions workflows and other CI workflows without giving a real solution to the problem. Why don't you just introduce a flag to allow packages to be marked as side-by-side installable, so you allow maintainers to opt in to this support. This plan seems frustrating for both users and maintainers. The proposed interface is very confusing for users, and the fact that you're going to break 7 years of back catalog is a very hard pill to swallow. All previous topics on this have been locked, and no discussion was ever had. hopefully this doesn't go the same way. |
So in the python example, if you would hypothetically run
The primary reason for the deprecation (and removal) is because the NuGet assemblies that Chocolatey CLI builds on top of are being upgraded (#508). The new assemblies do not allow side by side installations in the same way, and it was not straightforward task to add support back in a way that would not break anything more. Additionally, there were a number of longstanding bugs with how side by side installed packages were handled, especially for upgrades and uninstalls. So it is not as simple as adding a flag to keep the functionality, as a large part of the code that supported side by side installations is being replaced/upgraded.
The issues you linked were locked because the work in those issues had been completed, and the Chocolatey team wanted to keep discussion in open issues and/or in discussions. |
I'm using and recommending the choco side by side installation feature
|
There is documentation for this, mentioned in the comment above. |
@da9l in addition to above comment from @pauby the maintainers of the dotnet SDK packages have already taken this into consideration. i.e you can install either:
i.e. each of those could then be installed "side by side" and then |
Are users the thing being trusted or still packages. Otherwise I have to submit 50-60 packages and have to wait for review for all of them. And now when I just release new versions I again get stuck in moderation queue. :( so has user based exemptions been implemented or is it still package based... |
@Mistuke your question seems unrelated to the topic being discussed here, but to provide a quick answer, trust is applied at the package level, not at the user level. Once trusted, new package versions for a package will no longer require human moderation, but they will still go through the automated moderation process and if any fail, it will be pushed back to the maintainer to look into. What 50-60 packages are you referring to here? |
It most definitely is related? If side by side versions now require a separate package, it means i can never use the same package again aside for the "latest" wrapper package. I'll have to submit all new versions as separate packages.
Well without side by side support I now have to resubmit all ghc and cabal packages. So not sure why it's unrelated. |
In addition to the above, right now there's also a "guarantee" that the packages are produced by the same persons. A random person can't submit using a taken package name. With the new scheme, unless I'm mistaken:
There's no guarantee at all that these were made by the same person, packaged the same way etc right? So it feels to me like this change needs more changes on the chocolatey infra side for stuff like this. At least this is what I could find with the little information available, there are documentation for how this effect users but not what maintainers should do. |
As side-by-side installations have now been deprecated in 2.0.0 of Chocolatey CLI, documentation has been added and there has been no update to this in some time, I'm going to go ahead and close this. We can reopen it if necessary. |
What You Are Seeing?
I'm seeing a lot of those messages when updating all packages via
cup all
. I never installed those packages directly and i don't remember which package had installed them via transitive dependencies.What is Expected?
Se a link or description for how to fix it.
How Did You Get This To Happen? (Steps to Reproduce)
System Details
[System.Environment]::OSVersion.version.tostring()
): 10, 11, 2012R2, 2016, 2019, 2022 (latest patches)$PSVersionTable
): 5.1.14393.5127, 7.2.6choco --version
): 1.2.0Output Log
Full Log Output
The text was updated successfully, but these errors were encountered: