Skip to content

Conversation

@HUMORCE
Copy link
Member

@HUMORCE HUMORCE commented Sep 19, 2024

Description

TODOs:

  • Consistency on scoop-list result
  • Error handling and a better prompt when manifest file missing(removed/unavailable/inaccessible) from actual source

Motivation and Context

Relates to #2719, #3441, #3870, #5172, #5709

How Has This Been Tested?

before: LEFT pane, after: RIGHT pane

f6ce496: Select actual source for manifest

manifests with same name from different bucket:
bucket

manifest that installs with URI:
local_and_remote_manfiest

Fallback to installed manifest:
removed_from_sources_manifest

e7155ea: handling deprecated manifest
deprecated

c525005:
standalone manifest: any query or installation that does not install with app name, e.g. PATH or URI

result of scoop-info will drop Installed version and available update when source of queried and installed are different.

BOTH pane are after effects

standalone_same_source

c38fc63: depends support for standalone manifest

❯ scoop depends .\ack.json

Source                                 Name
------                                 ----
main                                   perl
C:\Users\humorce\Desktop\6142\ack.json ack


❯ scoop depends http://127.0.0.1/ack.json

Source                    Name
------                    ----
main                      perl
http://127.0.0.1/ack.json ack

a65c84a: deprecated tag/mark on scoop-list

main on  master
❯ mv .\bucket\d2.json .\deprecated\
main on  master [✘?]
❯ scoop list d2
Installed apps matching 'd2':

Name Version Source Updated             Info
---- ------- ------ -------             ----
d2   0.6.6   main   2024-09-24 10:52:07 Deprecated package
                                        ↑

61b3259: show message when multiple buckets contain [querying app]

current on  refctor/parse_app-n-get-manifest
❯ scoop info d2
WARN  Multiple buckets contain manifest 'd2', the current selection is 'main/d2'.

Name        : d2
Description : A modern diagram scripting language that turns text to diagrams.
Version     : 0.6.6
Source      : main
Website     : https://d2lang.com
License     : MPL-2.0
Updated at  : 8/2/2024 4:29:10 AM
Updated by  : github-actions[bot]
Binaries    : bin\d2.exe

current on  refctor/parse_app-n-get-manifest
❯ scoop install d2
WARN  Multiple buckets contain manifest 'd2', the current selection is 'main/d2'.
Installing 'd2' (0.6.6) [64bit] from 'main' bucket
Loading d2-v0.6.6-windows-amd64.tar.gz from cache
Checking hash of d2-v0.6.6-windows-amd64.tar.gz ... ok.
Extracting d2-v0.6.6-windows-amd64.tar.gz ... done.
Linking ~\scoop\apps\d2\current => ~\scoop\apps\d2\0.6.6
Creating shim for 'd2'.
'd2' (0.6.6) was installed successfully!

Checklist:

  • I have read the Contributing Guide.
  • I have ensured that I am targeting the develop branch.
  • I have updated the documentation accordingly.
  • I have updated the tests accordingly.
  • I have added an entry in the CHANGELOG.

@HUMORCE HUMORCE changed the title refactor(core): Parse/Select installed apps/manifests first refactor(Get-Manifest): Select actual source for installed manifest Sep 20, 2024
@HUMORCE HUMORCE marked this pull request as ready for review September 20, 2024 02:20
@HUMORCE HUMORCE changed the title refactor(Get-Manifest): Select actual source for installed manifest refactor(Get-Manifest): Select actual source for manifest Sep 21, 2024
@HUMORCE HUMORCE merged commit 3321b96 into ScoopInstaller:develop Aug 10, 2025
@HUMORCE
Copy link
Member Author

HUMORCE commented Aug 10, 2025

I spent many time testing this PR on my device, it is ready for 0.5.3

TESTS/CHANGELOG will be done later.

