[racket-dev] proposal for moving to packages: repository

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Mon May 20 21:07:31 EDT 2013

At Mon, 20 May 2013 18:27:34 -0400, Eli Barzilay wrote:
> An hour and a half ago, Matthew Flatt wrote:
> > This plan has two prominent implications:
> > 
> >  * The current git repo's directory structure will change. [...]
> I very strongly object to this.  While in theory git will follow
> everything, this requires doing some more work which most people won't
> know about, so a result of all of this is going to be loss of
> historical information.  So I think that it's much better to move
> directly to several repositories (IIUC, one repository for each
> suggested toplevbel directory).
> The only goal of the intermediate state seems to be providing some
> gradual change before switching to submodules -- and on one hand, I
> think that the new layout will force people to learn how to deal with
> it, and on the other, it'll make people spend work twice, once on the
> layout change and again on the switch to modules.
> So assuming that a gradual change is the goal, I think that there are
> better ways to do that.

It's about a kind of gradual change, but not quite so gradual. I would
like to switch immediately to a package-oriented view of Racket,
instead of thinking about packages as something that you get by
squinting at our current tree.

Concretely, new repositories that are just a subset of the current repo
would be off-by-one in directory structure compared to a normal
package. Each package should correspond to a subtree starting from the
"collects" level, not the parent of "collects". We could massage the
two views into one, but I'd rather not.

At the time time, I agree that it's tricky to properly extract history
for the new repositories, and there will be many issues in dealing with
multiple repositories (e.g., submodules may not be the way to go). So,
I'd like to delay that part until a second step.

To put it another way and overstate a little: I'm trying to get buy-in
from dev to make the switch to packages wholesale. The little bit of
staging in the plan is to make the conversion itself easier, and not to
simplify the switch for developers.

Posted on the dev mailing list.