[racket-dev] experiment reorganizing the repo into packages

From: Neil Toronto (neil.toronto at gmail.com)
Date: Wed May 29 13:11:18 EDT 2013

On 05/28/2013 03:44 PM, Sam Tobin-Hochstadt wrote:
> On Tue, May 28, 2013 at 5:14 PM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
>>
>> I don't know whether the "-lib"/"-docs" split is worthwhile, but it's
>> part of erring on the side of breaking things apart. Maybe it makes
>> more sense to keep things together and rely on binary packaging to
>> reduce dependencies.

Would using binary packaging for that be more complicated?

It seems that not splitting the source would keep things simpler for 
most developers, so I'd lean that way. But it's not a strong opinion.

> For Typed Racket, it seems worth it in one place, and isn't needed in
> another.  For the core of TR, making it available without docs is
> useful. I'm less sure about the contents of `typed/*`.  I suppose that
> will depend on whether those packages themselves ship with
> documentation.

For the core of TR, could the uses you're thinking about benefit just as 
much from a binary-only core TR?

(I imagine you mean other packages like `math', which just use the TR 
language, but I'm not sure.)

>> Also worth noting is that the "unstable" collection does not work
>> nicely as a package --- as should be expected. I created a few
>> "unstable-" packages and imagine many more, but I'm not sure that's the
>> right way to go.
>
> I think we should just make all of `unstable` go away as part of this
> transition.  It was mostly a way to work around the monolithic nature
> of the collections tree, and thus has outlived its purpose.

That sounds right to me.

>> So, how does this split correspond to what you expected? (My guess is
>> that this far too fine-grained for some of us, while others will want
>> exactly this kind of flexibility.)

I expect `plot' to depend on `math' in the near-ish future. Right now, 
`math' already depends on `plot' to build its docs. IOW, I expect the 
sources to be interdependent, but as binaries, `plot' will depend on 
`math' but `math' won't depend on `plot'. Can the package system handle 
that, or will I have to merge the two or factor out a common parent?

If the package system won't handle it, I'd rather have both the `plot' 
and the `math' collections in a single `math' package.

Neil ⊥


Posted on the dev mailing list.