[racket-dev] main-repo packages on pkg.racket-lang.org

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Fri Aug 16 18:47:44 EDT 2013

All of the packages in the main repository are now listed on
pkg.racket-lang.org. They have tags like "main-distribution" (for
packages that are in the main distribution) and "main-tests" (for tests
that are not in the distribution, but are for main-distribution code).

If you try to install any of the packages in v5.3.6 or earlier, you get
an empty package. The intent is that other packages can now declare
proper dependencies for v5.90.x, and the dependency declaration won't
break the package for v5.3.6 users.

Meanwhile, with v5.90.x, you could build with just `make base' and then
install more with, say,

 raco pkg install -i main-distribution

For now, there's no advantage to doing that compared to just using
`make PKGS=...'; you get everything with a git checkout, anyway. In the
future, that might be closer to the way things work, and now we can
experiment with that mode.

The source for each package is an S3-hosted ".zip" file. Those sources
are put in place by a periodic task that pulls from github, creates
individual "zip" files, uploads to S3, and updates pkg.racket-lang.org.
Currently, the job runs on a machine every 15 minutes (on the hour, 15
minutes after, etc.). We'll see how that works out, and probably we'll
make it more reliable by having multiple machines check for updates ---
including one triggered by notifications from Github. In any case,
copying from the git repo to ".zip" files is expected to be a stop-gap
until we're ready to split the main repository (which is some time
away, I think).

Posted on the dev mailing list.