This problem is related to the reference of a package-level "info.rkt" from within a collection via a relative path. A relative path that leaves a collection confuses the compilation manager.
So, it's a bug, but it's not related to dependency declarations --- or even the package system, really. At Thu, 3 Oct 2013 10:37:22 -0400, Sam Tobin-Hochstadt wrote: > I'm pretty sure this is a bug in `setup/collects` (or maybe > elsewhere), and I reported it as PR 14063. > > Sam > > On Thu, Oct 3, 2013 at 9:57 AM, Greg Hendershott > <greghendersh...@gmail.com> wrote: > > 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/fecbe1d75632231eb7af70ef00ad31e > 95dda2cad > > 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/6f1d1e6578c6d6f832357a81484 > ee427b6a2fc21 > > 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 _________________________ Racket Developers list: http://lists.racket-lang.org/dev