winget-cli icon indicating copy to clipboard operation
winget-cli copied to clipboard

Simply incorporate Scoop completely into WinGet.

Open sharpninja opened this issue 4 years ago • 14 comments

Incorporate Scoop in its entirety into WinGet.

Currently, the Scoop package manager is the most convenient place to get software for Windows, especially open-source software that does not require an installer or makes no installer available.

Incorporating Scoop would expand the library of software available for WinGet to distribute and manage.

  • Scoop would be treated as a secondary source, like with MS Store.
  • Scoop commands not in WinGet would be added to the WinGet command set and would default to using Scoop as the source.
  • Installing on systems with existing installation of Scoop would offer to update that installation to the version included with WinGet
  • Assimilating an existing scoop installation would reset permissions to use buckets other than the main bucket.
  • Assimilating an existing scoop installation would alter the Scoop.ps1 shim to redirect to calling WinGet.
  • WinGet would be able to uninstall packages installed via Scoop to build on the capability to uninstall any package from the registry.

This would give users a clean way to get "flat" apps without an installer and leverage the thousands of packages already submitted to Scoop. Microsoft could fork the repos for the buckets and curate them and only allow the curated buckets and include those repositories in the same submission workflow as WinGet.

Licensing

Scoop's License

This is free and unencumbered software released into the public domain.

Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.

Proposed technical implementation details

  1. Fork Scoop
  2. Rename all files to include a wg prefix to avoid naming collisions with an existing installation of Scoop.
  3. Create a wrapper class in WinGet that invokes wgScoop.ps1 from an appropriate Runspace.
  4. Add missing commands to the WinGet command line parser, defaulting them to call wgScoop.ps1.
  5. Fork all Scoop manifest repositories, prefixing WinGet- to their repository names. Execute repository moderation bots on these repositories.
  6. Update wgScoop sources to use the forked repositories.
  7. Change the root folder from $env:UserProfile/scoop to $env:UserProfile/.winget/wgscoop
  8. Allow setting the location of the root folder for wgScoop via environment variable.
  9. Import documentation from the Scoop Wiki into the official WinGet documentation.

An Aside

Please consider 💲💲compensating💰💰 the team behind Scoop for their years of hard work with either a generous cash offer or other financially beneficial arrangements. Just because their license would allow all of this without compensating them, it is only right to fairly compensate them.

@sharpninja

sharpninja avatar Jul 07 '21 09:07 sharpninja