[racket-dev] Fwd: [DrDr] R25903 (timeout 0) (unclean 1) (stderr 1) (changes 63)

From: Eli Barzilay (eli at barzilay.org)
Date: Sun Dec 16 19:58:32 EST 2012

20 minutes ago, Neil Toronto wrote:
> I got this email from DrDr after I added `typed/plot'. The error:
> [....]

BTW, I did point out the failure when it happened...  To explain it,
maybe for future similar questions too (though this explanation gets
lost in the noise and comes up relatively frequently), we have five
levels of "distributions": mz, mr, dr, plt, full -- each is a subset
of the next.  (Note that only the "mz" and the "plt" distros are
actually made, the rest are just as a sanity checking, which is what
you're up against.)  You've introduced a dependenct of typed -> plot,
and there is already a dependency of dr -> typed -- which means that
the dr distribution requires plot, but plot is not included in it.
(It's included in the plt distro.)

One way to deal with this is to move plot up into the dr
distribution.  These kind of solutions are bad since it allows it to
get further mixed with other code, resulting in not being able to
eventually turn it into its own package.

Another way to deal with it is to have a specific rule for
`typed/plot', and that's what came up in the previous thread.  The
thing is that such odd distribution rules are something that IMO are
best avoided.  There was a suggestion that typed/foo automatically
gets to be part of the `foo' package (in the sense of the distribution
specs) -- but that's making a convention out of something that is iffy
to begin with.

And the main thing that is iffy is something that you'll note when you
deal with meta/props -- who owns typed/plot?  Usually there's a rule
that typed/* is with the TR maintainers, so you'll need an exception
there, which means that you need yet another exception in the props
too.  The bigger question is the actual ownership: since that code is
clearly yours, it is much better to keep it in your code.  This will
also simplify things later when you have a single directory for your
package rather than a bunch of files.

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the dev mailing list.