a step toward single-collection packages as default

A package's "info.rkt" file should define `collection' as a
string to name a single-collection package's collection, or as
the symbol 'multi to declare the package as multi-collection.
If `collection' is 'same-as-pkg, then the package name is used
as the collection name.

The default for `collection' is 'multi for now, but the intent
is to change the default to 'same-as-pkg after a conversion
period. Also, support for a `single-collection' definition remains
in place, but it wil be removed.
This commit is contained in:
Matthew Flatt 2013-06-25 22:17:38 +02:00
parent 1ee88e2721
commit c738a6aa3e
102 changed files with 272 additions and 56 deletions

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "algol60")
(define collection "algol60")
(define build-deps '("drracket"))
(define tools '(("tool.rkt")))

View File

@ -1,3 +1,3 @@
#lang setup/infotab
(define single-collection "contract-profile")
(define collection "contract-profile")

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "datalog")
(define collection "datalog")
(define scribblings '(["scribblings/datalog.scrbl" (multi-page) (language)]))

View File

@ -5,3 +5,4 @@
;; We need a multi-collection package because
;; "deinprogramm/info.rkt" uses `string-constants'
(define collection 'multi)

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "distro-build")
(define collection "distro-build")
(define deps '("at-exp-lib"
"web-server-lib"

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define build-deps '("draw-lib"
"racket-doc"))

View File

@ -1,5 +1,7 @@
#lang setup/infotab
(define collection 'multi)
(define deps
'(("draw-i386-macosx" #:platform "i386-macosx")
("draw-x86_64-macosx" #:platform "x86_64-macosx")

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("draw-lib"
"draw-doc"))

View File

@ -1,5 +1,7 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("gui-lib"
"racket-index"
"racket-doc"

View File

@ -1,5 +1,5 @@
#lang setup/infotab
(define single-collection "eopl")
(define collection "eopl")
(define scribblings '(("eopl.scrbl" () (teaching -20))))

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "frtime")
(define collection "frtime")
(define name "FrTime")

View File

@ -1 +1,3 @@
#lang setup/infotab
(define collection 'multi)

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("gui-lib"))
(define build-deps '("racket-doc"))

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "games")
(define collection "games")
(define scribblings '(("scribblings/games.scrbl" (multi-page) (gui-library))))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define build-deps '("gui-lib"
"racket-doc"))

View File

@ -1,5 +1,7 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("draw-lib"
"snip-lib"
"wxme-lib"

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("gui-lib"
"gui-doc"))

View File

@ -1,3 +1,3 @@
#lang setup/infotab
(define single-collection "honu")
(define collection "honu")

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("drracket"
"deinprogramm"))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define build-deps '("html-lib"
"racket-doc"))

View File

@ -1 +1,3 @@
#lang setup/infotab
(define collection 'multi)

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("html-lib"
"html-doc"))

View File

@ -1,3 +1,3 @@
#lang setup/infotab
(define single-collection "icons")
(define collection "icons")

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "images")
(define collection "images")
(define deps '("typed-racket-lib"))
(define build-deps '("racket-doc"

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "lazy")
(define collection "lazy")
(define scribblings '(("lazy.scrbl" () (experimental 50))))

View File

@ -1 +1,3 @@
#lang setup/infotab
(define collection 'multi)

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("macro-debugger-text-lib"))
(define build-deps '("racket-doc"))

View File

@ -1,5 +1,5 @@
#lang setup/infotab
(define single-collection "make")
(define collection "make")
(define scribblings '(("make.scrbl" (multi-page) (tool-library))))

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "math")
(define collection "math")
(define scribblings '(["scribblings/math.scrbl" (multi-page)]))

View File

@ -1,5 +1,5 @@
#lang setup/infotab
(define single-collection "mysterx")
(define collection "mysterx")
(define scribblings '(("scribblings/mysterx.scrbl" (multi-page) (legacy))))

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "mzcom")
(define collection "mzcom")
(define post-install-collection "installer.rkt")

View File

@ -1 +1,3 @@
#lang setup/infotab
(define collection 'multi)

View File

@ -1 +1,3 @@
#lang setup/infotab
(define collection 'multi)

View File

@ -1 +1,3 @@
#lang setup/infotab
(define collection 'multi)

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("parser-tools-lib"
"parser-tools-doc"))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define build-deps '("pict-lib"
"racket-doc"))

View File

@ -1,3 +1,5 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("draw-lib" "snip-lib"))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("pict-lib"
"pict-doc"))

View File

@ -1,3 +1,5 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("htdp"))

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "plai")
(define collection "plai")
(define blurb '("Language levels for the Programming Languages: Application and Interpretation textbook"))
(define homepage "http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/")

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "plot")
(define collection "plot")
(define scribblings '(["scribblings/plot.scrbl" (multi-page) (gui-library)]))

View File

@ -1 +1,3 @@
#lang setup/infotab
(define collection 'multi)

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "preprocessor")
(define collection "preprocessor")
(define mzscheme-launcher-names '("mzpp" "mztext"))
(define mzscheme-launcher-libraries '("mzpp-run.rkt" "mztext-run.rkt"))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define build-deps '("profile-lib"
"racket-doc"))

View File

@ -1 +1,3 @@
#lang setup/infotab
(define collection 'multi)

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("profile-lib"
"profile-doc"))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define build-deps '("r5rs-lib"
"racket-doc"))

