.. _management repository: ===================== Management Repository ===================== A management repository is a |version control repository|, that contains machine readable descriptor files (i.e. |JSON|) which track the state of :ref:`sync database` files and thus also of the :ref:`binary repository` they describe. Packages are gathered by ``pkgbase`` (see |PKGBUILD|) and the directory structure follows a layout of ****/****/****, as the same repositories may exist for several architectures. .. code:: . └── x86_64 ├── core │ └── pkgbase_a.json ├── core-debug └── extra └── pkgbase_b.json ├── extra-debug ├── staging ├── testing ├── community ├── community-debug ├── community-staging ├── community-testing ├── gnome-unstable ├── kde-unstable ├── multilib ├── multilib-debug ├── multilib-staging └── multilib-testing .. _json_schema: JSON Schema ----------- The |JSON| files contained in a :ref:`management repository` can be validated using |JSON schema|. The schema is derived from |pydantic| models, that allow to describe various input files related to a :ref:`sync database`. .. _files_schema: Files ^^^^^ This is the schema of files that belongs to an :ref:`outputpackage_schema`. Below is a list of currently understood versions of the schema. .. _filesv1_schema: FilesV1 """"""" .. note:: This schema represents the definition of :ref:`files_v1`. .. literalinclude:: ../schema/FilesV1.json :language: json .. _outputbuildinfo_schema: OutputBuildInfo ^^^^^^^^^^^^^^^ This is the schema for an optional subset of an :ref:`outputpackagebase_schema` representation in the :ref:`management repository`. It is a subset of the :ref:`buildinfo json schema` data, which is retrieved from parsing the contents of a package. .. note:: This data is *not* persisted in a :ref:`sync database` and can only be retrieved per :ref:`package` from a package file! Below is a list of currently understood versions of the schema. .. _outputbuildinfov1_schema: OutputBuildV1 """"""""""""" .. note:: This schema is directly related to that of :ref:`buildinfov1`! .. literalinclude:: ../schema/OutputBuildInfoV1.json :language: json .. _outputbuildinfov2_schema: OutputBuildV2 """"""""""""" .. note:: This schema is directly related to that of :ref:`buildinfov2`! .. literalinclude:: ../schema/OutputBuildInfoV2.json :language: json .. _outputpackagebase_schema: OutputPackageBase ^^^^^^^^^^^^^^^^^ This is the schema for a ``pkgbase`` file in the :ref:`management repository`. .. note:: In a |split package| scenario, the sum of information gathered from all packages, that belong to a given ``pkgbase`` comprise an :ref:`outputpackagebase_schema`. Below is a list of currently understood versions of the schema. .. _outputpackagebasev1_schema: OutputPackageBaseV1 """"""""""""""""""" .. literalinclude:: ../schema/OutputPackageBaseV1.json :language: json .. _outputpackage_schema: OutputPackage ^^^^^^^^^^^^^ This is the schema of a package that belongs to an :ref:`outputpackagebase_schema`. It describes all properties that are unique to the specific package and that are not also covered by the ``pkgbase``. Below is a list of currently understood versions of the schema. .. _outputpackagev1_schema: OutputPackageV1 """"""""""""""" .. literalinclude:: ../schema/OutputPackageV1.json :language: json .. _packagedesc_schema: PackageDesc ^^^^^^^^^^^ This is the schema of package information found in a :ref:`desc` file of a :ref:`sync database`. Below is a list of currently understood versions of the schema. .. _packagedescv1_schema: PackageDescV1 """"""""""""" .. note:: This schema represents the definition of :ref:`desc_v1`. .. literalinclude:: ../schema/PackageDescV1.json :language: json .. _packagedescv2_schema: PackageDescV2 """"""""""""" This version removes the ``pgpsig`` field to lower the size of the created :ref:`sync database` files. .. note:: This schema represents the definition of :ref:`desc_v2`. .. literalinclude:: ../schema/PackageDescV2.json :language: json .. |version control repository| raw:: html version control repository .. |PKGBUILD| raw:: html PKGBUILD .. |JSON| raw:: html JSON .. |JSON schema| raw:: html JSON schema .. |pydantic| raw:: html pydantic .. |split package| raw:: html split package