-
Notifications
You must be signed in to change notification settings - Fork 173
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: Plugin install from ZIP getting stuck indefinitely #706
fix: Plugin install from ZIP getting stuck indefinitely #706
Conversation
@SteamDeckHomebrew/decky-testers priority on testing this one out so it can be released as part of v3.0.1! |
|
Interesting, but it is not working as intended. The current code is deriving plugin |
Here are steps to reproduce and also test the fix. You need GH actions run for new version of HLTB plugin: https://github.com/SteamDeckHomebrew/decky-plugin-database/actions/runs/10836675929 It's a zip in a zip type scenario so unzip one layer first. Remove the previously installed plugin (if you want a clean state) and install the PluginLoader from this PR. Do the same manual ZIP installation - everything will be fine this time. Plugin will be installed, progress bar will move forward and Decky will show the new plugin in the list. |
Anyone cares to take a look? I believe I gave good amount of info for this to be reviewed and tested? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(reviewing on behalf of testers i guess?) Works well, although at some point it would be nice if errors from here propagated up to the UI as toasts or something. Not a blocker, it was the same before too.
Steam version: 1726604483 (stable)
Tested this myself and experienced no major issues during plugin install or during normal operation. Apologies for this taking so long to get merged. |
Please tick as appropriate:
Description
This fixes issue: N/A
After debugging why plugin manual ZIP installations sometimes fail to finish and gets stuck I've noticed that plugin name is being extracted from folder name that is in the ZIP and not from the plugin.json file. This name is then used to search for plugin folder later on in the process (
plugin_folder = self.find_plugin_folder(name)
) and since the plugin folder name is pretty much guaranteed to be different than plugin name - assertion (assert plugin_folder is not None
) is triggered.This fixes it by reading the plugin name from plugin.json file that is included in the ZIP.
It might also be a good idea to check why the installer gets stuck when the assertion error is triggered but it is out of scope for this PR.