Skip to content

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

Merged
HUMORCE merged 21 commits intoScoopInstaller:developfrom
HUMORCE:refctor/parse_app-n-get-manifest
Aug 10, 2025
Merged

refactor(Get-Manifest): Select actual source for manifest#6142
HUMORCE merged 21 commits intoScoopInstaller:developfrom
HUMORCE:refctor/parse_app-n-get-manifest

Conversation

@HUMORCE
Copy link
Copy Markdown
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
Copy Markdown
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 <niheaven@gmail.com>

* 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 <niheaven@gmail.com>

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

Signed-off-by: Chawye Hsu <su+git@chawyehsu.com>

* 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 <niheaven@gmail.com>

* 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 <su+git@chawyehsu.com>
Co-authored-by: Olav Rønnestad Birkeland <6450056+o-l-a-v@users.noreply.github.com>
Co-authored-by: kiennq <kien.n.quang@gmail.com>
Co-authored-by: HUMORCE <humorce@outlook.com>
Co-authored-by: Ryan <sitiom@proton.me>
Co-authored-by: Chawye Hsu <su+git@chawyehsu.com>
Co-authored-by: Bassel Rachid <101208715+basselworkforce@users.noreply.github.com>
Co-authored-by: Wordless Echo <wordless@echo.moe>
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 <niheaven@gmail.com>

* 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 <niheaven@gmail.com>

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

Signed-off-by: Chawye Hsu <su+git@chawyehsu.com>

* 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 <niheaven@gmail.com>

* 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 <su+git@chawyehsu.com>
Co-authored-by: Olav Rønnestad Birkeland <6450056+o-l-a-v@users.noreply.github.com>
Co-authored-by: kiennq <kien.n.quang@gmail.com>
Co-authored-by: HUMORCE <humorce@outlook.com>
Co-authored-by: Ryan <sitiom@proton.me>
Co-authored-by: Chawye Hsu <su+git@chawyehsu.com>
Co-authored-by: Bassel Rachid <101208715+basselworkforce@users.noreply.github.com>
Co-authored-by: Wordless Echo <wordless@echo.moe>

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

---------

Signed-off-by: Chawye Hsu <su+git@chawyehsu.com>
Co-authored-by: Hsiao-nan Cheung <niheaven@gmail.com>
Co-authored-by: Olav Rønnestad Birkeland <6450056+o-l-a-v@users.noreply.github.com>
Co-authored-by: kiennq <kien.n.quang@gmail.com>
Co-authored-by: Ryan <sitiom@proton.me>
Co-authored-by: Chawye Hsu <su+git@chawyehsu.com>
Co-authored-by: Bassel Rachid <101208715+basselworkforce@users.noreply.github.com>
Co-authored-by: Wordless Echo <wordless@echo.moe>
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