Updated Planet documentation to include the new modules and their exports.

Modified the "Developing Packages for PLaneT" section to point users to
planet/scribble to make sure all their links work.

End of move from unstable/ to planet/.
This commit is contained in:
Carl Eastlund 2011-01-11 17:56:15 -05:00
parent 803ac4a412
commit 84396869f1

View File

@ -1,11 +1,14 @@
#lang scribble/doc
#lang scribble/manual
@(require scribble/manual
scribble/bnf
scribble/eval
(for-label racket)
(for-label planet/config)
(for-label planet/util))
@(require
(for-label
racket/base
scribble/manual
planet/config
planet/util
planet/version
planet/syntax
planet/scribble))
@(define-syntax-rule (eg (code resl) ...)
(interaction
@ -556,7 +559,7 @@ The port on the server the client should connect to if
@racket[USE-HTTP-DOWNLOADS?] is @racket[#f]. The default value for this parameter is
@racket[270].}
@subsection[#:tag "util.rkt"]{Utilities}
@subsection[#:tag "util.rkt"]{Package Archive}
@defmodule[planet/util]
@ -714,15 +717,9 @@ file within it actually exists.}
@defform[(this-package-version-maj)]
@defform[(this-package-version-min)]
)]{
Macros that expand into expressions that evaluate to information about
the name, owner, and version number of the package in which they
appear. @racket[this-package-version] returns a list consisting of a string
naming the package's owner, a string naming the package, a number
indicating the package major version and a number indicating the
package minor version, or @racket[#f] if the expression appears outside the
context of a package. The others are convenience macros that
select out the relevant field, or return @racket[#f] if the expression
appears outside the context of a PLaneT package.}
Aliases of the same bindings from @racketmodname[planet/version] for backward
compatibility.
}
@defproc[(path->package-version [p path?])
(or/c (list/c string? string? natural-number/c natural-number/c) #f)]{
@ -737,6 +734,136 @@ produces a list corresponding to its name and version, exactly like
Returns @racket[#t] if @racket[val] is an exception indicating a planet-specific failure.
}
@subsection[#:tag "version.rkt"]{Package Version}
Provides bindings for @|PLaneT| developers that automatically
produce references to the name and version of the containing @|PLaneT| package
so the same code may be reused across releases without accidentally referring to
a different version of the same package.
@defmodule[planet/version]
@deftogether[(
@defform[(this-package-version)]
@defform*[[(this-package-version-symbol)
(this-package-version-symbol suffix-id)]]
@defform[(this-package-version-name)]
@defform[(this-package-version-owner)]
@defform[(this-package-version-maj)]
@defform[(this-package-version-min)]
)]{
Macros that expand into expressions that evaluate to information about the name,
owner, and version number of the package in which they
appear. @racket[this-package-version] returns a list consisting of a string
naming the package's owner, a string naming the package, a number indicating the
package major version and a number indicating the package minor version, or
@racket[#f] if the expression appears outside the context of a package.
The macros @racket[this-package-version-name],
@racket[this-package-version-owner], @racket[this-package-version-maj], and
@racket[this-package-version-min] produce the relevant fields of the package
version list.
@racket[this-package-version-symbol] produces a symbol
suitable for use in @racket[planet] module paths. For instance, in version
@racketmodfont{1:0} of the package @racketmodfont{package.plt} owned by
@racketmodfont{author}, @racket[(this-package-version-symbol dir/file)] produces
@racket['author/package:1:0/dir/file]. In the same package,
@racket[(this-package-version-symbol)] produces @racket['author/package:1:0].
}
@defform[(this-package-in suffix-id ...)]{
A @racket[require] sub-form that requires modules from within the same @|PLaneT|
package version as the require, as referred to by each @racket[suffix-id]. For
instance, in version @racketmodfont{1:0} of the package
@racketmodfont{package.plt} owned by @racketmodfont{author},
@racket[(require (this-package-in dir/file))] is equivalent to
@racket[(require (planet author/package:1:0/dir/file))].
@italic{Note:} Use @racket[this-package-in] when documenting @|PLaneT| packages
with Scribble to associate each documented binding with the appropriate package.
}
@subsection[#:tag "syntax.rkt"]{Macros and Syntax Objects}
@defmodule[planet/syntax]
Provides bindings useful for @|PLaneT|-based macros.
@deftogether[(
@defproc[(syntax-source-planet-package [stx syntax?]) (or/c list? #f)]
@defproc[(syntax-source-planet-package-owner [stx syntax?]) (or/c string? #f)]
@defproc[(syntax-source-planet-package-name [stx syntax?]) (or/c string? #f)]
@defproc[(syntax-source-planet-package-major [stx syntax?]) (or/c integer? #f)]
@defproc[(syntax-source-planet-package-minor [stx syntax?]) (or/c integer? #f)]
@defproc[(syntax-source-planet-package-symbol
[stx syntax?]
[suffix (or/c symbol? #f) #f])
(or/c symbol? #f)]
)]{
Produce output analogous to @racket[this-package-version],
@racket[this-package-version-owner], @racket[this-package-version-name],
@racket[this-package-version-maj], @racket[this-package-version-min], and
@racket[this-package-version-symbol] based on the source location of
@racket[stx].
}
@defproc[(make-planet-require-spec
[stx syntax?]
[suffix (or/c symbol? #f) #f])
syntax?]{
Produces a @racket[require] sub-form for the module referred to by
@racket[suffix] in the @|PLaneT| package containing the source location of
@racket[stx].
}
@subsection[#:tag "scribble.rkt"]{Scribble Documentation}
@defmodule[planet/scribble]
Provides bindings for documenting @|PLaneT| packages.
@defform[(this-package-in suffix-id ...)]{
This binding from @racketmodname[planet/version] is also exported from
@racketmodname[planet/scribble], as it is useful for @racket[for-label] imports
in Scribble documentation.
}
@deftogether[(
@defform[(racketmod/this-package maybe-file suffix-id datum ...)]
@defform*[((racketmodname/this-package suffix-id)
(racketmodname/this-package (#,(racket unsyntax) suffix-expr)))]
@defform[(racketmodlink/this-package suffix-id pre-content-expr ...)]
@defform[(defmodule/this-package maybe-req suffix-id maybe-sources pre-flow ...)]
@defform*[((defmodulelang/this-package suffix-id maybe-sources pre-flow ...)
(defmodulelang/this-package suffix-id #:module-paths (mod-suffix-id ...) maybe-sources pre-flow ...))]
@defform[(defmodulereader/this-package suffix-id maybe-sources pre-flow ...)]
@defform[(defmodule*/this-package maybe-req (suffix-id ...+) maybe-sources pre-flow ...)]
@defform*[((defmodulelang*/this-package (suffix-id ...+) maybe-sources pre-flow ...)
(defmodulelang*/this-package (suffix-id ...+) #:module-paths (mod-suffix-id ...) maybe-sources pre-flow ...))]
@defform[(defmodulereader*/this-package (suffix-id ...+) maybe-sources pre-flow ...)]
@defform[(defmodule*/no-declare/this-package maybe-req (suffix-id ...+) maybe-sources pre-flow ...)]
@defform*[((defmodulelang*/no-declare/this-package (suffix-id ...+) maybe-sources pre-flow ...)
(defmodulelang*/no-declare/this-package (suffix-id ...+) #:module-paths (mod-suffix-id ...) maybe-sources pre-flow ...))]
@defform[(defmodulereader*/no-declare/this-package (suffix-id ...+) maybe-sources pre-flow ...)]
)]{
Variants of @racket[defmodule], etc., from @racketmodname[scribble/manual] in
which each module path is replaced by an identifier (@racket[suffix-id] or
@racket[mod-suffix-id]) representing a module within the current version of the
containing @|PLaneT| package.
}
@subsection{Terse Status Updates}
@defmodule[planet/terse-info]
@ -848,9 +975,19 @@ automatically skipped by the packaging tool).
@subsubsection{Create Documentation [Optional]}
Use Scribble to write documentation for your package. See
@secref["scribble.rkt"] for macros that ensure proper bindings and version
numbers in documentation for @|PLaneT| packages, and
@other-manual['(lib "scribblings/scribble/scribble.scrbl")]
for instructions on how to write Scribble documentation.
@italic{Note:} Always use @racket[this-package-in] in @racket[for-label]
bindings when documenting @|PLaneT| packages, and always use the bindings in
@racketmodname[planet/scribble] rather than @racketmodname[scribble/manual].
These macros automatically produce @racket[planet]-based module paths with
appropriate version numbers. Other @racket[require] subforms and Scribble
declarations may refer to the wrong version of a package, or may not be
recognized as part of a @|PLaneT| package at all when documentation is produced.
@subsubsection{Create an @filepath{info.rkt} File [Optional]}
If you put a file named @filepath{info.rkt} in your package's root directory, the