Hi, I'm running into weird, intermittent behavior with raco update. Occasionally, I will run:
raco pkg update --deps search-auto --update-deps PACKAGE-A Near the beginning of the log, I see something like this: The following out-of-date packages are listed as dependencies of PACKAGE-A and they will be automatically updated: PACKAGE-B PACKAGE-C PACKAGE-B PACKAGE-D etc. etc. Note that PACKAGE-B appears twice. After this, there is a bunch of normal raco logging, all of which ends with the following failure: Uninstalling to prepare re-install of PACKAGE-B Moving PACKAGE-B to trash: /path/to/trash Uninstalling to prepare re-install of PACKAGE-B raco pkg install: package not currently installed package: PACKAGE-B current scope: user It fails because it tries to uninstall PACKAGE-B twice in a row. The next time I run raco update everything works fine -- because the first failure left the machine in a state where PACKAGE-B is no longer installed. Now of course my PACKAGE-A doesn't explicitly list PACKAGE-B twice as a dependency. Yet, somehow, raco does pick it up twice. I'm trying to figure out why this would happen. Note that this doesn't *usually* happen. And I have *not* been able to reproduce it reliably on a single machine. Oddly enough, though, it does happen to me relatively frequently because I maintaining a few hundred machines with Racket on them. Lately I've been killing the raco update whenever there are duplicates in the list of packages; and I've quarantined a few of these machines to try to figure out if something is misconfigured about them. I haven't found anything yet, but if someone can suggest something to check, I would be appreciative. The only clues I do have are: 1) The packages that are listed as duplicates tend to be involved in some kind of diamond shape in the larger dependency graph: e.g. PACKAGE-A depends on LEFT and RIGHT. And LEFT and RIGHT both depend on PACKAGE-B. Obviously, that should work. And it usually does. Still, whenever the error does happen, the diamond structure always seems to be there. 2) The error seems to happen on computers where I am switching some package in the dependency graph from a catalog installation to a github repo installation. I'm not sure if this could contribute to raco deciding that two packages with the same name are actually different and, for some reason, trying to update them both. I was hoping that someone with a deeper understanding of Racket dependencies might be able to suggest a theory or some kind of test I can run to help build a theory. Obviously, I am missing something. Thanks in advance, Stephen -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.