-
Notifications
You must be signed in to change notification settings - Fork 124
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
feat: Add SDH-GameSync v1.0.0 #784
base: main
Are you sure you want to change the base?
Conversation
Can you please give context as to why this needs to be a separate plugin listing/fork and not a PR to the original plugin? |
@EMERALD0874 yeah it's actually pretty straightforward, the change is too large: https://github.com/GedasFX/decky-cloud-save/compare/main...AkazaRenn:SDH-CloudSaveFork:main?expand=1 |
@AkazaRenn crazy to see you again! A bit of history: I have developed DCS as a means to just back up certain paths to somewhere as I had Lutris constantly delete my save files for no reason. It was my first plugin, and really my first time using python in a "more serious" setting, so that plugin really desperately needed a remake. Over time people discovered the plugin and kept asking for features, that really I had no interest in adding, but as I was new to FOSS, and had time still, I added some requests. After a while, life hit hard, and I had honestly by far the busiest year of my life. Had no time to add features. Caved to pressure and managed to squeeze in the MUCH MUCH requested bi-sync feature, which flooded me with confused people how to use it. Left me really drained and just made me want to quit FOSS development entirely. Final nail in the coffin, however, was the base plugin itself - it was purpose built for one feature only - backup, and the code base made any deviations very hard. Whether its backwards compatibility, changing users habit, or anything else, that plugin needed a complete rewrite. so that's why (almost a year ago) started work on ludusavi wrapper, which I finished today. Not much work, but thats how busy I just was xD Simply put, I want to get rid myself of that plugin. It has outlived its usefulness, getting anything done is a delicate dance of backwards compatibility, convoluted testing, and support for features, I had no desire to see in the first place. If someone wants to take over, I am all for it, but as mentioned before, its best to just leave it deprecated, have people move on, and then remove it. |
I am more than willing to review + test this, as regardless if it was gonna be a PR to original repo, then it would have to have my review anyway 😄 |
Hiiiii @GedasFX , good to see you back! I'm so glad to hear the support from you and I cannot thank you enough for the ground work provided. Sorry that I said I could do it during the holidays but managed to delay it for over three months 😆 If you want to give a check on the plugin, fell free to get it from here https://github.com/AkazaRenn/SDH-CloudSaveFork/releases/tag/20250315161024 |
Its all good! Glad you are alright ^^ That was basically last week when you mentioned it to me anyway :D I started to have a look at the code, and I believe it will have issues as you changed the base image of the Dockerfile, and I remember I had issues with CI, but may have been fixed since last I pushed. |
@GedasFX here comes the interesting part, the docker image now is no longer responsible for building the image since the decky binary will take care of it. That image, is where I steal the rclone binary from 😉 |
@AkazaRenn Given Gedas' interest in releasing maintainership, could you handle this as either PR to their repo or a transfer of maintainership of the existing Decky Cloud Save? I'd prefer we not have a plugin on the store that isn't being actively maintained/supported. |
I'm not sure current users will be happy about it suddenly getting revamped into something totally different. To me the better way is to keep Gedas' plugin in store until it's broken, then we take it down and recommend users to migrate to mine. |
If it's something totally different, I'm concerned that repeatedly referring to your work as "a fork of Decky Cloud Save" and "Cloud Save Fork" could confuse users into thinking it's just an upgraded version of the original Decky Cloud Save like I thought. An original plugin name and a description change to "A fork of Decky Cloud Save with [features added]" may help here. |
@EMERALD0874 sure let me think about it, the major reason that it's called CloudSaveFork is because I suck at naming 🥹 |
@EMERALD0874 how about "Game Sync"? Would it be too general? |
If that's a name you like, it's fine by me. |
0e84146
to
1706493
Compare
@EMERALD0874 updated! |
Please rebase from main and resolve merge conflicts so you aren't building multiple plugins. After that, I'll deploy to the testing store. |
1706493
to
d07a72c
Compare
@EMERALD0874 done, thanks for your help! |
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.
LGTM for testing. We may revisit the concern of having a fork of a plugin that accomplishes the same goal also being on the store, but I understand your view and want to find a solution that works for everyone. At least for now, I think I'm good with adding it as is if we get a good testing report.
@EMERALD0874 sorry could you please trigger the pipeline again? I just found a stupid issue and had to make a fix |
The plugin works fine but I did have to modify config.json to make the rclone bisync (which this new fork uses) command work reliably, otherwise any tiny error would require me to resync, which was annoying and time consuming.
Sorry if this is the wrong place to post this, but there is no github issues page for SDH-GameSync so I decided to post it here. It's not really an issue, maybe a suggestion for the defaults or some would-be help for anyone stumbling across this on google. |
@pizzadude thanks for testing it out! It makes sense that a resync is required every time an error occurred, but as for the reason of the error, it may differ between the cloud providers, that's also one of the reasons I'm moving all bisync args into the config to make it possible for users to modify them, you can probably take look at the sync logs to tell what actually was caught by rclone that it thinks the sync should fail. As for the repo, you can find it here https://github.com/AkazaRenn/SDH-GameSync/ |
@GedasFX @AkazaRenn Sorry for the wait, the pipeline is deploying your changes now. |
@EMERALD0874 thank you so much! |
@GedasFX OMG I cannot thank you more for the thorough test! I'm going through all the problems you pointed out and trying to fix them. [1] Immediately after installation, you only have the option to select Cloud Provider. All buttons open store.steampowered.com. Maybe it is a clash with the browser plugin, please double checkIt's intentional to block all other buttons before a cloud provider has been configured, since you cannot do anything without that. As for the problem navigating to Steam instead, I've made it too strict finding the url from rclone stdout and a recent update on rclone adding a new line before the url broke everything, will fix in the next iteration. [2] If you are not familiar with rclone config creation, current documentation and helpful tips are very lacking. Took me a while to get the config file and to the correct place. Also documentation paths are with incorrect casing (~/homebrew/settings/sdh-gamesync/ vs ~/homebrew/settings/SDH-GameSync/. While it does work, I highly suggest revisiting this to make it more convenient. If [1] is fixed, maybe less of an issue.I'll leave it there for now since [1] will be fixed. Documentation will be updated for sure. [3] Screenshot upload system shows that upload fails, even though it clearly shows up on my drive.My mistake, mixed two conditions in one check, will fix in the next iteration. [4] Bisync does not create a folder on drive remote? There are some steps needed to be taken to be able to upload anything.Yeah that's a part that I couldn't figure out, rclone doesn't seem willing to create a destination by itself even when it's resyncing. Did you managed to solve it in [5] Cloud Provider page, maybe has bottom of clouds cut off? They look very janky, but overall a non-issue.It looks good on my side, shouldn't have issue because I mostly copy-pasted your code 😂 [6] It appears that autosync on start is not suspending the game, which is different from base plugin. Maybe intentional.Yes it's intentional, now only game syncs (rclone copy or sync) will block the game as a way to improve the game launching time. [7] I got
|
b2cf955
to
859a91b
Compare
Updated with fixes in 859a91b |
After I installed the plugin, the plugins stopped loading, but after a restart everything showed up normal... I will call this a fluke as been a while since i opened my deck again 😄 [1] Fixed ✅
The other 2 comments: ✅ and, epic! ✅ New stuff: Some other thought I just got: |
@GedasFX As for the screenshot destination, because screenshot is using BTW I've figured out the filter tabs, turned out I really just need to create a wrap up function for shared filters. Addressed everything but [10] in the latest commit db1f677 |
SDH-GameSync
A fork of Decky Cloud Save that I have rewritten (probably) over 70% of the code. The major differences between this plugin and Decky Cloud Save are:
<appId>.filter
Task Checklist
Developer
Plugin
Backend
Community
#771 (comment)
#778 (comment)
Testing