Hi everyone,
this seems to be Open Source, made in C++ and cross-platform: https://github.com/Skycoder42/QtAutoUpdater and https://skycoder42.github.io/QtAutoUpdater/
Let me know your thoughts. I know that C++ and Python are the preferred languages for the project since the core code of Inkscape is written in C++ and the plugins and extensions are written in Python.
Cheers!
--Victor Westmann
2017-09-16 23:49 GMT-07:00 Tobias Ellinghaus <houz@...173...>:
Am Samstag, 16. September 2017, 14:22:50 CEST schrieb Eduard Braun:
Hi all,
I really like the general idea! However I'm quite unclear on how the details could/should work...
Most important question from my side: What type of update mechanism do we actually have in mind?
- Simply notify the user "Hey we have a new version, visit our homepage to download!"
- Automatically download a suitable package for the user and start installation.
- Some even more sophisticated update logic inside the updater.
I think option C is pretty much out of question as it's almost impossible to implement and I guess it's unlikely we can get it right across all OSs. (Unless of course there's cross platform software designed exactly for this purpose and we're willing to switch our packaging...) Even option B gives me a headache: We do not only have to support a lot of different OSs but on each of these OSs we have different packaging options. How do we decide which is a "suitable package"? How do we avoid to interfere with packaging options that already provide automatic
updates?
Last but not least, option A: While this is probably the easiest to implement and mostly OS-independent even here we have some complications: If we release Inkscape 0.92.3 but don't have a Windows package yet - do we notify Windows users anyway? Or do we differentiate here? If we differentiate OSs - should we even differentiate individual packages? If we differentiate individual packages - what do we do if we discontinue a package or can't offer an update package for any other reason? If we differentiate individual packages we're also back to the problem of option B and have to keep track of what package the user actually obtained in the beginning.
I don't want to sound too pessimistic, but at this point I'm unsure if anything beyond a simple notification for a new Inkscape version (OS and package independent) is feasible without an unproportionate amount of
work.
Obviously we could leave it to packagers (as we basically do now) so we do not have to deal with OS differences in Inkscape itself but that kind of defeats the whole purpose of this thread as I assume a unified solution with metadata provided centrally from the homepage as Martin mentioned would be preferable...
Maybe something halfway between dealing with it in Inkscape and having the maintainer do it might be feasible: Have a mechanism that regularly checks an RSS feed (or some other easily parsable file on a webserver), checks the signature of the file (so that it can't be faked) and compares the timestamp + version of the latest release to what is currently installed (so that old versions can't be replayed). If it's newer it offers to download the file, check its signature and install it. Where the packager comes into play is the URL of that RSS feed. For every flavour of installer a custom feed would be configured at compile time. Alternatively the RSS feed (or JSON file as that's allowing easier extension with custom data) could also mention the supported operating system, 32/64 bit, installer type and so on. Whenever a new build gets uploaded it gets added to the feed automatically. That would however make the code in Inkscape that does the checking more complicated.
Let me know what you think... Maybe I'm overlooking something and a solution might be easier than I can imagine!
@tghs: I'd be happy to get together with you, but while we're still unsure how the process could look it's probably a bit early to even think about UI...
Regards, Eduard
Tobias
[...]
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel