Hi Caleb,
> The only mention of hooks I see in the manual, though, is referring to the > daemon's build hook used for offloading. Hmm, you’re right. I can’t find any documentation about them. It might be good to add this to the manual. > From what I see, though, I'd > assume that they are probably run in a way that errs on the side of "better > to run when unnecessary than not run when necessary". You can inspect the default hooks in “guix/profiles.scm”. All hooks that are run by default are in “%default-profile-hooks”. The “ghc-package-cache-file” hook is run when there is any package in the profile whose name begins with “ghc”. There are similar checks for other hooks. Generally, they don’t do anything when a profile does not require them. > This seems like a fairly common experience - "I ran foo and then it did > WHAT?". For hooks this can be documented. Generally, though, it can be disorienting to update a profile after upgrading Guix, because it will go ahead and do things first in order to become able to tell you what it planned to do… That’s a known problem with the current implementation of grafts. I wonder if we can add a mechanism to mark different types of derivations (like profile hooks, grafts, fixed output, and regular package derivations) and display them differently. As we have at least confirmed that “bc” does not depend on “ghc”, would you agree to close this bug? :) -- Ricardo