[racket] how to declare dependency on Racket 6.0?
I'm starting to think you have some talent for this computer stuff.
On Jul 5, 2014, at 1:41 AM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> 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