[racket] how to declare dependency on Racket 6.0?

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Sat Jul 5 04:41:36 EDT 2014

I made that repair in response to your report, but since I wasn't able
to provoke the error, I thought I was probably on the wrong track.

At Fri, 4 Jul 2014 12:19:57 -0700, Matthew Butterick wrote:
> 1) I've changed my dependency to 'base'. (I don't need a nice error, I just 
> need to block v5 users from installing the package.)
> 
> 
> 2) As for the earlier problem, I'm pretty sure it had to do with the "racket" 
> mapping being null:
> 
> https://github.com/plt/racket/commit/50715f7bda4bf9b745a47c4b3853ee48cc247198
> 
> Because the installer was throwing an error about getting a null argument when 
> it expected a list, like this:
> 
> > raco setup: --- checking package dependencies ---
> > car: contract violation
> >  expected: pair?
> >  given: '()
> >  context...:
> >   /Users/MB/git/racket/racket/collects/setup/private/pkg-deps.rkt:283:2: 
> check-mod!
> > ...
> 
> 
> And the error was coming from the same file, pkg-deps.rkt.
> 
> 
> I just rebuilt from git, and reinstalled my updated package, and things seem 
> back to normal.
> 
> 
> 
> 
> 
> 
> 
> On Jul 3, 2014, at 9:15 PM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> 
> > That should work, although it's better to declare a dependency on
> > "base" instead of "racket":
> > 
> > (define deps '(("base" #:version "6.0") ... )
> > 
> > You should generally declare a dependency on "base", anyway.
> > 
> > 
> > At least, that's the right way for v6.0 and later. If the goal is to
> > get a nice error message from v5.3.x, then you have to
> > 
> > * use the old format without `#:version`:
> > 
> >       (define deps '(("base" "6.0") ... )
> > 
> > * use `#lang setup/infotab` instead of `#lang info`
> >   for the "info.rkt" file, and
> > 
> > * declare the dependency on "racket", after all, since "base" didn't
> >    exist as a package in v5.3.x:
> > 
> >       (define deps '(("racket" "6.0") ... )
> > 
> > 
> > For a while in v6.0.x, there were some problems with dependency
> > checking in `raco setup` when a package declares a dependency on
> > "racket". Otherwise, even though declaring a versioned dependency on
> > "base" is better, declaring a dependency on "racket" should work. Can
> > you say more about how it went wrong?
> > 
> > 
> > At Thu, 3 Jul 2014 16:22:56 -0700, Matthew Butterick wrote:
> >> On closer inspection, it seems possible that my recent install problems were 
> a 
> >> side effect of Racket being installed as a package dependency by my Pollen 
> >> package, where the info.rkt contains this line: 
> >> 
> >> (define deps '(("racket" #:version "6.0") ... )
> >> 
> >> Is this the wrong way to declare this kind of dependency? Basically I just 
> want 
> >> to signal that the package will not work with Racket 5.x.x.
> >> ____________________
> >>  Racket Users list:
> >>  http://lists.racket-lang.org/users
> 
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users

Posted on the users mailing list.