github ScoopInstaller/Scoop v0.6.0
Version 0.6.0

4 hours ago

✨ Highlights

This release contains changes that may be considered breaking. Manifest authors should review:

  • checkver GitHub mode requires explicit github: key (#6641): manifests using url: with a GitHub URL for checkver must switch to github: to opt into the GitHub token path. Token usage is now scoped to explicit github mode only.
  • checkver GitHub mode defaults changed (#6653): new default jsonpath / regex for GitHub-based version checks. checkver.script behavior is affected — verify scripts still resolve the expected version.
  • install.json / manifest.json renamed to scoop-install.json / scoop-manifest.json (#6732): Scoop no longer overwrites app-shipped manifest.json / install.json files. New installs write the prefixed names; readers fall back to the old names for existing installs.

This release also introduces a notable improvement to version-specific installs:

  • Get the versioned manifest from git history (#6370): Version-specific installs now use a layered manifest lookup: when installing app@version, Scoop first searches the SQLite cache if use_sqlite_cache is enabled (disabled by default), then searches the bucket's Git history if use_git_history is enabled (enabled by default), and finally falls back to auto-generating the requested manifest when autoupdate is available.

Changelog

Features

  • scoop-uninstall: Allow access to $bucket in uninstall scripts (#6380)
  • checkver: Set GitHub mode default jsonpath and regex (#6653)
  • download: Enhance Get-GitHubToken to include more token sources (#6712)
  • download|scoop-download: Add GitHub issue prompt when the default downloader fails (#6539)
  • download|scoop-config: Allow disabling automatic fallback to the default downloader when Aria2c download fails (#6538, #6744)
  • install: Add support for historical manifests by git history (#6370)
  • install: Add output for the setting and removal of environment variables (#6460)
  • install: Add separator at the end of notes, highlight suggestions (#6418)

Bug Fixes

  • scoop-download: Fix function nightly_version not defined error (#6386)
  • scoop-download: Fix incorrect download success state (#6473)
  • scoop-download: Exit with non-zero status when downloads fail (#6739)
  • scoop-export: Make exported JSON key order deterministic (#6697)
  • scoop-import: Import database.ps1 and download.ps1 at startup (#6743, #6747)
  • scoop-search: Improve error handling for manifest file parsing (#6348)
  • scoop-search: Select latest search result semantically (#6643)
  • scoop-uninstall: Correct -Global Switch (#6454)
  • scoop-update: Import versions.ps1 in the parallel bucket sync to fix currentdir failing with NO_JUNCTION enabled (#6735)
  • scoop-update: Fix updating apps installed from a local manifest path (#6736)
  • scoop-update: scoop update -f on an @version pin now upgrades to the bucket HEAD (#6730)
  • scoop-update: Detect version pins by generated manifest only (#6739)
  • scoop-update: Force sync tags w/ remote branch while scoop update (#6439)
  • scoop-version: Fix logic error caused by missing brackets (#6463)
  • auto-pr: Rebase before pushing to prevent push conflicts (#6624)
  • autoupdate: Use origin URL to handle URLs with fragment in GitHub mode (#6455)
  • autoupdate: Ensure GitHub API requests use token (#6535)
  • autoupdate|download: Require HTTPS before sending GitHub token (#6739)
  • buckets: Skip Git invocation if unavailable in new_issue_msg (#6591)
  • buckets: Fix the filtering condition when retrieving the number of manifests (#6509)
  • buckets|scoop-info: Switch git log date format to ISO 8601 to avoid locale issues (#6446)
  • checkver: Allow script to run when URL fetch fails but script exists (#6490, #6556)
  • checkver: Fix incorrect version returned when script fails without output (#6547)
  • checkver: Remove redundant always-true condition in GitHub checkver logic (#6571)
  • checkver: Harden github checkver (#6641)
  • checkver: Skip default GitHub JSONPath when using custom script (#6692)
  • core: Fix the grep parameter in the Invoke-GitLog function (#6407)
  • core: Add null checks before closing BinaryReader/FileStream in update process (#6507, #6711)
  • core: Skip NO_JUNCTION logic when $app is 'scoop' in currentdir function (#6541)
  • core: Fix substitute handling of substring keys (#6561)
  • core: Check $deprecated_dir exists before accessing it (#6574)
  • core: Give dark higher priority when use Extract-DarkArchive (#6637)
  • core: Resolve paths in is_in_dir to prevent containment escape (#6739)
  • core: Fix currentdir crash when NO_JUNCTION is enabled (#6741)
  • core|manifest: Avoid error messages when searching non-existent 'deprecated' directory (#6471)
  • database: Preserve DataTable when returned from SQLite cache queries (#6739)
  • download: Redact proxy password and cookie header from aria2 diagnostics (#6739)
  • getopt: Teach getopt to respect the --% token (#6477)
  • install: Don't add to $Error when checking for service cexecsvc (#6520)
  • path: Trim ending slash when initializing paths (#6501)
  • schema: Add missing hash.mode value github (#6534)
  • shim: Rewrite system paths to avoid WoW64 redirection (#6620)
  • uninstall: Import url_filename from download.ps1 (#6530)

Code Refactoring

  • scoop-list: Use simpler method to check the deprecated status of the manifest to improve performance (#6599)
  • install: Get reference for Users group via Principal.WellKnownSidType (#6278)
  • install: Use scoop- prefix for install.json and manifest.json (#6732)
  • output: Replace raw prints with functions for standardized output (#6449)
  • output: Combine the separated outputs into a single output (#6545)

Performance Improvements

  • scoop-search: Skip JSON parse when query absent from file (#6284)

Builds

  • supporting: Update System.Data.SQLite to 2.0.2 (#6555, #6560)
  • supporting: Update Newtonsoft.Json to 13.0.4 (#6731)

Continuous Integration

  • dependabot: Target develop and refine update settings (#6751)
  • workflow: Drop Appveyor support and refactor GitHub Actions workflow (#6626)
  • workflow: Disable persisted checkout credentials (#6739)
  • workflow: Update actions/checkout to 7.0.1 and potatoqualitee/psmodulecache to 6.3 (#6753)
  • workflow: Publish releases from CHANGELOG.md on tag push (#6759, #6760)

Documentation

  • README: Remove Gitter badge (#6640)
  • bucket: Transfer games bucket to ScoopInstaller (#6746)
  • bucket: Transfer sysinternals bucket to ScoopInstaller (#6738)
  • typo: Correct misspellings in comments and docs (#6191)

Tests

  • bucket: Compatible with Pester v6 (#6724)
  • bucket: Limit validation to bucket manifests (#6756)
  • file: Exempt YAML files from CRLF lint check (#6758)

Close Issues

Credits

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

@niheaven @AkariiinMKII @HUMORCE @z-Fng @abgox @xrgzs @refack @o-l-a-v @chawyehsu @mertemr @deevus @B67687 @lisonge @Lutra-Fs @somls @silver886 @NathanBaulch @FrostyZombi3 @shauneccles @massimomazzariol

Don't miss a new Scoop release

NewReleases is sending notifications on new releases.