Version 0.4.0
✨ Highlights
- Scoop now has a new configuration option called
use_isolated_path
, which can separate thePATH
of apps related to Scoop. Ifuse_isolated_path
is set totrue
, Scoop will addSCOOP_PATH
to store thesePATH
s. 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 newconfig.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 forInvoke-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 ofExpand-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
Close Issues
- Closes #1606
- Closes #1615
- Closes #1813
- Closes #3877
- Closes #4239
- Closes #4498
- Closes #4540
- Closes #5273
- Closes #5293
- Closes #5313
- Closes #5357
- Closes #5380
- Closes #5394
- Closes #5434
- Closes #5435
- Closes #5449
- Closes #5473
- Closes #5485
- Closes #5492
- Closes #5511
- Closes #5546
- Closes #5568
- Closes #5589
- Closes #5594
- Closes #5595
- Closes #5597
- Closes #5613
- Closes #5601
- Closes #5694
- Closes #5686
- Closes #5690
- Closes #5863
- Closes #5869
- Closes #5900
- Related to #5131
- Closes ScoopInstaller/Main#4564
- Related to ScoopInstaller/Main#5552
- Related to ScoopInstaller/Shim#8
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