[racket-dev] experiment reorganizing the repo into packages

From: Eli Barzilay (eli at barzilay.org)
Date: Mon Jun 3 10:36:51 EDT 2013

50 minutes ago, Matthew Flatt wrote:
> At Mon, 3 Jun 2013 08:27:19 -0400, Eli Barzilay wrote:
> > 
> > A very cheap way to do this is to use these sub-package
> > specifications only for creating packages for distribution.  With
> > the obvious resulting package file names, this means that there is
> > no change at all that is needed on the consumer side.
> 
> I don't understand the suggestion. As a concrete example, can you
> sketch our how a user installs the "web-server" package without
> documentation, and how the package manager later knows to upgrade
> the "web-server" package to include documentation when requested by
> the user?

On the building side, you'd run some command/script/whatever that goes
over the distribution kinds and generates a package for each -- so if
you have

  (define distributions
    '([lib "*.rkt"]
      [doc "*.scrbl" "scribblings"]))

the result will be "web-server-lib.zip", "web-server-doc.zip", and
"web-server.zip" where the last one contains dependencies on the other
two.  (So this last one is the only one that is special since it's
completely made up.)  Then all of these files will get distributed in
the same way they would be with the directory/repo split.

(BTW, a possible source of confusion: I'm assuming that distribution
must be done via archives and not via repository specs, since there
should be some way to put the compiled files in there.  You've
mentioned at some point a "binary catalog" which seems unnecessary to
me, but maybe there's something I don't get here.)

Updates would happen in a similar way, with new zip files.

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

Posted on the dev mailing list.