[racket-dev] updated proposal for moving to packages

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Wed Jun 5 22:26:51 EDT 2013

For point 3., do you have a sense of what milestones we'd have to reach (at
what times) in order to have a successful release?

Robby



On Wed, Jun 5, 2013 at 7:19 PM, Matthew Flatt <mflatt at cs.utah.edu> wrote:

> I've updated the package experiment again:
>
>  https://github.com/mflatt/racket/tree/pkg
>
>
> State of the Proposal
> ---------------------
>
> Based on discussion of the initial proposal,
>
>  http://lists.racket-lang.org/dev/archive/2013-May/012364.html
>
> I'm revising the proposal as follows:
>
>  * The details of the repository organization (including where to split
>    repositories) should be different.
>
>    As described in next section of this message, the experimental
>    repository represents a revised proposal, but there's plenty of room
>    for further refinement.
>
>  * The main distribution will not be in binary form; we keep source
>    alongside build bytecode and documentation, as before.
>
>    Creating a package catalog that provides binary versions of packages
>    (for use in constrained environments) remains a clear possibility,
>    but that's now on the backburner.
>
>  * The process for building installers is as originally proposed, but
>    substituting built packages (i.e., source plus binary) instead of
>    binary packages.
>
>    The big pieces that were missing are now implemented.
>
>
> Current Proposed Repository Organization
> ----------------------------------------
>
> In the latest version of the experimental repository, packages are all
> in a "pkgs" subdirectory. Each directory in "pkgs" is intended as a
> candidate for movement into a separate repository, but each directory
> in "pkgs" is either
>
>   * a package directory (single- or multi-collection); or
>
>   * a directory (named "...-pkgs") containing package directories,
>     where the packages in each directory are intended to be together in
>     one repository.
>
> It doesn't have to be just two levels: any number of grouping-directory
> layers is fine, and the "separate repository" contour can be anywhere
> among the grouping layers (as long as each repository is a directory,
> and as long as each package is wholly within some repository).
>
>
> The line between grouping directories and package directories in "pkgs"
> is determined by the presence of an "info.rkt" file to indicate a
> package. That is, even though a package is not in general required to
> have an "info.rkt", each package in "pkgs" is required to have an
> "info.rkt" so that it can be recognized as a package directory.
>
> The current "...-pkgs" name for each grouping directory is just a
> convention.
>
>
> The package groupings themselves are not much improved from before ---
> lots of work to do there, but that's work that would happen by everyone
> if and when we go this direction.
>
>
> New targets the in Makefile can install package links in the "racket"
> directory, so that (on Unix, at least)
>
>  make core
>  make pkg-links
>  racket/bin/raco setup
>
> is essentially the same as the current
>
>  cd src
>  mkdir build
>  cd build
>  ../configure
>  make
>  make install
>
> except that the resulting build is in a "racket" subdirectory.
>
> As long as we don't actually create separate repositories, you can
> edit/move libraries and collections in "racket/lib/collects" and
> "pkgs", push and pull via `git', and rebuild via `racket/bin/raco
> setup'. If we do split into separate repositories, then I think it
> could be much the same, but with git submodules.
>
> See "INSTALL.txt" for more information.
>
>
> Your Turn
> ---------
>
> If we pursue the path demonstrated in this experimental repository,
> then we have several infrastructure details to work out yet, to say
> nothing of finishing up the organization of our collections and
> libraries into packages.
>
> I think we're at the point, though, for you to assess whether this is
> the right direction. If it looks like a good direction, then the
> follow-up question is how fast to move.
>
> Some possible conclusions:
>
>  1. This is the wrong way.
>
>  2. This is plausible, but the details are not right or not clear; we
>     should stick with our current repository structure for at least one
>     more release and consider switching after that.
>
>  3. This will work, and we should switch right away and start sorting
>     out the details together --- but we should not actually break out
>     into separate repositories until after a release or so.
>
>  4. This will work, we should try to switch right away --- AND we should
>     split the repository as soon as possible.
>
> Since it's my proposal, hopefully it's clear that I'm in camp 3.
>
> Opinions?
>
> _________________________
>   Racket Developers list:
>   http://lists.racket-lang.org/dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/dev/archive/attachments/20130605/9b846cc1/attachment.html>

Posted on the dev mailing list.