|
|
|
|
|
by majkinetor
960 days ago
|
|
That's also what is bad about winget - not having scripting language. AFAIK there were 0 incidents with choco scripts, they are mostly trivial to review (choco also has team of reviewers and no package can be published without being reviewed) and many tools simply can't be installed without PowerShell - the idea of "help some of the upstream packages clean up their installers" is irrational and unrealistic - some of those tools may be even done with the upgrades, which doesn't mean they shouldn't get a package. Furthermore, many choco packages are embedded and contain the software, which means they can be cached (artifactory, nexus etc.) do not depend on vendor location and can work forever (like development dependencies). All of this makes winget vastly inferior to choco at this moment and suitable for hobby/home use, not serious things like maintaining CI/CD pipeline. Choco package number and speed of update is on par with Arch. The good thing about winget is it comes with Windows, which is probably the only one at this point. |
|
MSI (and MSIX) are complex databases of pain, but they absolutely know how to uninstall everything that they are told to install and that machinery is well tested now across way too many Windows versions. On the other hand, if someone even bothers to test a script-based uninstall is a crapshoot.
> the idea of "help some of the upstream packages clean up their installers" is irrational and unrealistic
Not really, it is standard open source practice. Installers aren't the most interesting or glamorous thing to maintain so they often welcome any help that they can get.
Most Windows users still don't use any package manager in 2023 and still prefer good installers directly from upstream sources.
> some of those tools may be even done with the upgrades, which doesn't mean they shouldn't get a package.
Ruby's Windows installer has long been run by third party developers. Git for Windows started as a third party operation before getting officially blessed. Open source is full of instances where the person packaging the software is not the original developer. (That most of Linux packaging, even, it's not just a Windows phenomenon.) Without "official" blessing from upstream it can be hard to get people to trust your distribution, but if upstream isn't bothering with maintenance anyway, it is no longer their project. (That's also extremely common in Linux software packaging, new maintainers are often blessed because they did a good packaging job.)
> Furthermore, many choco packages are embedded and contain the software
My experience was very few of the packages I used did that and almost all revolved around some ad hoc Invoke-WebRequest or similar somewhere in their PowerShell scripts, but obviously that is my own anecdotal experience and I'm glad for you that you've had a better time trying to CI/CD with choco than I ever had.
Some people have built custom sources for winget to help with CI/CD scenarios. Out-of-the-box caching/CDN for the primary public sources is still an active discussion, but the neat thing is that it is an active discussion out on GitHub so that you can directly voice your "serious" use cases, if you wish. A good thing about winget is that it is extensible (custom sources) and developed in the open on GitHub (Chocolatey went corporate and a lot of discussion moved proprietary and some of it went closed source years ago).