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

From: Jay McCarthy (jay.mccarthy at gmail.com)
Date: Sat Aug 17 20:25:18 EDT 2013

On Sat, Aug 17, 2013 at 12:07 PM, Greg Hendershott
<greghendershott at gmail.com> wrote:
> Very cool.
>
> It seems to me this motivates some changes to the
> https://pkg.racket-lang.org/ UX:
>
> 1. The tag "main-distribution" ought to be privileged/restricted. As a
> 3rd party dev I shouldn't be allowed to assign that tag to one of my
> packages and trick people into installing it along with the others.

Such a trick wouldn't work because you can't install everything with a
tag and a dishonest tag like that can be trivially removed. (FWIW,
tags are not added by developers. Anyone can add any tag.)

> 2. If I want to browse for interesting third-party packages, now I
> will want the ability to search for `NOT <tag>`. For example to see
> all packages _except_ those tagged "main-distribution". (Of course
> that starts down the slippery slope of also wanting AND and OR
> operators and parentheses. /me ducks.)

This is planned.

Jay

>
>
> On Fri, Aug 16, 2013 at 6:47 PM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
>> 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).
>>
>> _________________________
>>   Racket Developers list:
>>   http://lists.racket-lang.org/dev
> _________________________
>   Racket Developers list:
>   http://lists.racket-lang.org/dev



-- 
Jay McCarthy <jay at cs.byu.edu>
Assistant Professor / Brigham Young University
http://faculty.cs.byu.edu/~jay

"The glory of God is Intelligence" - D&C 93

Posted on the dev mailing list.