github ScoopInstaller/Scoop v0.4.0
Version 0.4.0

latest releases: v0.4.2, v0.4.1
one month ago

✨ Highlights

  • Scoop now has a new configuration option called use_isolated_path, which can separate the PATH of apps related to Scoop. If use_isolated_path is set to true, Scoop will add SCOOP_PATH to store these PATHs. If it is set to any other string, Scoop will use that string as the new environment variable's name.
  • Portable config file is supported starting from this version. Scoop now reads config file in <SCOOP_DIR>/config.json, to store configs in a portable manner rather than having it in ~/.config/scoop/config.json, you can copy ~/.config/scoop/config.json to, or create a new config.json in the Scoop root directory. There is no auto migration for it, it's optional and manually operated.

Changelog

Features

  • scoop-update: Add support for parallel syncing buckets in PowerShell 7 and improve output (#5122)
  • bucket: Switch nirsoft bucket to ScoopInstaller/Nirsoft (#5328)
  • bucket: Make official buckets higher priority (#5398)
  • config: Support portable config file (#5369)
  • core: Add -Quiet switch for Invoke-ExternalCommand (#5346)
  • core: Allow global install of PowerShell modules (#5611)
  • path: Isolate Scoop apps' PATH (#5840)

Bug Fixes

  • scoop-alias: Prevent overwrite existing file when adding alias (#5577)
  • scoop-checkup: Skip defender check in Windows Sandbox (#5519)
  • scoop-checkup: Change the message level of helpers from ERROR to WARN (#5614)
  • scoop-checkup: Don't throw 7zip error when external 7zip is used (#5703)
  • scoop-(un)hold: Correct output the messages when manifest not found, (already|not) held (#5519)
  • scoop-info: Fix errors in file size collection when --verbose (#5352)
  • scoop-reset: Don't abort when multiple apps are passed and an app is running (#5687)
  • scoop-update: Change error message to a better instruction (#5677)
  • scoop-virustotal: Fix scoop-virustotal when --all has been passed without app (#5593)
  • scoop-virustotal: Fix the issue that escape character not available in PowerShell 5.1 (#5870)
  • autoupdate: Fix file hash extraction (#5295)
  • autoupdate: Fix bug that 'WebClient' doesn't auto-extract 'gzip' (#5901)
  • buckets: Avoid error messages for unexpected dir (#5549)
  • config: Warn users about misconfigured GitHub token (#5777)
  • core: Fix scripts' calling parameters (#5365)
  • core: Fix is_in_dir under Unix (#5391)
  • core: Rewrite config file when needed (#5439)
  • core: Prevents leaking HTTP(S)_PROXY env vars to current sessions after Invoke-Git in parallel execution (#5436)
  • core: Handle scoop aliases and broken(edited,copied) shim (#5551)
  • core: Avoid error messages when deleting non-existent environment variable (#5547)
  • core: Use relative path as fallback of $scoopdir (#5544)
  • core: Fix detection of Git (#5545)
  • core: Do not call scoop externally from inside the code (#5695)
  • core: Fix arguments parsing method of Invoke-ExternalCommand() (#5839)
  • decompress: Exclude '*.nsis' that may cause error (#5294)
  • decompress: Remove unused parent dir w/ 'extract_dir' (#5682)
  • decompress: Use wix.exe in WiX Toolset v4+ as primary extractor of Expand-DarkArchive() (#5871)
  • env: Avoid automatic expansion of %% in env (#5395, #5452, #5631)
  • getopt: Stop split arguments in getopt() and ensure array by explicit arguments type (#5326)
  • install: Fix download from private GitHub repositories (#5361)
  • install: Avoid error when unlinking non-existent junction/hardlink (#5552)
  • manifest: Correct source of manifest (#5575)
  • shim: Remove console window for GUI applications (#5559)
  • shim: Use bash executable directly (#5433)
  • shim: Check literal path in Get-ShimPath (#5680)
  • shim: Avoid unexpected output of list subcommand (#5681)
  • shim: Allow GUI applications to attach to the shell's console when launched using the GUI shim (#5721)
  • shim: Run JAR file from app's root directory (#5872)
  • shortcuts: Output correctly formatted path (#5333)
  • update/uninstall: Remove items from PATH correctly (#5833)

Performance Improvements

  • scoop-search: Improve performance for local search (#5644)
  • scoop-update: Check for running process before wasting time on download (#5799)
  • decompress: Disable progress bar to improve Expand-Archive performance (#5410)
  • shim: Update kiennq-shim to v3.1.1 (#5841, #5847)

Code Refactoring

  • scoop-download: Output more detailed manifest information (#5277)
  • core: Cleanup some old codes, e.g., msi section and config migration (#5715, #5824)
  • core: Rewrite and separate path-related functions to system.ps1 (#5836, #5858, #5864)
  • core: Get rid of 'fullpath' (#3533)
  • git: Use Invoke-Git() with direct path to git.exe to prevent spawning shim subprocesses (#5122, #5375)
  • helper: Remove 7zip's fallback '7zip-zstd' (#5548)
  • shim: Remove CS shim codebase (#5903)

Builds

  • checkver: Read the private_host config variable (#5381)
  • supporting: Update Json to 13.0.3, Json.Schema to 3.0.15 (#5835)

Continuous Integration

  • dependabot: Add dependabot.yml for GitHub Actions (#5377)
  • module: Update 'psmodulecache' version to 'main' (#5828)

Tests

  • bucket: Skip manifest validation if no manifest changes (#5270)

Documentation

  • scoop-info: Fix help message(#5445)
  • readme: Improve documentation language (#5638)

Close Issues

Credits

Thanks to the following contributors (ordered by PR merging time):

@r15ch13 @niheaven @HUMORCE @rashil2000 @rasa @Ercolino @jeppefrandsen @chawyehsu @WHYBBE @Valinor @starthal @lewis-yeung @Lutra-Fs @walpox @spider2048 @gerardog @dooptydoo90x @hagaigold @davidlwatsonjr @svraka @amorphobia

Don't miss a new Scoop release

NewReleases is sending notifications on new releases.