remoteStorage.js 0.10.0-beta released

Hi everyone,

Today we merged the biggest pull request ever (101 commits, countless hours of work) into master and released a shiny new version of remoteStorage.js! It comes with completely rewritten caching and sync backends, making everything more stable and performant.

It’s 0.10.0 beta for now, but we’re fairly confident it’s already stable enough for everybody to test it with production apps. In fact, we think it’s already better than the latest stable release as well as master before the merge, because apart from the better caching and sync, some serious bugs have been fixed on the way.

So, everyone please update your apps as soon as possible, and if you run into any issues, report them on GitHub or let us know on IRC! We’re here to help.


If you’re not a developer, but you want to help test the release, you can use e.g. https://webmarks.5apps.com and see if everything works ok for you. Would be especially great to have people who run their own server test some apps.

Many thanks to all collaborators, especially @michielbdejong and @galfert!

Cheers,
Basti

3 Likes

Thanks for this release.

But…

Is there a way to force remote sync ?

User story: I’m using rs in an application on my phone, so I set a long sync interval, say 10 minutes. But I know I will soon loose the network because entering a tunnel, so I want to sync now. I looked at the code but didn’t find how to to force sync outside of the sync interval. Calling remoteStorage.sync.sync() doesn’t do the job, because it checks if nodes are outdated, and otherwise does nothing.

If nothing is outdated, nothing needs sync. It should fetch the directory listing for that, though.

Storing and removing objects syncs these objects immediately, so no reason to do an additional sync just to copy your local changes to remote before entering the tunnel.

I don’t know off the top of my head. In theory you should find it when following what the sync button in the widget does. Definitely needs documentation for people wanting to force it.

Yes, I just need to know if remote content is available.

That’s weird. The sync button calls rs.sync.sync(). I just did some more tests, and now the remote root is fetched every time I call the method. In my previous tests, sync didn’t triggered network call. I think I had been disconnected on a page reload.

Sorry for the annoyance. I noticed the issue when using the application on my phone, but I presume that’s network issues preventing the request to succeed.

No reason to be sorry! Sync is an incredibly hard thing to get right, and I’m sure we still have lots of room for improvements as well as hidden bugs, especially with edge cases.