[racket] Should we _always_ use `only-in` or `prefix-in` when `require`-ing packages?

From: Greg Hendershott (greghendershott at gmail.com)
Date: Mon Nov 18 10:42:43 EST 2013

On Mon, Nov 18, 2013 at 10:22 AM, Greg Hendershott
<greghendershott at gmail.com> wrote:
> p.s. Even in the case where I _know_ that `foo` will soon be provided
> in other-package -- let's say I submit a PR for my handy `foo` to be
> added to that package, with a view toward eventually dropping my own
> version -- the timing could be tricky. There's a window where a given
> user might get the wrong combo of package versions. Using `only-in` or
> `prefix-in` allows there to be a bridge period where it can exist in
> both packages.

To be clear, I'm talking about a _private_ `foo` that I _don't_
`provide` from my own package. Such as a utility function I made, and
it's useful enough that the other package adds it (maybe with my
coordination, but maybe not; anyway it could even be a different
function that happens to use the same name).

If instead I `provide`d `foo` I wouldn't drop it from my package; that
would break backward compatibility in the obvious way everyone already
understands.

Posted on the users mailing list.