On Tue, Aug 24, 2010 at 3:04 PM, Andreas Raab <andreas.raab@gmx.de> wrote:
On 8/24/2010 2:12 PM, Eliot Miranda wrote:
I always appreciated the 95% rule, a.k.a. don't let the perfect be the
enemy of the good.  Right now if one removes all packages and updates
one gets an ugly mess one can wade through with the debugger.  If one
were to simply skip the packages not in one's image one could certainly
get to a point that might miss a required package, but one could also
update without wading through the mess, without having to go through the
remove unloadable packages step and without having to go through
whatever other steps one had gone through to produce a finished image.

E.g. take my OS Cog VMMaker image which has been derived from an unload
step to be nice to svn users; the image is half the size of the normal
one.  It's a mild pain to build, loading packages, adding workspaces and
repositories etc.  Yes I could automate all this but it would be much
nicer to build it once and periodically update it.  I don't care if it
misses some required package; I can deal with that issue when I get to
it.  But not being able to update without wading through mud is, to put
it mildly, a downer.

I don't think you understand what I mean by "required" package :-) Consider that we're splitting the Morphic package along the lines that Pavel proposed. We add a MorphicWidgets package that includes all the Pluggable*Morphs. The problem is that the next version of the Morphic package will show these as REMOVALS so if you update the Morphic package and leave out the MorphicWidgets your image is an instant goner. That's what I mean by "required"; not some random goodie that nobody cares if it's absent.

Worse, this wouldn't just happen to people who have deliberately chosen to update only a subset; it would happen to *everyone* updating their trunk images and make it pretty much impossible to perform such operations. Unless we can find a solution to this problem, I think Bert's alternative is the only reasonable one - add an explicit list of ignored packages for the updater and you can add to that list whatever you want and it won't get updated. You'll have to deal with the consequences if something goes wrong there but as you said, you can deal with that when you get to it.

BTW, I'm not proposing relaxing this rule for trunk images, only for images in which packages have been unloaded, even packages in which all unloadable packages have been unloaded.  I don't want to wreck updating, all I want is for updating to work to some acceptable degree in unload-all-unloadable-packages (UAUP) images.

I'm sorry, I thought I was being clear and wasn't.  It is IMO preferrable to add a hack for UAUP images that allows them to update the packages they have available than the current situation where updating is possible only in a full trunk image.

best
Eliot
 

Cheers,
 - Andreas