View File

@ -1 +1,3 @@
#lang setup/infotab
(define collection 'multi)

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("r5rs-lib"
"r5rs-doc"))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define build-deps '("r6rs-lib"
"racket-doc"))

View File

@ -1,3 +1,5 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("r5rs-lib"))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("r6rs-lib"
"r6rs-doc"))

View File

@ -1 +1,3 @@
#lang setup/infotab
(define collection 'multi)

View File

@ -1,5 +1,7 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("racket-index"))
(define build-deps '("web-server"
"gui"

View File

@ -83,18 +83,39 @@ name as the package. The @tech{checksum} is typically left implicit.
The package directory can contain a file named @filepath{info.rkt}
to declare other metadata (see @secref["metadata"]).
A @tech{package} is a @deftech{multi-collection package} by default;
each directory within the package is a @gtech{collection} that is
provided by the package. If a @tech{package} has an
@filepath{info.rkt} file that defines @racketidfont{single-collection}
as a string, then the package is a @deftech{single-collection
package}; in that case, the package directory doubles as
@gtech{collection} named by @racketidfont{single-collection}.
[@bold{The following paragraph and itemization is intentionally wrong.}
Currently, if a package has no @filepath{info.rkt} file or no
@racketidfont{collection} definition, it is treated as
@tech{multi-collection package}. Also,
@racketidfont{single-collection} is supported for temporary backward
compatibility. The documentation from here on reflects the planned
behavior.]
A @tech{package} can be a @tech{single-collection package} or a
@tech{multi-collection package}:
@itemlist[
@item{A @deftech{single-collection package}'s directory doubles as a
@gtech{collection} directory. By default, the package name also
doubles as the collection name, but if the package has an
@filepath{info.rkt} file that defines @racketidfont{collection} to a
string, then the string is used as the name of the package's
collection.}
@item{A @deftech{multi-collection package}'s directory contains
subdirectories, each of which is a @gtech{collection} that is
provided by the package (where the directory name is used as
the collection name). A @tech{multi-collection package} must
have an @filepath{info.rkt} file that defines
@racketidfont{collection} as @racket['multi].}
]
More generally, a @deftech{package source} identifies a @tech{package}
representation. Each package source type has a different way of
storing the @tech{checksum} and providing the package content (usually
with @tech{multi-collection package} and @tech{single-collection
with @tech{single-collection package} and @tech{multi-collection
package} variants). The valid @tech{package source} types are:
@itemlist[
@ -291,7 +312,7 @@ sub-sub-commands:
@item{@DFlag{link} --- Implies @exec{--type dir} (and overrides any specified type),
and links the existing directory as an installed package. The package is identified
as a @tech{single-collection package} or a @tech{multi-collection package} at the
time that it is installed, and that categorization does not change even if the @schemeidfont{single-collection}
time that it is installed, and that categorization does not change even if the @schemeidfont{collection}
definition in @filepath{info.rkt} is changed (i.e., he package must be removed and re-installed
for the change to take effect).}
@ -522,16 +543,16 @@ Optionally, enter your directory and create a basic @filepath{info.rkt} file:
@commandline{echo "(define deps (list))" >> info.rkt}
The @filepath{info.rkt} file is not necessary for a
@tech{multi-collection package} with no dependencies, but you may wish
to create it to simplify adding dependencies in the future. For a
@tech{single-collection package}, you must create an
@filepath{info.rkt} file, and you must give the collection a name,
@nonterm{collect}:
@tech{single-collection package} with no dependencies, but you may
wish to create it to simplify adding dependencies in the future. For
a @tech{multi-collection package}, you must create an
@filepath{info.rkt} file and define @racketidfont{collection} as
@racket['multi]:
@commandline{echo '(define single-collection "@nonterm{collect}")' >> info.rkt}
@commandline{echo "(define collection 'multi)" >> info.rkt}
Note that in the case of a @tech{multi-collection package}, the
@filepath{info.rkt} is for the package, not for a collection;
@filepath{info.rkt} file is for the package, not for a collection;
definitions such as @racket[scribblings] or @racket[raco-commands]
work only in a collection's @filepath{info.rkt}. For a
@tech{single-collection package}, the @filepath{info.rkt} file serves
@ -707,6 +728,22 @@ The following @filepath{info.rkt} fields are used by the package manager:
@itemlist[
@item{@racketidfont{collection} --- either @racket['multi] to
implement a @tech{multi-collection package} or a string or
@racket['same-as-pkg] to implement a @tech{single-collection
package}. If @racketidfont{collection} is defined as a string,
then the string is used as the name of the collection
implemented by the package. If @racketidfont{collection} is
defined as @racket['same-as-pkg], then the package name is used
as the package's collection name.
Beware that omitting @racketidfont{collection} or defining it
as @racket['same-as-pkg] means that a package's content
effectively changes with the package's name. A package's
content should normally be independent of the package's name,
and so defining @racketidfont{collection} to a string is
preferable for a @tech{single-collection package}.}
@item{@racketidfont{version} --- a @tech{version} string. The default
@tech{version} of a package is @racket["0.0"].}

View File

@ -1,3 +1,5 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("scribble-lib"))

View File

@ -1,5 +1,7 @@
#lang setup/infotab
(define collection 'multi)
(define deps
'(("racket-win32-i386" #:platform "win32\\i386")
("racket-win32-x86_64" #:platform "win32\\x86_64")

View File

@ -1 +1,3 @@
#lang setup/infotab
(define collection 'multi)

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "racklog")
(define collection "racklog")
(define scribblings
'(("racklog.scrbl" (multi-page) (tool))))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define build-deps '("readline-lib"
"racket-doc"))

View File

@ -1 +1,3 @@
#lang setup/infotab
(define collection 'multi)

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("readline-lib"
"readline-doc"))

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "realm")
(define collection "realm")
(define name "Realm of Racket Source Code")

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "redex")
(define collection "redex")
(define name "PLT Redex")
(define scribblings (list (list "redex.scrbl" (list 'multi-page) (list 'tool))))

View File

@ -1,3 +1,3 @@
#lang setup/infotab
(define single-collection "schemeunit")
(define collection "schemeunit")

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define build-deps '("scribble-lib"
"racket-doc"))

View File

@ -1,5 +1,7 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("at-exp-lib"
"draw-lib"
"syntax-color-lib"))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("scribble-lib"
"scribble-doc"))

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "sgl")
(define collection "sgl")
(define compile-omit-paths '("examples"))

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "slatex")
(define collection "slatex")
(define scribblings '(("slatex-wrap.scrbl" () (tool-library))))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define build-deps '("slideshow-lib"
"racket-doc"))

View File

@ -1,3 +1,5 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("slideshow-lib"))

View File

@ -1,3 +1,5 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("gui-lib"))

View File

@ -1,5 +1,7 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("slideshow-lib"
"slideshow-exe"
"slideshow-doc"))

View File

@ -1,3 +1,5 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("draw-lib"))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("snip-lib"
"gui-doc"))

