Scoop Versions Save

A command-line installer for Windows.

v0.4.0

2 weeks ago

New Features

  • Scoop now has a new configuration option called use_isolate_path, which can separate the PATH of apps related to Scoop. If use_isolate_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.

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

v0.3.1

1 year ago

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

Credits

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

@niheaven @chawyehsu @yi-Xu-0100 @Ama1999 @pynappo

v0.3.0

1 year ago

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() to Invoke-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

v0.2.4

1 year ago

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 and post_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):

@lewis-yeung @rashil2000 @niheaven @yi-Xu-0100

v0.2.3

1 year ago

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

v0.2.2

1 year ago

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

v0.2.1

1 year ago

Changelog

Features

  • core: Add pre_uninstall and post_uninstall hooks (#4957, #4962)

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 of Invoke-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

  • manifest: Rename 'Find-Manifest()' to 'Get-Manifest() (#4966, #4981)

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

v0.2.0

1 year ago

Changelog

BREAKING CHANGES

  • The license of Scoop has changed to dual-license Unlicense or MIT (#4903)
  • Rename checkver_token to gh_token and SCOOP_CHECKVER_TOKEN to SCOOP_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 of relpath (#4793)
  • reset_aliases: Move core function of reset_aliases to scoop (#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

v0.1.0

2 years ago

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

  • uninstall: Avoid checking all files for unlinking persisted data (#4681, #4763)

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