Hi Klaus,
Klaus wrote:
A (probably) old stack stored in an splash stack? Why not check your web space (or github or sourceforge or ...)
for the newest version available, and load & install this then?
This would require an ONLINE connection to start the app for the very first time!
Not good
Agree. You're perfectly OK here, I fell to my assumption of an ever-present online connection. But, after all, we're talking of auto-update over the internez here, so - is this assumption this strange?
What I meant was that, in many cases, the main stack (and all sub-stacks) version stored in the splash stack will be outdated at arrival - why then carry this "rather useless pay-load"? We expect the program to auto-update itself, that's topic here, so we'll have a connection, right?
I agree that, for the first installation, a full set of stacks would be nice. In case we'd release on CD/ DVD. That's what I forgot.
But I haven't done such not once anymore during the recent years. Anything I released came to the customer via FTP or HTTP download. My trusty old Plextor burner is covered in spiders webs meanwhile.
And when it comes to downloading, I'd not want to have my customers downloading some MB of stuff they'd never need. Think we can agree this far?
Klaus wrote: ...(+ path ("answer folder "Where to drop?")
I would NEVER EVER let the user decide where to store the most important part of my app!

MacOS (old) only. Where we don't have a suitable pre-defined specialfolderpath here. They can store it everywhere on the disk, and it will work

See below, too.
Klaus wrote:"specialfolderpath("preferences")"? Mac only.
That was just
a. a test of your attention!

b. a quick and dirty example to visualize my concept, I really didn't want to supply a "ready to copy/paste" solution!


Yup, got it. The problem we'll run in is that we need to get anything but our splash-stack (= runtime) stored in a place where we have write-access. Else we'd have to store all and anything the user could change in our stack system outside of it, and import again at any startup.
And due to the restrictions some OS' are featuring we'll usually need to have the splash stack in the "programs" location, and the connected "work stacks" in the "documents" location, where we have write access, right?
Klaus wrote:I'd try to get zipped packages at my web site, named with enumeration, i.e. MyApp_V0001, MyApp_V0002 etc. These could contain all necessary stuff to update my program, including all instructions to the splash stack.
So this splash stack could even get the instruction to ask the user "Sorry, my old friend. I'm out of date meanwhile. Allow me to replace me with a new copy of myself?". And then closes & starts a download of a "super-splash" stack that renews the splash stack, starts it and then have it delete itself? Hmmm ...
The SPLASH stack IS the standalone and you cannot replace this one, you would need to replace the complete standalone!
Here I might have been too euphoric ...
Basic idea was that we might have to replace the splash stack, too, sometimes.
How to do this?
My idea was to have the splash stack find out that it's outdated, download and install another standalone containing the updater stack, starting this one and closing itself.
Now the "updater standalone" would delete the old splash stack and replace it with a new version. Start this one and terminate itself.
Got it?
For sure, this might be impossible. I'll soon try it, as soon as I find some spare time. Even if I'll fail badly I'll learn something new
Don't get me wrong, I regarded your post most inspiring, and actually started to work on such a solution. In no way I'm criticizing, I'm just trying to push the envelope to find out what's OK and what will never work.
I have done a similar work years ago in MSAccess (self-updating .mdb's) and from there I know it's the least problem that's to be done in the code itself. The real problems come when there's access restrictions by the OS, and, even better, when these restrictions change from version to version. This is the tricky part, thus my emphasis on specialfolderpaths.
Thanks a lot for your ideas and your help, it's most appreciated.
Please excuse if I'm behaving a bit nOOb-like sometimes, I have started with HyperCard ages ago, went to MSAccess then, and am now trying to come back to the bright side of coding again. And am quite overwhelmed by all the new features and possibilities
Kind regards and thx a lot!