diff --git a/docs/conf.py b/docs/conf.py index 5a0b8f31..dab41171 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,8 +1,10 @@ import os import django os.environ.setdefault("DJANGO_SETTINGS_MODULE", "swh.deposit.settings.development") django.setup() from swh.docs.sphinx.conf import * # NoQA + +extensions = ["sphinx.ext.autosectionlabel"] diff --git a/docs/specs/spec-meta-deposit.rst b/docs/specs/spec-meta-deposit.rst index f8e99144..2264b640 100644 --- a/docs/specs/spec-meta-deposit.rst +++ b/docs/specs/spec-meta-deposit.rst @@ -1,116 +1,122 @@ The metadata-deposit ==================== Goal ---- A client wishes to deposit only metadata about an origin or object in the Software Heritage archive. The metadata-deposit is a special deposit where no content is provided and the data transferred to Software Heritage is only the metadata about an object in the archive. Requirements ------------ -The scope of the metadata-deposit is different than the -sparse-deposit. While a sparse-deposit creates a revision with referenced -directories and content files, the metadata-deposit references any of the -following: - -- origin -- snapshot -- release -- revision -- directory -- content +1. :ref:`Create a metadata-only deposit through a POST request` +2. It is composed of ONLY one xml metadata file +3. It MUST comply with :ref:`the metadata requirements` +4. It MUST reference an **object** or an **origin** in a deposit tag +5. The reference SHOULD exist in the SWH archive +6. The **object** reference MUST be a SWHID on one of the following artifact types: + - origin + - snapshot + - release + - revision + - directory + - content +7. The SWHID MAY be a `core identifier`_ with or without `qualifiers`_ +8. The SWHID MUST NOT reference a fragment of code with the classifier `lines` + +.. _core identifier: https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html#core-identifiers +.. _qualifiers: https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html#qualifiers A complete metadata example --------------------------- The reference element is included in the metadata xml atomEntry under the swh namespace: .. code:: xml HAL hal@ccsd.cnrs.fr hal hal-01243573 The assignment problem https://hal.archives-ouvertes.fr/hal-01243573 other identifier, DOI, ARK Domain description author1 Inria UPMC author2 Inria UPMC References ^^^^^^^^^^ Origins ======= The metadata may be on an origin, identified by the origin's URL: .. code:: xml Graph objects ============= It may also reference an object in the `SWH graph `: contents, directories, revisions, releases, and snapshots: .. code:: xml The value of the ``swhid`` attribute must be a `SWHID `, with any context qualifiers in this list: * ``origin`` * ``visit`` * ``anchor`` * ``path`` and they should be provided whenever relevant, especially ``origin``. Other qualifiers are not allowed (for example, ``line`` isn't because SWH cannot store metadata at a finer level than entire contents). Loading procedure ------------------ In this case, the metadata-deposit will be injected as a metadata entry of the relevant object, with the information about the contributor of the deposit. Contrary to the complete and sparse deposit, there will be no object creation.