[racket] Should `raco pkg update <x>` presume --update-deps?

From: Greg Hendershott (greghendershott at gmail.com)
Date: Mon Nov 11 09:44:25 EST 2013

>> p.s. Although I had updated the markdown version (in its info.rkt), I
>> had _not_ updated the required version of it (in frog's info.rkt). My
>> thinking was, frog doesn't require the newer version to build
>> correctly. However maybe I should update it, since the newer version
>> is highly desirable. But even if I had done so, I'm not sure that
>> `raco pkg update frog` would have updated without --update-deps.
> It would have, because you couldn't have installed the new frog
> without the update.

OK I see, because update ~= remove + install.

> (It probably would not have done it automatically
> though, it would use a dialog.)

That's fine. I didn't mean force it without user consent.

> How could the user have "needed" to update the dependency but Frog
> doesn't actually require the features of new dependency? In what sense
> was it "needed"?

In response to my "I can't think of a situation" you raise with your
own "I can't think of a situation". Well played sir. :)

The updated markdown parser is more likely to handle some corner cases
than the old one, e.g. being less finicky about requiring a blank line
after some element.

I had updated Frog to be able to use the new version and give those
improved results, but still be compatible with the older version.

I guess my thinking was, the newer parser was such a huge redesign, I
wanted the safety net of someone being able to revert to the older
version (at least temporarily).

So that's why I bumped the ver on the markdown, but not the ver for
frog's dep on it.

Probably I over-thunk it. And the new parser seems solid so far. As a
result, I should just bump frog's own version, and bump the version of
markdown it requires. And then all will be well.


As for the general question: I think you're saying that with the
status quo `raco pkg update <x>`, if an installed dep is older than
required, it will install the very latest version (perhaps newer than
required), otherwise it will do nothing?  Whereas with --update-deps
it does the equivalent of an individual `raco pkg update <dep>` on
every dep transitively, so you'll end up with the very latest of
everything?

Posted on the users mailing list.