Writing the NLPP program, one of the very biggest challenges was to make a no-hassle upgrade procedure. This was one of the hardest things to do and also one of the parts that took up most time to code and test.
Something is wrong in all this.
I try to see software as tiny bits and pieces, each doing a certain task. Like very simple Lego building blocks. So each piece takes some input (like a function does) and produces an output. If that piece needs to be updated, then it's because it has some error, or that there is a faster way to do, what it already does. If new building blocks arrive, because new software needs them, then they're just added to the system.
If that is done right, then updating should be very simple and only include very little data to be transfered to my system.
In the past I've done upgrades by binary diffs but then you have to track each binary to get the right diff
Geomol, how do you handle changes in configuration structures that way?
Couldn't such structures just be small files, each taking care of a certain part of the configuration?
Following this thought, maybe all the mezzanine functions in %cortex.w (in World) should be separate files in a directory? And the shell commands should be separate files in a %libs/shell/ directory.
Reminds me, that I should pick up my database again. It has records as separate files.
well, that's black box theory
but things don't exist in isolation
Can't we make them? :)
some-func: func [input1 input2] [...] ; -> produces some output.
That's isolated, and it should work, even if other functions, it depends on, get updated. The task is to define each function/object as doing one simple thing.
And then implement a system like Erlang, where every piece can be hot-swapped.
so you want to distribute source code
each piece needs to be then signed
or virtual machine code or real machine code
I think, that was what the Elate, that Amiga looked at, what about.
Ok, off topic now .. can move to ~Chit-chat or ~Humour :)
Henrik, the package repositories for older Debian versions are still available, but you'll have to change the URLs.