[racket-dev] current packages' docs, errors, and conflicts
This is lovely.
A few thoughts:
- I wonder if using Docker instead of VirtualBox could make
incrementality easier, since that's one of things that they focus on.
- I wanted to be able to see which of my packages had problems, so I
wrote this PR: https://github.com/plt/racket/pull/721 but I'm not sure
how to test it.
- I think we need to support planet packages -- there are some people
still releasing new ones, and there are old ones would take
non-trivial work to port.
Sam
On Tue, Jul 8, 2014 at 7:46 AM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> I've been working on a service that builds all packages listed at
> "pkgs.racket-lang.org". The idea is to run builds regularly (at least
> once a day) and link to documentation and build-status information from
> "pkgs.racket-lang.org".
>
> Here's a table showing the current results for each package:
>
> http://www.cs.utah.edu/~mflatt/tmp/pkg-build/
>
> Overall, there's still some work to do before this service can can go
> live, but I think it's getting close.
>
> Currently, a package fails to install if it depends on a PLaneT package
> --- even a compatibility variant from "planet-compats.racket-lang.org".
> That limitation could be removed with more work, but I think it's
> probably better to get all packages that we care about onto
> "pkgs.racket-lang.org".
>
> The rightmost column of the table may need some explanation. The column
> highlights conflicts among names of package-installed executables,
> foreign libraries, and documents. Currently, all the conflicts are
> document names, because several packages have a documents named simply
> "manual" or "main". Overlapping documentation names cause no trouble
> among packages in user scope, which is why this problem has gone mostly
> unnoticed. Packages in installation scope, however, must have distinct
> document names, because installation-scope documentation goes to a
> single directory. So, to support installation scope, various packages
> need to be updated to give a more specific name to generated
> documentation.
>
>
> The implementation of the build service is `meta/pkg-build/main` in the
> Racket repo. The build service relies on VirtualBox MV instances to
> sandbox package builds, and the complexity is related to handling
> failure and making the build incremental (so that a small amount of
> work can be done if a small number of packages need to be rebuilt).
> It's still a work in progress, but I'm happy to provide more details if
> anyone wants to try it out. A full package build takes about an hour on
> my laptop, in addition to the 45 minutes or so to build a snapshot
> distribution from scratch.
>
> _________________________
> Racket Developers list:
> http://lists.racket-lang.org/dev