mschoenherr / ironsworn-companion

An unofficial ironsworn rpg companion, written with re-natal/clojurescript.
GNU General Public License v3.0
3 stars 0 forks source link

Massive data loss #1

Open thynctank opened 5 years ago

thynctank commented 5 years ago

I have reported this briefly on the g+ Ironsworn group, but as that's disappearing and I'd like to actually help with this project, here goes again. Very un-scientifically:

I created one campaign, and within it a single complete character, including assets, bonds, and vows. I had three or four progress tracks, including one representing a foe group. I made many journal entries (at least 30, of lengths from a couple sentences to two or three paragraphs worth) and had rolled several dozen actions of many sorts, a few of them progress and others frequently using oracles for inspiration.

Once I grew used the interface and getting around it, I began to love the app.

However, after one heavy night of use after one or two very light use days, all of my data besides the campaign name itself seems to have vanished.

I never needed to explicitly save anything before, but I'm not sure there's a manual of any kind so I may have made a misstep somewhere.

I'm happy both to jump through hoops as a user to try to reproduce and debug this, as well as contribute to code and documentation.

Thanks!

mschoenherr commented 5 years ago

I might have accidentally introduced a racing condition when the app loads up. The list of all present games and the last saved gamed are loaded asynchronously. I will check whether that's the problem.

thynctank commented 5 years ago

@mschoenherr I've never written ClojureScript (or Clojure) or React Native, though I've written tons of JS and have worked a little with React, as well as a few other languages that transpile to JS. I'm also very invested in using this app once I feel certain I won't run into this issue again.

I'm also happy to look into any specific low-hanging fruit issues you'd like to have me dig into.

If I don't get around to cloning this tonight or tomorrow, I'll definitely do so over the weekend and will trawl through the codebase to try getting familiar with it.

Thanks!

mschoenherr commented 5 years ago

@thynctank I uploaded a beta release which hopefully fixes this issue (and some others). I will test it a bit before uploading it into the playstore. I would appreciate it, if you could also test it and tell me if you encounter problems. It would be nice to

1) Install release 0.11.0 from the releases page of this repo and create a campaing with at least one character. 2) Install release 0.11.1-beta 3) check if the old save carried over 4) create other campaigns, switch between them and delete them

I hope nothing shows up. Then I will turn to the logging, i.e. import/export feature.

thynctank commented 5 years ago

@mschoenherr many thanks for the update, I will give your exact steps a try and respond when I have time, hopefully in the next day or two.

I've been swept up in job search and destressing from that when not on it, or I would've been studying up on Clojure a bit as well. I still hope to contribute here in the future.

mschoenherr commented 5 years ago

I thorougly tested the new release and will push it into the playstore. It should greatly reduce the risk of further data losses. Nevertheless, I will keep this issue open. The asynchronicity of the storage solution is a problem in itself and i will put a switch to a better back-end into the todo-list. This issue will remain open until this is addressed.

thynctank commented 5 years ago

Hey @mschoenherr, I apologize profusely for not coming back to this sooner.

My life was in upheaval for a couple of months while I looked for new work, I awaited an almost 2-month background/criminal check across several states in which I've lived/worked, and my "not technically a severance package" severance package took forever to be released, and I barely receive any unemployment benefits to bridge joblessness period... I had moderate depression and agoraphobia that saw me barely engaging in [mostly solo] board games, one of my greatest passions in life.

None of this is relevant to your life, your profession or your passions, but I nevertheless felt like venting a little.

TL;DR: Sometimes in life "it" happens, to paraphrase Forrest Gump during his cross-country jog and beard-growing experiment.

Anyhow, I am refamiliarizing myself with both Ironsworn and Companion, but at a glance (including managing multiple campaigns) all seems well so far. I do hope to put your STR instructions to use and give you a confirmation as to whether your specific fix - which I assume would definitely trigger given your steps to repro - in the very near future.

You likely also don't care a great deal about this, but I was speaking to one of my new coworkers earlier about your app briefly (I don't think he knows what an RPG is, let alone Ironsworn) but it got me thinking about Clojure/Clojurescript. I still hope to read through the codebase in my increasingly sane and less angst-shattered free time. I'd like to both help with any bugs you or others uncover, as well as potentially make creative changes around how the UI is represented, should you be ok with that. Even should you not be ok with a UI/UX retooling for your app, I'm hoping you'd allow me to fork it and institute these changes in my own fork, whether they ever got merged back to the main app or not.

Thanks again for everything.

mschoenherr commented 5 years ago

Hi Nick,

I hope everything will get sorted out for you. You can feel free to fork/work on the code. UI changes would be indeed welcome, you probably know a lot more about that than I. I really hope you will find the code workable.

See you around