<div dir="ltr"><div dir="ltr">Ken,</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Oct 11, 2019 at 10:58 AM <<a href="mailto:ken.dickey@whidbey.com" target="_blank">ken.dickey@whidbey.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 2019-10-10 18:36, Phil B via Cuis-dev wrote:<br>
<br>
> Ugh/yay! It's not a new bug...  it's a fix exposing issues from the old <br>
> one.<br>
<br>
Hi Phil,<br>
<br>
I am currently out with a bad cold, so a proper fix will take me a bit <br>
longer.<br></blockquote><div><br></div><div>No rush needed on my account... rest up.  I have everything working again and only posted it rather urgently because others might experience similar issues due to recent changes.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
FYI, there are a couple of things on my list to take care of.<br>
   [1] Caching FeatureSpec's of a Package when scanned<br>
   [2] Making checks more strict.<br>
<br>
I did a short-cut for the current code by just checking feature names <br>
when adding FeatureSpec's to the SortedCollection of Packages to load.  <br>
When comparing, I need to use the most strict FeatureSpec rather than <br>
just checking the names.<br>
<br>
Simple to fix, but I have been busy of late.  Ya, always.<br>
<br>
One feature we could add.  Right now one can use the FileList to re-load <br>
an already loaded Package.  This re-checks dependencies but always loads <br>
the indicated Package.<br>
<br>
Would it be helpful/useful/not-too-confusing to have an option to <br>
re-load all dependencies?<br></blockquote><div><br></div><div>That might be nice as a feature not exposed via the UI.  It seems problematic to expose something like this depending on what changes one has already made to the loaded package graph.  (i.e. reloading might make things far worse in some scenarios) <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
My take is that this would break more things than it would help, as an <br>
updated dependent from one Package might break something in another, <br>
already loaded, Package which also requires that dependency.<br></blockquote><div><br></div><div>Exactly.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
One hopes in the typical case to only be updating a package at a time <br>
and if making a cluster of edits (e.g. with StyledTextEditor components) <br>
one could re-load a Package at a time from the FileList.<br></blockquote><div><br></div><div>Just FYI, that's not my typical use case at all.  It's pretty common that I have uncommitted edits across a dozen or more packages.  And then I may only selectively save them (i.e. I might have 10 modified packages but only save 8 of them)  It can be any combination of adding new features, fixing bugs, moving things between packages etc.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Starting from a fresh image and re-loading all Packages from their <br>
Features seems to me to be the simplest solution.<br></blockquote><div><br></div><div>That's generally my preference.  The question is what tools can we provide to help out when the re-load fails which is what I was running into.  In my case it was >100 packages and about a dozen of them suddenly had dependency failures and all I was seeing was a series of back to back dialogs telling me that a dependency failed but not what package the dependency was in (hence the request to log this information to the Transcript so that I could sort through it after the fact.)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Well, as you can perhaps tell, my head is stuffed and my thinking <br>
muddled.<br>
<br>
I'll let you "pre-flight" my fix(es) as I get there.<br>
<br>
Thanks again for you patience and resiliency..<br>
-KenD<br></blockquote><div><br></div><div>No worries. Rest up, the code will wait.</div></div></div>