Glossary ======== .. glossary:: :sorted: ``.bst`` file The configuration for an :term:`Element `, represented in YAML format. Artifact The output collected after building an :term:`Element`. Artifacts can be built from :term:`Sources `, or pulled from a :term:`Remote Cache `, if available. Artifact name The :ref:`name of an artifact `, which can be used in various commands to operate directly on artifacts, without requiring the use of a :term:`Project`. Cache BuildStream leverages various caching techniques in order to avoid duplicating work. Depending on context, "Cache" might refer to BuildStream's :term:`local cache ` or a :term:`Remote Cache `. Core plugin A :term:`Plugin ` that is contained in the BuildStream package. These are built-in and don't need to be defined in the project configuration. See :ref:`plugin documentation ` for more details on core plugins. Dependency :term:`Elements ` in a BuildStream project can depend on other elements from the same project. The element dependent upon is called a dependency. See :ref:`Dependencies document ` for more details. Dependency configuration Additional custom YAML configuration which is used to define an :term:`Element's ` relationship with it's :term:`Dependency `. This is supported on limited :term:`Element ` implementations, and each :term:`Element ` defines what configuration it supports. See the :ref:`dependency documentation ` for details on dependency configuration. Element An atom of a :term:`BuildStream project `. Projects consist of zero or more elements. During the build process, BuildStream transforms :term:`Sources ` and :term:`Dependencies ` of an element into its output. The output is called an :term:`Artifact `. Configuration for elements is stored in form of :term:`.bst files <.bst file>`. See :ref:`Declaring Elements document ` for more details on element configurtion. External Plugin A :term:`Plugin ` that is defined in some package other than BuildStream. External plugins must be declared in :ref:`the project configuration `. For a list of known external plugin repositories, see :ref:`plugins_external`. Junction A special kind of :term:`Element `, that allows you to depend on elements from another project. See :mod:`Junction reference ` for details on how to configure junction elements. See :ref:`Junction guide ` for details on how to use junction elements. Local Cache To avoid duplicating work, BuildStream will cache sources, artifacts, logs, buildtrees etc. in a local cache directory. If these sources or artifacts are needed another time, BuildStream will use them from the cache. See :ref:`Local cache expiry ` section of the user guide for details on how to configure the local cache. Plugin BuildStream Plugins define types of :term:`Elements ` and :term:`Sources `. Hence, they come in two distinct varities - Element Plugins and Source Plugins. BuildStream supports some plugins :term:`out of the box `. It also has support for :term:`third party plugins `. Project A collection of :term:`Elements `. Elements in a project share some central configuration. See :ref:`projectconf` to learn how to configure BuildStream projects. Remote Cache A server setup for sharing BuildStream :term:`Sources ` and/or :term:`Artifacts `. See :ref:`cache server documentation ` for details on artifact caches. Source Sources describe the input to the build of an :term:`Element`. In general, an element can have zero or more sources. But, certain element plugins may restrict the number of allowed sources. Sources are defined in the :ref:`Sources ` section of :term:`Element ` configuration. Subproject Subprojects are :term:`projects ` which are referred to by a :term:`Junction`. Workspace Workspaces allow building one or more elements using a local, and potentially modified, copy of their sources. See :ref:`Workspaces guide ` for more details on how to use workspaces.