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 for windows plug-in upgrades issue: #1623 #3401
Conversation
Is there a repository of older plugins which i could use for testing? |
|
@BaronGreenback a while ago Dolphin implemented a system to allow users to modify resource pack folders at will which I thought would be useful here. The plugin downloads would be inside a folder with a small file containing information like the GUID and version. This would allow any name for the files or folders as long as the metadata file is present, and would fall back to the existing behavior when missing. There would be some drawbacks to this method, but I figured I'd bring it up anyways for general discussion. |
This versioning is basically to get around the issue of windows not being able to delete a locked file until reboot. The package is already downloaded as a zip file - so any additional files could be included in that. What was the idea behind the metadata file? creating multi-plugin packages? |
Have noticed that notification pops up saying (object object), so i don't know if i;ve introduced a bug. eg OpenSubtitles version ([object] [object]) |
I think you can get rid of a lot of the version parsing and comparison logic by using the |
Nice, i like this a lot. We should probably store the manifest in the plugins zips (or generate it from the actual repo) and put it in |
If we store a manifest in the ZIP it would increase the burden on third party repositories though. |
That is fair, but Kodi repos can also deal with it perfectly. We might need some "build" tooling. It does make it very easy to make a repo manifest from a folder of zips though. (we could even just package the build.yaml with a different name) |
The plugin zips now have the meta.json files, so this should now be a solvable issue. Without depending on the actual path name, but discovery can just rely on enumerating all meta.json files in the tree. |
@crobibero Named tuples implemented |
Co-authored-by: Cody Robibero <cody@robibe.ro>
Co-authored-by: Cody Robibero <cody@robibe.ro>
Co-authored-by: Cody Robibero <cody@robibe.ro>
Co-authored-by: Cody Robibero <cody@robibe.ro>
Co-authored-by: dkanada <dkanada@users.noreply.github.com>
Co-authored-by: Cody Robibero <cody@robibe.ro>
Co-authored-by: Cody Robibero <cody@robibe.ro>
Co-authored-by: Cody Robibero <cody@robibe.ro>
Co-authored-by: h1dden-da3m0n <33120068+h1dden-da3m0n@users.noreply.github.com>
Co-authored-by: h1dden-da3m0n <33120068+h1dden-da3m0n@users.noreply.github.com>
Co-authored-by: h1dden-da3m0n <33120068+h1dden-da3m0n@users.noreply.github.com>
Alright this seems that it might be ready for a merge, correct? @jellyfin/core |
yes - all the adaptations have been done that have been suggested. |
Great solution! If we weren't so diverged already I'd mark this a stable backport, but I feel like that would be hopeless. So 10.7.0 🚀 |
Plugins are stored in version marked folders. (eg. TMDb Box Set.4.0.0.0) with only the latest version installed at start up.
The attempted removal of each earlier versioned folders can be enabled to be done at startup. (Disabled in this change) If the folder is found to be locked, another attempt can be made at the next execution of Jellyfin. At worst, the plugins folder may have some older versions left behind - which will be ignored by the system.
The system is backwards compatible - only "version loading" the folder if a version number is included in the folder name.
#1623