View File

@ -1,5 +1,7 @@
#lang setup/infotab
(define collection 'multi)
(define build-deps '("srfi-lib"
"racket-doc"
"r5rs-doc"

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("r5rs-lib"
"r6rs-lib"))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("srfi-lib"
"srfi-doc"))

View File

@ -1 +1,3 @@
#lang setup/infotab
(define collection 'multi)

View File

@ -1,7 +1,7 @@
;;; Written by Eli Barzilay: Maze is Life! (eli@barzilay.org)
#lang setup/infotab
(define single-collection "swindle")
(define collection "swindle")
(define mzscheme-launcher-names '("swindle"))
(define mzscheme-launcher-flags '(("-li" "swindle")))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define build-deps '("racket-doc"
"syntax-color-lib"))

View File

@ -1,3 +1,5 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("parser-tools-lib"))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("syntax-color-lib"
"syntax-color-doc"))

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "trace")
(define collection "trace")
(define name "Calltrace")

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("typed-racket-lib"
"gui-lib"))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define build-deps '("typed-racket-lib"
"racket-doc"))

View File

@ -1,5 +1,7 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("unstable-list-lib"
"string-constants-lib"))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("typed-racket-lib"
"typed-racket-doc"))

View File

@ -1 +1,3 @@
#lang setup/infotab
(define collection 'multi)

View File

@ -1 +1,3 @@
#lang setup/infotab
(define collection 'multi)

View File

@ -1 +1,3 @@
#lang setup/infotab
(define collection 'multi)

View File

@ -1,6 +1,6 @@
#lang setup/infotab
(define single-collection "unstable")
(define collection "unstable")
(define scribblings
'(("scribblings/unstable.scrbl" (multi-page) (experimental))))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define build-deps '("web-server-lib"
"racket-doc"))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("unstable-list-lib"
"parser-tools-lib"))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("web-server-lib"
"web-server-doc"))

View File

@ -1,3 +1,5 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("snip-lib"))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("wxme-lib"
"gui-doc"))

View File

@ -1,4 +1,6 @@
#lang setup/infotab
(define collection 'multi)
(define build-deps '("xrepl-lib"
"racket-doc"))

View File

@ -1,5 +1,7 @@
#lang setup/infotab
(define collection 'multi)
(define deps '("readline-lib"
"scribble-lib"
"macro-debugger-text-lib"))

Some files were not shown because too many files have changed in this diff Show More