Releases: ScoopInstaller/Scoop
Version 0.4.1
Changelog
Bug Fixes
- core: Fix
Invoke-ExternalCommand
regression (#5923)
Close Issues
- Closes #5911
- Closes ScoopInstaller/Main#5721
- Closes ScoopInstaller/Main#5723
- Closes ScoopInstaller/Main#5725
- Closes ScoopInstaller/Main#5726
- Closes ScoopInstaller/Main#5728
- Closes ScoopInstaller/Main#5729
- Closes ScoopInstaller/Main#5730
- Closes ScoopInstaller/Main#5740
- Closes ScoopInstaller/Main#5741
- Closes ScoopInstaller/Extras#13154
Credits
Thanks to the following contributors (ordered by PR merging time):
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
Version 0.3.1
Changelog
BREAKING CHANGES
- pester: Update to Pester 5 (#5222)
IMPORTANT FOR BUCKET MAINTAINERS
- Pester 5 is used in this release. To make sure your bucket's CI works properly, please update
bin\test.ps1
from Pester 4 to Pester 5. - You can use
test.ps1
attached in the release files.
Features
- config: Allow Scoop to check if apps versioned as 'nightly' are outdated (#5166)
- checkup: Add Windows Developer Mode check (#5233)
- bucket: Add 'sysinternals' bucket to known (#5237)
Bug Fixes
- decompress: Use PS's default 'Expand-Archive()' (#5185)
- hash: Fix SourceForge's hash extraction (#5189)
- decompress: Trim ending '/' (#5195)
- shim: Exit if shim creating failed 'cause no git (#5225)
- scoop-import: Add correct architecture argument (#5210)
- scoop-config: Output
[DateTime]
as[String]
(#5232)
Code Refactoring
- hash: Use
Get-FileHash()
directly (#5177) - installer: Drop the old installer (#5186)
- unix: Remove
unix.ps1
(#5235)
Builds
- auto-pr: Add
CommitMessageFormat
option (#5171) - checkver: Support XML default namespace (#5191)
- pssa: Remove unused 'ExcludeRules' (#5201)
- schema: Add 'installer' and 'shortcuts' to 'autoupdate' (#5220)
- checkhashes: Use correct version number if
UseCache
(#5240)
Continuous Integration
- module: Update modules version (#5209)
Tests
- unix: Fix tests in Linux and macOS (#5179)
- pester: Update to Pester 5 (#5222)
- bucket: Use BuildHelpers' EnvVars (#5226)
Documentation
- scoop-cat: Fix help message(#5224)
Close Issues
- Closes #5183
- Closes #5187
- Closes #5193
- Closes ScoopInstaller/Java#418
- Closes #4077
- Closes #2976
- Closes #5208
- Closes #5217
- Closes ScoopInstaller/Main#4056
- Closes ScoopInstaller/Main#3968
- Closes #5229
- Closes #5251
Credits
Thanks to the following contributors (ordered by PR merging time):
Version 0.3.0
Changelog
BREAKING CHANGES
- config: Change config option to snake_case in file and SCREAMING_CASE in code (#5116)
- subdir: Allow subdir in 'bucket' (#5119)
Features
- getopt: Support option terminator (
--
) (#5121) - install: Add support for ARM64 architecture (#5154)
- install: Show the running process (#5102)
- scoop-config: Allow 'hold_update_until' be set manually (#5100)
- scoop-update: Stash uncommitted changes before update (#5091)
- scoop-(un)hold: Support
scoop (un)hold scoop
(#5089)
Bug Fixes
- jsonpath: Prevent converting date string to DateTime in JSONPath (#5130)
- psmodule: Remove folder recursively when unlinking previous module path (#5127)
- scoop-update: Add
uninstall_psmodule
to update process (#5136)
Code Refactoring
- download: Rename
dl()
toInvoke-Download()
(#5143) - path: Use 'Convert-Path()' instead of 'Resolve-Path()' (#5109)
- scoop-shim: Use
getopt
to parse arguments (#5125)
Builds
- checkver: Implement SourceForge checkver functionality (#5113, #5163)
- checkurls: Allow checking URLs from private_hosts (#5152)
- schema: Set manifest schema to be stricter (#5093)
- vscode: Tweak VSCode setting (#5149)
Credits
Thanks to the following contributors (ordered by PR merging time):
@yi-Xu-0100 @niheaven @rashil2000 @r15ch13 @chawyehsu @lewis-yeung @AkariiinMKII @shiena @examosa @thecesrom
Version 0.2.4
Changelog
Features
- core: Create no window by default in
Invoke-ExternalCommand
(#5066) - core: Improve argument concatenation in
Invoke-ExternalCommand
(#5065) - install: Show bucket name while installing an app (#5075)
- scoop-status: Add flag to disable remote checking (#5073)
- scoop-update: Add support for
pre_uninstall
andpost_uninstall
(#5085)
Bug Fixes
- core: Avoid deadlock in
Invoke-ExternalCommand
(#5064) - core: Use 'System.Nullable' for param 'global' (#5088)
- install: Move from cache when
--no-cache
is specified (#5039) - scoop-status: Correct formatting of
Info
output (#5047)
Builds
- checkver: Load page content before running 'script' (#5080)
- json: Update Newtonsoft.Json.Schema to 3.0.15-beta2 (#5053)
Credits
Thanks to the following contributors (ordered by PR merging time):
Version 0.2.3
Changelog
Features
- chore: Add missing -a/--all param to all commands (#5004)
- scoop-status: Check bucket status, improve output (#5011)
- scoop-info: Show app installed/download size (#4886)
- scoop-import: Import a Scoop installation from JSON (#5014, #5034)
Bug Fixes
- chore: Update help documentation (#5002, #5029)
- decompress: Handle split RAR archives (#4994)
- shortcuts: Fix network drive shortcut creation (#4410, #5006)
Code Refactoring
- scoop-search: Output PSObject, use API token (#4997)
Builds
- checkver,auto-pr: Allow passing file path (#5019)
- checkver: Exit routine earlier if error (#5025)
- json: Update Newton.Json to 13.0.1 (#5026)
Tests
- typo: Fix typo ('formated' -> 'formatted') (#4217)
Credits
Thanks to the following contributors (ordered by PR merging time):
@cyingfan @rashil2000 @igitur @tech189 @issaclin32 @niheaven @zStruCat
Version 0.2.2
Changelog
Features
- core: Add
Get-Encoding
function to fix missing WebClient encoding (#4956) - scoop-(un)hold: Add
-g
/--global
flag (#4991) - scoop-update: Support
scoop update scoop
(#4992) - scoop-virustotal: Migrate to VirusTotal API v3 (#4983)
Bug Fixes
- manifest: Fix bugs in 'Get-Manifest()' (#4986)
Credits
Thanks to the following contributors (ordered by PR merging time):
@yi-Xu-0100 @niheaven @ClassicDarkChocolate @lewis-yeung @chawyehsu
Version 0.2.1
Changelog
Features
Bug Fixes
- bucket: Make sure
list_buckets
return array (#4979) - chore: Deprecate tls1 and tls1.1 (#4950)
- chore: Update Nonportable bucket URL (#4955)
- core: Using
Invoke-Command
instead ofInvoke-Expression
(#4941) - core: Load config file before initialization (#4932)
- core: Allow to use '_' and '.' in bucket name (#4952)
- depends: Avoid digits in archive file extension (except for .7z and .001) (#4915)
- bucket: Don't check remote URL of non-git buckets (#4923)
- bucket: Don't write message OK before bucket is cloned (#4925)
- shim: Add 'Get-CommandPath()' to find git (#4913)
- shim: Remove character replacement in .cmd -> .ps1 shims (#4914)
- scoop: Pass CLI arguments as string objects (#4931)
- scoop-info: Fix error message when manifest is not found (#4935)
- scoop-search: Require files in 'bucket' dir for remote known buckets (#4944)
- update: Prevent uninstall when update (#4949)
- scoop-download: Use correct Args when calling
Get-Manifest
(#4970)
Code Refactoring
Documentation
- readme: Update license badge (#4929)
Credits
Thanks to the following contributors (ordered by PR merging time):
@niheaven @chawyehsu @issaclin32 @sprgchma @lewis-yeung @quotidian-ennui @amorphobia @topstone @rashil2000 @neheb @rayinfinite @beerpiss @HUMORCE @danx12
Version 0.2.0
Changelog
BREAKING CHANGES
- The license of Scoop has changed to dual-license Unlicense or MIT (#4903)
- Rename
checkver_token
togh_token
andSCOOP_CHECKVER_TOKEN
toSCOOP_GH_TOKEN
(#4832, #4842)
Features
- relicense: Relicense to dual-license (Unlicense or MIT) (#4903, #4870)
- install: Allow downloading from private repositories (#4254)
- scoop-cleanup: Add
-a/--all
switch to cleanup all apps (#4906)
Bug Fixes
- bucket: Return empty list correctly in
Get-LocalBucket
(#4885) - install: Fix issue with installation inside containers (#4837)
- installed: If no
$global
, check both local and global installed (#4798) - shim: Manipulating shims with UTF8 encoding (#4791, #4813)
- shim: Correctly quote $@ in sh->ps1 shims (#4809)
- update: Skip logs starting with
(chore)
(#4800) - scoop-download: Add failure check (#4822)
- scoop-list: Fix date in 'Updated' column showing the months in the place of minutes (#4880)
- scoop-prefix: Fix typo that breaks global installed apps (#4795)
Performance Improvements
Code Refactoring
- bucket: Move 'Find-Manifest' and 'list_buckets' to 'buckets' (#4814)
- relpath: Use
$PSScriptRoot
instead ofrelpath
(#4793) - reset_aliases: Move core function of
reset_aliases
toscoop
(#4794) - config: Rename checkver_token to gh_token and SCOOP_CHECKVER_TOKEN to SCOOP_GH_TOKEN (#4832, #4842)
Builds
- checkver: Add option to throw error as exception (#4867)
- schema: Remove 'description' from required fields (#4853, #4874)
Documentation
- changelog: Rearrange CHANGELOG (#4897)
- readme: Update installation instruction (#4825)
- readme: Fix badges for Gitter and CI Tests (#4830)
- scoop-shim: Fix typo (#4836)
Credits
Thanks to the following contributors (ordered by PR merging time):
@niheaven @rashil2000 @chawyehsu @e6c31d @tech189 @tmsmith @astelmachonak-nydig @kingster @kiennq @CrendKing @cskrisz @lewis-yeung
Version 0.1.0
Features
- scoop-bucket: List more detailed information for buckets (#4704, #4756, #4759)
- scoop-cache: Handle multiple apps and show detailed information (#4738)
- scoop-cat: Use
bat
to pretty-print JSON (#4742) - scoop-config: Allow Scoop to ignore running processes during reset/uninstall/update (#4713, #4731)
- scoop-config: Show all settings (#4765)
- scoop-download: Add
scoop download
command (#4621) - scoop-(install|virustotal): Allow skipping update check (#4634)
- scoop-list: Allow list manipulation (#4718)
- scoop-list: Show last-updated time (#4723)
- scoop-info: Revamp details and show more information (#4747)
- scoop-shim: Add
scoop shim
to manipulate shims (#4727, #4736)
Bug Fixes
- autoupdate: Allow checksum file that contains whitespaces (#4619)
- autoupdate: Rename $response to $res (#4706)
- config: Ensure manipulating config with UTF8 encoding (#4644)
- config: Allow scoop config use Unicode characters (#4631)
- config: Fix
set_config
bugs (#3681) - current: Remove 'current' while it's not a junction (#4687)
- depends: Prevent error on no URL (#4595)
- depends: Check if extractor is available (#4042)
- decompress: Fix nested Zstd archive extraction (#4608, #4639)
- installed: Fix 'core/installed' that mark failed app as 'installed' (#4650, #4676, #4689)
- no-junctions: Fix error when
NO_JUNCTIONS
is been set (#4722, #4726) - shim: Fix PS1 shim error when in different drive in PS7 (#4614)
- shim: Fix
sh
shim error in WSL (#4637) - shim: Use
-file
instead of-command
in ps1 script shims (#4721) - shim: Fix exe shim when app path has white spaces (#4734, #4780)
- versions: Fix wrong version number when only one version dir (#4679)
- versions: Get current version from failed installation if possible (#4720, #4725)
- scoop-alias: Fix alias initialization (#4737)
- scoop-checkup: Skip 'check_windows_defender' when have not admin privileges (#4699)
- scoop-cleanup: Remove apps other than current version (#4665)
- scoop-search: Remove redundant 'bucket/' in search result (#4773)
- scoop-update: Skip updating non git buckets (#4670, #4672)
Performance Improvements
Code Refactoring
- depends: Rewrite 'depends.ps1' (#4638, #4673)
- mklink: Use 'New-Item' instead of 'mklink' (#4690)
- rmdir: Use 'Remove-Item' instead of 'rmdir' (#4691)
- COMSPEC: Deprecate use of subshell cmd.exe (#4692)
- git: Use 'git -C' to specify the work directory instead of 'Push-Location'/'Pop-Location' (#4697)
- scoop-info: Use List View for output (#4741)
- scoop-config: Use underscores everywhere (#4745)
Builds
- checkver: Fix output with '-Version' (#3774)
- schema: Add '$schema' property (#4623)
- schema: Add explicit escape to opening bracket matcher in jp/jsonpath regex (#3719)
- schema: Fix typo ('note' -> 'notes') (#4678)
- tests: Support both AppVeyor and GitHub Actions (#4655)
- tests: Run GitHub Actions CI on each commit (#4664)
- tests: Use cache in GitHub Actions (#4671)
- tests: Disable CI test on 'push' (#4677)
- vscode-settings: Remove 'formatOnSave' trigger (#4635)
Styles
- test: Format scripts by VSCode's PowerShell extension (#4609)
- style: Use correct casing for
$PSScriptRoot
(#4775)
Tests
- test-bin: Only write output file in CI and fix trailing whitespaces (#4613)
- manifest: Fix manifests validation (#4620)
- zstd: Fix 'zstd' extraction error in test (#4651)
Documentation
- changelog: Add 'CHANGLOG.md' (#4600)
- changelog: Rearrange CHANGELOG (#4729, #4770, #4774)
- changelog: Link CHANGELOG headers to 'releases/tag' (#4730)
Thanks to the following contributors (ordered by PR merging time):
@niheaven @rashil2000 @issaclin32 @caoli5288 @axtens @ParkerM @mgziminsky @ipcjs @chawyehsu @HUMORCE @snowman @jantari @younger-1 @zStruCat