On Saturday, 13 April 2013 11:29:10 UTC+1, Martin Bazley wrote:
> The following bytes were arranged on 12 Apr 2013 by Alan :
>
> > Each package also can contain dependencies which may need to be able
> > to set their location. There are packages that are installed into one
> > of their dependencies, so if the dependencies isn't already there, it
> > needs to be given the position to install to first.
>
> Take StrongED's mode packages, for example. Those are distributed as a
> shell !StrongED application, so obviously it makes no sense to install
> that anywhere but over the existing copy of !StrongED.
>
> The current 'install and move' system breaks this just as badly, because
> if you've moved !StrongED then you have to manually move every mode
> package you install to the same place. (Also, what happens if you move
> !StrongED with one or more mode packages already installed inside it?)
This does work, because I implemented the move to look at what's installed
inside the the !StrongED directory and move them as well. The paths file
contains the location of the !StrongED directory (not the individual modes
files) so when is installs a mode later it puts them in the new !StrongED
location.
>
> So, if we're adding a 'list of draggables' control field, I think some
> way to refer to a 'draggable' in a separate package (which you would
> hope is included in the dependencies) in the default install location
> would be useful. That way, the shell application wouldn't be draggable,
> but would be automatically installed in the correct place. The current
> directory hierarchy/Paths file standard isn't compatible with this, but
> then again I think that needs to go away anyway.
>
The hierarchy bit isn't relevant for this part. The Paths file would work
even if there wasn't one. I'm not sure that you need to specify draggables
that live in another package. If you need the other location, then the
other package is a dependency, and that package would be stating that
it's draggable.
i.e. For StrongED modes, the StrongED modes itself would just say install
into the !StrongED path. If would not contain the new Draggable
field. !StrongED is also set to install into the !StrongED path and
it marks the !StrongED path as draggable. The installer will look
at the dependencies and as !StrongED is draggable will add the
!StrongED path to the dialogue to allow it to be changed.
>
>
> > I'd like opinions on what the new dialogue should look like and how it
> > should work. My initial thoughts are to list each package with it's
> > path and if it can be modified place a draggable icon by it, but any
> > ideas are welcome.
>
> Not workable, unless you're going to change the RiscPkg standard to make
> it impossible to install more than one thing out of the same package.
> There is a many-to-many relationship between packages and draggable
> components.
>
> I think you'd have to separate the list of packages to install and the
> list of components of those packages (which may be less than, equal to
> or greater than the number of packages).
I think I see what you are saying, I believe I'm thinking of Draggable
for where you are saying component and only specifying Draggable
components. i.e. The Draggable attribute is used to specify what parts
of the Package can be dragged and can be missing if everything needs
to go to a fixed place, one item if it's only one and multiple items if
there's more than one thing that can have it's location set.
>
> > It also simplifies the coding as there doesn't need to be any
> > heuristics to try to figure out what should be draggable and what
> > shouldn't. It will also mean that the apps window will be able to be
> > safely used to move and copy files that are not in an application
> > directory.
>
> Yes, these are the two main reasons I don't think attempting to proceed
> further with a package format which doesn't include a list of things to
> be dragged is realistic.
I think we completely agree on this point. My analysis is anything else
would be an over complication, if it would work at all. I know it get's
lost in other things, but the current package format is open and extensible
which is why I think it doesn't need replacing.
> But since we're agreed that changes to the
> format will be necessary, and these will undoubtedly be painful, could I
> ask you to delay them until we can agree on as many other changes as
> possible (e.g. getting rid of the Apps directory and its friends and
> moving everything into a subdirectory called something like 'Files')?
The most painful part is figuring out how to produce a GUI for the install
to present these things in such a way that I don't end up with another
round of complaints about it not being identical to a Save As box.
Technically, once the paths have been specified I just need to update the
Paths file and run the current installer. This particular change doesn't
need changes to the packaging back-end, just the user interface and the
Package format.
>
> It would be nice to limit the number of major rounds of package updating
> to one.
I agree, I'm afraid the front end is still going to go slowly and be incrementally improved, but reducing the number of time packages
themselves need to be modified should be minimized.
Before any updating is done I definetely want to review the SysVars/Sprites
handling to see if there is anything that should be done to the
package format in this area. This does include investigating your
idea of dumping them altogether and using Look At instead.
> Also, when we have a new format, I can probably help you with the
> updating process. I've built packages before, and it shouldn't be too
> difficult.
Thanks, it would be nice if this still apply if it was better, but not
necessarily exactly what you want.
>
> > The only disadvantage of specifying everything first in the Install
> > dialogue using the new control field is that it will need to use a
> > generic app/folder/file icons for the dragging and not the correct one
> > for the item itself.
>
> May I suggest the Wimp sprite named - ahem - "package"?
Good idea, my main worry was if it needed to be a individual icon
for each application. The app/folder/file idea was so you would
get a better idea of what it was you were dragging. Just using
package would be a lot simpler.
>
> > My intention is that the changes won't stop the packages working with
> > RiscPkg or older versions of PackMan, but I can't guarantee that at
> > the moment. PackMan itself must be able to upgrade so in the worst
> > case there may be a period of time where PackMan is still installed to
> > a fixed location after which it would stop working.
>
> I wouldn't worry too much about !RiscPkg - as far as I'm concerned it's
> dead software. The fact that it only supports fixed location installs
> is its biggest problem, and incompatibility introduced this way is
> arguably just another manifestation of that.
>
OK, RiscPkg still does some things that PackMan can't at the moment, e.g.
selecting multiple packages at once and marking packages so they don't
upgrade, so the question is really aimed to see if there are people
who need this functionality or anything else from !RiscPkg now.
PackMan has always been aimed as an alternative to !RiscPkg as !PackMan
was written to make the user interface to packages easier (in my
opinion). To make it a replacement is a new step which is why I'm
considering the consequences very carefully.
Regards,
Alan