I spent some time looking at each of the two issues I mentioned:
- What to do about message wording that can be interpreted alarmingly.
- What to do about missing/removed Packages.
I've gone through the code looking for Error level messages and how best to interpret them. Not surprising to me, Dominic's code is very good at ignoring/skipping them. He just chose "alarming" words I think. Looking at that #300 above, all of those are ignored. HPM just keeps on working, as I mentioned. As yet unreleased, but I've 'downgraded' them to "Info" level and reducing the intensity of the words.
These "errors" are problems that the Package Developer introduced and don't cause HPM to stop or fail. HPM just ignores them. Admittedly, the Manifest flaw can have an effect elsewhere, but for these examples from MatchUp, they have no direct effect. By that I mean: if the developer has intentionally removed the package or manifest, then HPM can no longer find updates, install, or repair those particular Packages. You should treat them as information and choose how you wish to handle it. Contact the Developer certainly and see if it's intentional.
I've also looked at how to assist with "Owner Migration" of a Package. I'm testing for unintended consequences, but I have made some progress:
info A repository was removed, [https://www.hubitatcommunity.com/hpm/communityrepo.json]
debug missingRepositories: [[name:Community Code, location:https://www.hubitatcommunity.com/hpm/communityrepo.json]]
info A new repository was added, http://192.168.7.42/communityrepo.json
info Refreshing repository list
info A new repository was added, https://www.hubitatcommunity.com/hpm/communityrepo.json
info Refreshing repository list
info Matching up packages
I created an alternate Manifest system that I can edit viciously and not affect anyone. I killed an entire manifest from the fake Master. Then put it back. Dominic's original code correctly discovers the new manifest. (bottom 3 lines)
Changing the location (URL) means it's an entirely new manifest and the original code found the new URL, but my experimental code detected the missing manifest and removed it.. effectively transferring the repo.
As I said, detecting unintended consequences is going to consume a lot of testing time. I don't want this to be ONLY a tease.. but I'm sure this won't be ready for release quickly.