
                                     Index


                               Johannes Schlatow


Goa supports exporting and publishing a depot index. If a directory contains
an _index_ file, it will be considered an index project. Goa evaluates the
_sculpt_version_ variable to determine for which Sculpt version the index
will be exported/published.


DESCRIPTION
###########

The _index_ file contains XML data with an _<index>_ node at top level.
Each index file features a declaration of the CPU architectures supported by
the package provider. Sculpt OS evaluates this to decide whether to display
the depot index.

! <index>
!   <supports arch="x86_64"/>
!   <supports arch="arm_v8a"/>
!  ...

An _index_ file further contains an arbitrary number of _<pkg>_, _<src>_
or _<api>_ nodes which
define the archives provided in this depot. Such a node contains the
following attributes:

:path: The _path_ attribute specifies the archive name. Goa uses its built-in
  mechanisms to determine the current version of this archive
  (see *goa help config*). The archive must either be present in the user's
  depot or a corresponding Goa project must exist in the current search
  directory. Alternatively, the _path_ attribute may specify the full archive
  path as _<user>/<type>/<name>_ or _<user>/<type>/<name>/<version>_.

:info: The _info_ attribute contains a brief description of the package.

:arch: The optional _arch_ attribute can be used to restrict the supported
  CPU architectures for this particular package.

A depot index may be structured by nesting named _<index>_ nodes and thereby
divide the provided packages into categories, e.g.:

! <index>
!   <supports arch="x86_64"/>
!   <supports arch="arm_v8a"/>
!
!   <index name="GUI" arch="x86_64">
!     <pkg path="sticks_blue_backdrop" info="default desktop background"/>
!     <pkg path="themed_wm"            info="ready-to-use window manager"/>
!   </index>
!
!   <index name="Tools">
!     <pkg path="system_shell"    info="command-line interface to the system"/>
!     <pkg path="system_clock-pc" info="real-time-clock service" arch="x86_64"/>
!   </index>
!
! </index>

As shown in the above example, each sub-index can be restricted to a particular
CPU architecture.


SEE ALSO
########

add-depot-user, api, artifacts, build-systems, config, import, overview, runtime, targets

