Skip to content

speccy: Recover app dependencies in pre_install scripts#18167

Open
AkariiinMKII wants to merge 5 commits into
ScoopInstaller:masterfrom
AkariiinMKII:fix-speccy
Open

speccy: Recover app dependencies in pre_install scripts#18167
AkariiinMKII wants to merge 5 commits into
ScoopInstaller:masterfrom
AkariiinMKII:fix-speccy

Conversation

@AkariiinMKII

@AkariiinMKII AkariiinMKII commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Closes #18156

What behaves different:

Tests

64bit

> scoop install speccy
Installing 'speccy' (1.34.84) [64bit] from 'extras' bucket
Loading spsetup134.exe from cache.
Checking hash of spsetup134.exe ... ok.
Extracting spsetup134.exe ... done.
Running pre_install script...
Extracting app dependencies from installer...success!
done.
Linking ~\scoop\apps\speccy\current => ~\scoop\apps\speccy\1.34.84
Creating shim for 'Speccy'.
Making C:\Users\A1\scoop\shims\speccy.exe a GUI binary.
Creating shortcut for speccy (Speccy.exe)
Persisting Speccy.ini
'speccy' (1.34.84) was installed successfully!
image

32bit

> scoop install speccy -a 32bit
Installing 'speccy' (1.34.84) [32bit] from 'extras' bucket
Loading spsetup134.exe from cache.
Checking hash of spsetup134.exe ... ok.
Extracting spsetup134.exe ... done.
Running pre_install script...
Extracting app dependencies from installer...success!
done.
Linking ~\scoop\apps\speccy\current => ~\scoop\apps\speccy\1.34.84
Creating shim for 'Speccy'.
Making C:\Users\A1\scoop\shims\speccy.exe a GUI binary.
Creating shortcut for speccy (Speccy.exe)
Persisting Speccy.ini
'speccy' (1.34.84) was installed successfully!
image

Simulation for typical failure (dll file miss in installer)

> scoop install speccy
Installing 'speccy' (1.34.84) [64bit] from 'extras' bucket
Loading spsetup134.exe from cache.
Checking hash of spsetup134.exe ... ok.
Extracting spsetup134.exe ... done.
Running pre_install script...
Extracting app dependencies from installer...failed!
WARN  Failed to extract app dependencies from C:\Users\A1\scoop\cache\speccy#1.34.84#7ffe7b5.7z
WARN  App functions may be limited due to missing dependencies.
WARN  Please check the downloaded cache and try again.
done.
Linking ~\scoop\apps\speccy\current => ~\scoop\apps\speccy\1.34.84
Creating shim for 'Speccy'.
Making C:\Users\A1\scoop\shims\speccy.exe a GUI binary.
Creating shortcut for speccy (Speccy.exe)
Persisting Speccy.ini
'speccy' (1.34.84) was installed successfully!
image
  • Use conventional PR title: <manifest-name[@version]|chore>: <general summary of the pull request>
  • I have read the Contributing Guide

@coderabbitai

coderabbitai Bot commented Jun 27, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The pre_install script in bucket/speccy.json now derives the executable name from architecture, conditionally moves it into $dir, preserves the Lang folder during cleanup, and renames Speccy64.exe to Speccy.exe for 64-bit installs. It also adds cached-installer recovery for cpuidsdk.dll, including validation, extraction, duplicate pruning by file length, renaming, and warnings for missing cache or extraction failure.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • ScoopInstaller/Extras#18147: Rewrites the same pre_install executable handling and cleanup logic in bucket/speccy.json, and this PR extends that area with cpuidsdk.dll recovery.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR preserves Lang and cpuidsdk.dll, but it keeps the smaller cpuidsdk.dll for 32bit, conflicting with #18156's larger-copy requirement. Update the DLL selection logic so the larger cpuidsdk.dll is kept for both architectures, then revalidate the install flow against #18156.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise, conventional, and matches the PR's main change.
Out of Scope Changes check ✅ Passed All changes are directly related to preserving Speccy's dependencies and avoiding removal of required files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed The PR description includes the required issue reference, summary, tests, and completed checklist items, matching the template closely.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@AkariiinMKII

Copy link
Copy Markdown
Contributor Author

/verify

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@bucket/speccy.json`:
- Line 21: The cleanup step in the manifest is too broad and removes more than
just the architecture-irrelevant executable. Update the script in the speccy
manifest so the cleanup logic only targets the unwanted EXE rather than
iterating over the top-level contents of $dir; keep the extraction flow that
preserves Lang and the needed files, and adjust the command around
Get-ChildItem/Remove-Item accordingly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 9c051272-d36d-4adc-bbe3-3beef8f52c93

📥 Commits

Reviewing files that changed from the base of the PR and between 23bd162 and cc54b21.

📒 Files selected for processing (1)
  • bucket/speccy.json

Comment thread bucket/speccy.json
@github-actions

Copy link
Copy Markdown
Contributor

All changes look good.

Wait for review from human collaborators.

speccy

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

@AkariiinMKII
AkariiinMKII marked this pull request as draft June 28, 2026 07:27
@AkariiinMKII
AkariiinMKII marked this pull request as ready for review June 28, 2026 12:54
@AkariiinMKII

Copy link
Copy Markdown
Contributor Author

/verify

@github-actions

Copy link
Copy Markdown
Contributor

All changes look good.

Wait for review from human collaborators.

speccy

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

@AkariiinMKII

AkariiinMKII commented Jun 28, 2026

Copy link
Copy Markdown
Contributor Author

@z-Fng It's ready for review now, try this one?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: speccy: App environments unexpectedly removed

1 participant