HUMORCE added a commit that referenced this pull request Aug 11, 2025
* fix (decompress): `Expand-7zipArchive` only delete temp dir / `$extractDir` if it is empty (#6092)

Co-authored-by: Hsiao-nan Cheung <[email protected]>

* refactor(download): Move download-related functions to 'download.ps1' (#6095)

* fix(download): Fallback to default downloader when aria2 fails (#4292)

* fix(commands): Handling broken aliases (#6141)

* fix(shim): properly check `wslpath`/`cygpath` command first (#6114)

Co-authored-by: Hsiao-nan Cheung <[email protected]>

* fix(scoop-bucket): Add missing import for `no_junction` envs (#6181)

Signed-off-by: Chawye Hsu <[email protected]>

* docs(chglog): Update to 0.5.3 (#6258)

* perf(shim): Update kiennq-shim to v3.1.2 (#6261)

* fix(decompress): Replace deprecated 7ZIPEXTRACT_USE_EXTERNAL config (#6327)

Co-authored-by: Hsiao-nan Cheung <[email protected]>

* fix(scoop-uninstall): Fix uninstaller does not gain Global state (#6430)

* global arg

* changelog

* refactor(Get-Manifest): Select actual source for manifest (#6142)

* first step

* Revert "first step"

This reverts commit c5907c3.

* refactor(Get-Manifest): Select actual source for installed manifest

* rework sub-commands, `scoop-depends` is NOT working at this stage

* URI manifest

* opt

* deprecated manifest

* source of manifests

* source of manifest pt2

- Mark URI(path/URL/UNC/etc.) query as standalone manifest
- Drop `installed` and `available update` items for [query] and [installed] are different sources.

* remove variable preventing I forget it

* scoop-info: fix source of manifest on bucket

* fix `scoop-depends`

* Fix Standalone and Source detection

* fix global install

* Fix scoop-cat, scoop-home

- Query for remote manifest

* scoop-list: info +deprecated

* manifest: Fix first selected manifest

* gramma..

* Fix 61b3259

* length

* fix(scoop-depends-tests): Mocking `USE_EXTERNAL_7ZIP` as $false (#6431)

* fix(scoop-depends-tests): Mocking `USE_EXTERNAL_7ZIP` as $false to avoding error when it is $true

* CHANGELOG

* feat(autoupdate): GitHub predefined hashes support (#6416)

* feat(autoupdate): predefined hash case for GitHub

- Remove `sha256:` prefix in `format_hash()`
- Add GitHub support in `get_hash_for_app()`

Close #6381

* doc(chglog): GitHub auto hash update

* fix(autoupdate): remove prefix only

* docs(CHANGELOG): Update to 0.5.3 (#6432)

* docs(CHANGELOG): Update to 0.5.3

* 6416

---------

Signed-off-by: Chawye Hsu <[email protected]>
Co-authored-by: Olav Rønnestad Birkeland <[email protected]>
Co-authored-by: kiennq <[email protected]>
Co-authored-by: HUMORCE <[email protected]>
Co-authored-by: Ryan <[email protected]>
Co-authored-by: Chawye Hsu <[email protected]>
Co-authored-by: Bassel Rachid <[email protected]>
Co-authored-by: Wordless Echo <[email protected]>
HUMORCE added a commit to HUMORCE/Scoop that referenced this pull request Aug 12, 2025
* chore(release): Bump to version 0.5.3 (ScoopInstaller#6257)

* fix (decompress): `Expand-7zipArchive` only delete temp dir / `$extractDir` if it is empty (ScoopInstaller#6092)

Co-authored-by: Hsiao-nan Cheung <[email protected]>

* refactor(download): Move download-related functions to 'download.ps1' (ScoopInstaller#6095)

* fix(download): Fallback to default downloader when aria2 fails (ScoopInstaller#4292)

* fix(commands): Handling broken aliases (ScoopInstaller#6141)

* fix(shim): properly check `wslpath`/`cygpath` command first (ScoopInstaller#6114)

Co-authored-by: Hsiao-nan Cheung <[email protected]>

* fix(scoop-bucket): Add missing import for `no_junction` envs (ScoopInstaller#6181)

Signed-off-by: Chawye Hsu <[email protected]>

* docs(chglog): Update to 0.5.3 (ScoopInstaller#6258)

* perf(shim): Update kiennq-shim to v3.1.2 (ScoopInstaller#6261)

* fix(decompress): Replace deprecated 7ZIPEXTRACT_USE_EXTERNAL config (ScoopInstaller#6327)

Co-authored-by: Hsiao-nan Cheung <[email protected]>

* fix(scoop-uninstall): Fix uninstaller does not gain Global state (ScoopInstaller#6430)

* global arg

* changelog

* refactor(Get-Manifest): Select actual source for manifest (ScoopInstaller#6142)

* first step

* Revert "first step"

This reverts commit c5907c3.

* refactor(Get-Manifest): Select actual source for installed manifest

* rework sub-commands, `scoop-depends` is NOT working at this stage

* URI manifest

* opt

* deprecated manifest

* source of manifests

* source of manifest pt2

- Mark URI(path/URL/UNC/etc.) query as standalone manifest
- Drop `installed` and `available update` items for [query] and [installed] are different sources.

* remove variable preventing I forget it

* scoop-info: fix source of manifest on bucket

* fix `scoop-depends`

* Fix Standalone and Source detection

* fix global install

* Fix scoop-cat, scoop-home

- Query for remote manifest

* scoop-list: info +deprecated

* manifest: Fix first selected manifest

* gramma..

* Fix 61b3259

* length

* fix(scoop-depends-tests): Mocking `USE_EXTERNAL_7ZIP` as $false (ScoopInstaller#6431)

* fix(scoop-depends-tests): Mocking `USE_EXTERNAL_7ZIP` as $false to avoding error when it is $true

* CHANGELOG

* feat(autoupdate): GitHub predefined hashes support (ScoopInstaller#6416)

* feat(autoupdate): predefined hash case for GitHub

- Remove `sha256:` prefix in `format_hash()`
- Add GitHub support in `get_hash_for_app()`

Close ScoopInstaller#6381

* doc(chglog): GitHub auto hash update

* fix(autoupdate): remove prefix only

* docs(CHANGELOG): Update to 0.5.3 (ScoopInstaller#6432)

* docs(CHANGELOG): Update to 0.5.3

* 6416

---------

Signed-off-by: Chawye Hsu <[email protected]>
Co-authored-by: Olav Rønnestad Birkeland <[email protected]>
Co-authored-by: kiennq <[email protected]>
Co-authored-by: HUMORCE <[email protected]>
Co-authored-by: Ryan <[email protected]>
Co-authored-by: Chawye Hsu <[email protected]>
Co-authored-by: Bassel Rachid <[email protected]>
Co-authored-by: Wordless Echo <[email protected]>

* fix(autoupdate): Skiping github mode while hash.url already set

---------

Signed-off-by: Chawye Hsu <[email protected]>
Co-authored-by: Hsiao-nan Cheung <[email protected]>
Co-authored-by: Olav Rønnestad Birkeland <[email protected]>
Co-authored-by: kiennq <[email protected]>
Co-authored-by: Ryan <[email protected]>
Co-authored-by: Chawye Hsu <[email protected]>
Co-authored-by: Bassel Rachid <[email protected]>
Co-authored-by: Wordless Echo <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant