Hmm, then maybe I'm misdiagnosing the error. If you were to try doing
raco pkg install frog using 5.3.90.9 from HEAD as of a few days ago, you would see something like this: greg@halo:~$ ~/src/plt/racket/racket/bin/raco pkg install frog Resolving "frog" via https://pkg.racket-lang.org Downloading https://github.com/greghendershott/frog/tarball/fecbe1d75632231eb7af70ef00ad31e95dda2cad The following uninstalled packages are listed as dependencies of frog: markdown Would you like to install these dependencies? [Y/n/a/?] y Resolving "markdown" via https://pkg.racket-lang.org Downloading https://github.com/greghendershott/markdown/tarball/6f1d1e6578c6d6f832357a81484ee427b6a2fc21 The following uninstalled packages were listed as dependencies and they were installed: dependencies of frog: markdown raco setup: version: 5.90.0.9 [3m] raco setup: installation name: development raco setup: variants: 3m raco setup: main collects: /home/greg/src/plt/racket/racket/collects raco setup: collects paths: raco setup: /home/greg/src/plt/racket/racket/collects raco setup: main pkgs: /home/greg/src/plt/racket/racket/share/pkgs raco setup: pkgs paths: raco setup: /home/greg/src/plt/racket/racket/share/pkgs raco setup: /home/greg/src/plt/racket/racket/share/devel-pkgs raco setup: /home/greg/.racket/development/pkgs raco setup: links files: raco setup: /home/greg/src/plt/racket/racket/share/links.rktd raco setup: /home/greg/src/plt/racket/racket/share/devel-pkgs/links.rktd raco setup: /home/greg/.racket/development/links.rktd raco setup: main docs: /home/greg/src/plt/racket/racket/doc raco setup: --- updating info-domain tables --- raco setup: updating: /home/greg/src/plt/racket/racket/share/info-cache.rktd raco setup: --- pre-installing collections --- raco setup: --- installing foreign libraries --- raco setup: --- installing shared files --- raco setup: --- compiling collections --- raco setup: making: <pkgs>/frog/example raco setup: making: <pkgs>/frog/example/_src raco setup: making: <pkgs>/frog/example/_src/posts raco setup: making: <pkgs>/frog/example/_src/subdir raco setup: making: <pkgs>/frog/example/css raco setup: making: <pkgs>/frog/example/fonts raco setup: making: <pkgs>/frog/example/img raco setup: making: <pkgs>/frog/example/js raco setup: making: <pkgs>/frog/frog raco setup: in <pkgs>/frog/frog raco setup: in <pkgs>/markdown/markdown raco setup: in <pkgs>/frog application: no case matching 1 non-keyword argument procedure: collection-file-path arguments...: "info.rkt" #:fail #<procedure:...tup/collects.rkt:31:32> ... Although I didn't know how to dig into that error message, I remembered seeing "#:version" in Jay's presentation 30 minutes previously, and I jumped to the conclusion it was due to this. The same `raco pkg install frog` works fine with 5.3.6, and IIRC worked fine with 5.3.90.?? until recently. On Thu, Oct 3, 2013 at 9:48 AM, Matthew Flatt <mfl...@cs.utah.edu> wrote: > Yes, the `#:version` keyword is optional. The old format, as in > > (define deps '(("markdown" "0.5") > "rackjure")) > > is still supported. > > The old format is described as "deprecated" in the documentation, but > it's fine to use it to support both v5.3.x and v.5.90.x. > > At Thu, 3 Oct 2013 09:40:56 -0400, Greg Hendershott wrote: >> After I gave my Frog talk at RacketCon, in which I said a goal of Frog >> was to make it easy to install, J. Ian Johnson tried to install it... >> but couldn't. >> >> As best I understand, it's because he was using Racket from HEAD, and >> at some point recently the `deps` expression for info.rkt changed for >> the case where you specify a version. A case which I've been using >> (recent versions of Frog need a >= version of Markdown). >> >> For 5.3.6 and (until fairly recently in HEAD) it was: >> >> # frog/info.rkt >> #lang setup/infotab >> (define version "0.7") >> (define collection 'multi) >> (define deps '(("markdown" "0.5") >> "rackjure")) >> >> But it recently changed to require a #:version keyword, therefore it >> would have to be IIUC this for 5.3.900.???+: >> >> # frog/info.rkt >> #lang setup/infotab >> (define version "0.7") >> (define collection 'multi) >> (define deps '(("markdown" #:version "0.5") >> "rackjure")) >> >> But that wouldn't be compatible with 5.3.6 IIUC. >> >> As a result I would have to maintain two different packages, one for >> 5.3.5 and 5.3.6, and another for 5.3.900.???+ and greater (yuck). >> >> Until now, even the major change to single-collection defaults was >> done in a way that preserved backward compatibility (well, after >> taking action to add `(define collection 'multi)`, but after taking >> such action the same info.rkt works for old and new). >> >> 1. Am I understanding it correctly? (Not a rhetorical question; I >> have a lot of "IIUC"s above.) >> >> 2. If so, is it really the intent to break backward compatibility? >> >> 3. Instead couldn't the #version keyword simply be optional? >> _________________________ >> Racket Developers list: >> http://lists.racket-lang.org/dev _________________________ Racket Developers list: http://lists.racket-lang.org/dev