Loading specs/clpi-0.4.org +0 −71 Original line number Diff line number Diff line Loading @@ -128,14 +128,6 @@ the secondary. + =:dependencies= :: A list of dependencies for this system. For a description of the allowed forms of dependencies, see [[*System dependency]]. If an integer epoch is provided, this object must only be appended to. This allows secondary indices to more efficiently transfer only the new releases. If for any reason this object needs to be modified (other than appending), the project's epoch must be incremented and a new object used instead. If no epoch (or a NIL epoch) is provided, this object may change in any way. * System metadata For every primary system in the index, the object Loading @@ -147,69 +139,6 @@ the secondary. + =:primary-project= :: A string naming the current home project of this system. * System releases For every primary system in the index, the object =systems/SYSTEM-NAME/releases= or =systems/SYSTEM-NAME/releases-EPOCH= must exist, where =SYSTEM-NAME= is the URL-encoded primary system name and =EPOCH= is the epoch defined in the system metadata. If the epoch is NIL/not provided, only the former must exist, otherwise the latter must exist. This object contains information about each release of the system. Every sexp must be of the form: =(release . release-info)=, where =release= is a [[*Project release description]] and =release-info= is a plist with the following keys: + =:system-file= :: Required. A string containing the path to the ASD file that defines this system, relative to the top level folder in the release's archive. + :: + =:version= :: NIL or a string containing the version of the system. If non-NIL, must be a dotted sequence of numbers (this requirement comes from ASDF, unfortunately). + =:description= :: A string containing a description of the system. + =:license= :: The license of this system. Can be an arbitrary sexp. + =:dependencies= :: A list of dependencies for this system. See [[*System dependency]] for a description of the allowed forms of dependencies. + =:secondary-systems= :: A list of secondary systems with the same primary name. See [[*Secondary system release]] for a description of secondary systems. If an integer epoch is provided, this object must only be appended to. This allows secondary indices to more efficiently transfer only the new releases. If for any reason this object needs to be modified (other than appending), the system's epoch must be incremented and a new object used instead. If no epoch (or a NIL epoch) is provided, this object may change in any way. ** Secondary system release A secondary system is a system whose name contains a =/= character. Secondary systems may be explicitly defined by a =defsystem= form, or implicitly defined (as is the case when using ASDF's package-inferred-systems). Due to the increasing prevalence of package-inferred-systems, and subsequent increase in number of systems that a single release can have, v0.4 of the specification does not create an object for each individual system; instead, the data for secondary systems is in the same object as the data on the primary system (similar to how .asd files work). Each secondary system release is described by a sexp of the form =(name . info)= where =name= is a string containing the name of the system and =info= is a plist with the following keys: + =:version= :: NIL or a string containing the version of the system. If non-NIL, must be a dotted sequence of numbers (this requirement comes from ASDF, unfortunately). + =:description= :: A string containing a description of the system. + =:license= :: The license of this system. Can be an arbitrary sexp. + =:dependencies= :: A list of dependencies for this system. See [[*System dependency]] for a description of the allowed forms of dependencies. If =:version= or =:license= is missing from a secondary system, it is assumed to be the same as the primary system's. * System dependency A system dependency can take one of four forms: Loading Loading
specs/clpi-0.4.org +0 −71 Original line number Diff line number Diff line Loading @@ -128,14 +128,6 @@ the secondary. + =:dependencies= :: A list of dependencies for this system. For a description of the allowed forms of dependencies, see [[*System dependency]]. If an integer epoch is provided, this object must only be appended to. This allows secondary indices to more efficiently transfer only the new releases. If for any reason this object needs to be modified (other than appending), the project's epoch must be incremented and a new object used instead. If no epoch (or a NIL epoch) is provided, this object may change in any way. * System metadata For every primary system in the index, the object Loading @@ -147,69 +139,6 @@ the secondary. + =:primary-project= :: A string naming the current home project of this system. * System releases For every primary system in the index, the object =systems/SYSTEM-NAME/releases= or =systems/SYSTEM-NAME/releases-EPOCH= must exist, where =SYSTEM-NAME= is the URL-encoded primary system name and =EPOCH= is the epoch defined in the system metadata. If the epoch is NIL/not provided, only the former must exist, otherwise the latter must exist. This object contains information about each release of the system. Every sexp must be of the form: =(release . release-info)=, where =release= is a [[*Project release description]] and =release-info= is a plist with the following keys: + =:system-file= :: Required. A string containing the path to the ASD file that defines this system, relative to the top level folder in the release's archive. + :: + =:version= :: NIL or a string containing the version of the system. If non-NIL, must be a dotted sequence of numbers (this requirement comes from ASDF, unfortunately). + =:description= :: A string containing a description of the system. + =:license= :: The license of this system. Can be an arbitrary sexp. + =:dependencies= :: A list of dependencies for this system. See [[*System dependency]] for a description of the allowed forms of dependencies. + =:secondary-systems= :: A list of secondary systems with the same primary name. See [[*Secondary system release]] for a description of secondary systems. If an integer epoch is provided, this object must only be appended to. This allows secondary indices to more efficiently transfer only the new releases. If for any reason this object needs to be modified (other than appending), the system's epoch must be incremented and a new object used instead. If no epoch (or a NIL epoch) is provided, this object may change in any way. ** Secondary system release A secondary system is a system whose name contains a =/= character. Secondary systems may be explicitly defined by a =defsystem= form, or implicitly defined (as is the case when using ASDF's package-inferred-systems). Due to the increasing prevalence of package-inferred-systems, and subsequent increase in number of systems that a single release can have, v0.4 of the specification does not create an object for each individual system; instead, the data for secondary systems is in the same object as the data on the primary system (similar to how .asd files work). Each secondary system release is described by a sexp of the form =(name . info)= where =name= is a string containing the name of the system and =info= is a plist with the following keys: + =:version= :: NIL or a string containing the version of the system. If non-NIL, must be a dotted sequence of numbers (this requirement comes from ASDF, unfortunately). + =:description= :: A string containing a description of the system. + =:license= :: The license of this system. Can be an arbitrary sexp. + =:dependencies= :: A list of dependencies for this system. See [[*System dependency]] for a description of the allowed forms of dependencies. If =:version= or =:license= is missing from a secondary system, it is assumed to be the same as the primary system's. * System dependency A system dependency can take one of four forms: Loading