diff --git a/docs/_static/custom.css b/docs/_static/custom.css index cc4b978..f46e965 100644 --- a/docs/_static/custom.css +++ b/docs/_static/custom.css @@ -1,381 +1,395 @@ a { border-bottom-style: none; outline: none; text-decoration: none; } .swh-top-bar { direction: ltr; height: 30px; position: fixed; top: 0; left: 0; width: 100%; z-index: 99999; background-color: #262626; color: #fff; text-align: center; font-size: 14px; } .swh-top-bar ul { margin: 0; margin-top: 6px; white-space: nowrap; } .swh-top-bar li { display: inline-block; margin-left: 10px; margin-right: 10px; } .swh-top-bar a, .swh-top-bar a:visited { color: white; } .swh-top-bar a.swh-current-site, .swh-top-bar a.swh-current-site:visited { color: #fecd1b; } .swh-donate-item { position: absolute; right: 0; } .swh-donate-link { border: 1px solid #fecd1b; background-color: #e20026; color: white !important; border-radius: 3px; margin-top: -2px; padding-top: 3px; padding-left: 3px; padding-right: 3px; padding-bottom: 3px; } /* Prevent overlaps with top bar and anchors */ :target::before { content: ""; display: block; height: 30px; margin: -30px 0 0; } /* Alegreya font setup */ /* alegreya-400normal - latin */ @font-face { font-family: 'Alegreya'; font-style: normal; font-display: swap; font-weight: 400; src: local('Alegreya Regular '), local('Alegreya-Regular'), url(fonts/alegreya-latin-400.woff2) format('woff2'), url(fonts/alegreya-latin-400.woff) format('woff'); /* Modern Browsers */ } /* alegreya-400italic - latin */ @font-face { font-family: 'Alegreya'; font-style: italic; font-display: swap; font-weight: 400; src: local('Alegreya Regular italic'), local('Alegreya-Regularitalic'), url(fonts/alegreya-latin-400italic.woff2) format('woff2'), url(fonts/alegreya-latin-400italic.woff) format('woff'); /* Modern Browsers */ } /* alegreya-500normal - latin */ @font-face { font-family: 'Alegreya'; font-style: normal; font-display: swap; font-weight: 500; src: local('Alegreya Medium '), local('Alegreya-Medium'), url(fonts/alegreya-latin-500.woff2) format('woff2'), url(fonts/alegreya-latin-500.woff) format('woff'); /* Modern Browsers */ } /* alegreya-500italic - latin */ @font-face { font-family: 'Alegreya'; font-style: italic; font-display: swap; font-weight: 500; src: local('Alegreya Medium italic'), local('Alegreya-Mediumitalic'), url(fonts/alegreya-latin-500italic.woff2) format('woff2'), url(fonts/alegreya-latin-500italic.woff) format('woff'); /* Modern Browsers */ } /* alegreya-700normal - latin */ @font-face { font-family: 'Alegreya'; font-style: normal; font-display: swap; font-weight: 700; src: local('Alegreya Bold '), local('Alegreya-Bold'), url(fonts/alegreya-latin-700.woff2) format('woff2'), url(fonts/alegreya-latin-700.woff) format('woff'); /* Modern Browsers */ } /* alegreya-700italic - latin */ @font-face { font-family: 'Alegreya'; font-style: italic; font-display: swap; font-weight: 700; src: local('Alegreya Bold italic'), local('Alegreya-Bolditalic'), url(fonts/alegreya-latin-700italic.woff2) format('woff2'), url(fonts/alegreya-latin-700italic.woff) format('woff'); /* Modern Browsers */ } /* alegreya-800normal - latin */ @font-face { font-family: 'Alegreya'; font-style: normal; font-display: swap; font-weight: 800; src: local('Alegreya ExtraBold '), local('Alegreya-ExtraBold'), url(fonts/alegreya-latin-800.woff2) format('woff2'), url(fonts/alegreya-latin-800.woff) format('woff'); /* Modern Browsers */ } /* alegreya-800italic - latin */ @font-face { font-family: 'Alegreya'; font-style: italic; font-display: swap; font-weight: 800; src: local('Alegreya ExtraBold italic'), local('Alegreya-ExtraBolditalic'), url(fonts/alegreya-latin-800italic.woff2) format('woff2'), url(fonts/alegreya-latin-800italic.woff) format('woff'); /* Modern Browsers */ } /* alegreya-900normal - latin */ @font-face { font-family: 'Alegreya'; font-style: normal; font-display: swap; font-weight: 900; src: local('Alegreya Black '), local('Alegreya-Black'), url(fonts/alegreya-latin-900.woff2) format('woff2'), url(fonts/alegreya-latin-900.woff) format('woff'); /* Modern Browsers */ } /* alegreya-900italic - latin */ @font-face { font-family: 'Alegreya'; font-style: italic; font-display: swap; font-weight: 900; src: local('Alegreya Black italic'), local('Alegreya-Blackitalic'), url(fonts/alegreya-latin-900italic.woff2) format('woff2'), url(fonts/alegreya-latin-900italic.woff) format('woff'); /* Modern Browsers */ } /* alegreya-sans-100normal - latin */ @font-face { font-family: 'Alegreya Sans'; font-style: normal; font-display: swap; font-weight: 100; src: local('Alegreya Sans Thin '), local('Alegreya Sans-Thin'), url(fonts/alegreya-sans-latin-100.woff2) format('woff2'), url(fonts/alegreya-sans-latin-100.woff) format('woff'); /* Modern Browsers */ } /* alegreya-sans-100italic - latin */ @font-face { font-family: 'Alegreya Sans'; font-style: italic; font-display: swap; font-weight: 100; src: local('Alegreya Sans Thin italic'), local('Alegreya Sans-Thinitalic'), url(fonts/alegreya-sans-latin-100italic.woff2) format('woff2'), url(fonts/alegreya-sans-latin-100italic.woff) format('woff'); /* Modern Browsers */ } /* alegreya-sans-300normal - latin */ @font-face { font-family: 'Alegreya Sans'; font-style: normal; font-display: swap; font-weight: 300; src: local('Alegreya Sans Light '), local('Alegreya Sans-Light'), url(fonts/alegreya-sans-latin-300.woff2) format('woff2'), url(fonts/alegreya-sans-latin-300.woff) format('woff'); /* Modern Browsers */ } /* alegreya-sans-300italic - latin */ @font-face { font-family: 'Alegreya Sans'; font-style: italic; font-display: swap; font-weight: 300; src: local('Alegreya Sans Light italic'), local('Alegreya Sans-Lightitalic'), url(fonts/alegreya-sans-latin-300italic.woff2) format('woff2'), url(fonts/alegreya-sans-latin-300italic.woff) format('woff'); /* Modern Browsers */ } /* alegreya-sans-400normal - latin */ @font-face { font-family: 'Alegreya Sans'; font-style: normal; font-display: swap; font-weight: 400; src: local('Alegreya Sans Regular '), local('Alegreya Sans-Regular'), url(fonts/alegreya-sans-latin-400.woff2) format('woff2'), url(fonts/alegreya-sans-latin-400.woff) format('woff'); /* Modern Browsers */ } /* alegreya-sans-400italic - latin */ @font-face { font-family: 'Alegreya Sans'; font-style: italic; font-display: swap; font-weight: 400; src: local('Alegreya Sans Regular italic'), local('Alegreya Sans-Regularitalic'), url(fonts/alegreya-sans-latin-400italic.woff2) format('woff2'), url(fonts/alegreya-sans-latin-400italic.woff) format('woff'); /* Modern Browsers */ } /* alegreya-sans-500normal - latin */ @font-face { font-family: 'Alegreya Sans'; font-style: normal; font-display: swap; font-weight: 500; src: local('Alegreya Sans Medium '), local('Alegreya Sans-Medium'), url(fonts/alegreya-sans-latin-500.woff2) format('woff2'), url(fonts/alegreya-sans-latin-500.woff) format('woff'); /* Modern Browsers */ } /* alegreya-sans-500italic - latin */ @font-face { font-family: 'Alegreya Sans'; font-style: italic; font-display: swap; font-weight: 500; src: local('Alegreya Sans Medium italic'), local('Alegreya Sans-Mediumitalic'), url(fonts/alegreya-sans-latin-500italic.woff2) format('woff2'), url(fonts/alegreya-sans-latin-500italic.woff) format('woff'); /* Modern Browsers */ } /* alegreya-sans-700normal - latin */ @font-face { font-family: 'Alegreya Sans'; font-style: normal; font-display: swap; font-weight: 700; src: local('Alegreya Sans Bold '), local('Alegreya Sans-Bold'), url(fonts/alegreya-sans-latin-700.woff2) format('woff2'), url(fonts/alegreya-sans-latin-700.woff) format('woff'); /* Modern Browsers */ } /* alegreya-sans-700italic - latin */ @font-face { font-family: 'Alegreya Sans'; font-style: italic; font-display: swap; font-weight: 700; src: local('Alegreya Sans Bold italic'), local('Alegreya Sans-Bolditalic'), url(fonts/alegreya-sans-latin-700italic.woff2) format('woff2'), url(fonts/alegreya-sans-latin-700italic.woff) format('woff'); /* Modern Browsers */ } /* alegreya-sans-800normal - latin */ @font-face { font-family: 'Alegreya Sans'; font-style: normal; font-display: swap; font-weight: 800; src: local('Alegreya Sans ExtraBold '), local('Alegreya Sans-ExtraBold'), url(fonts/alegreya-sans-latin-800.woff2) format('woff2'), url(fonts/alegreya-sans-latin-800.woff) format('woff'); /* Modern Browsers */ } /* alegreya-sans-800italic - latin */ @font-face { font-family: 'Alegreya Sans'; font-style: italic; font-display: swap; font-weight: 800; src: local('Alegreya Sans ExtraBold italic'), local('Alegreya Sans-ExtraBolditalic'), url(fonts/alegreya-sans-latin-800italic.woff2) format('woff2'), url(fonts/alegreya-sans-latin-800italic.woff) format('woff'); /* Modern Browsers */ } /* alegreya-sans-900normal - latin */ @font-face { font-family: 'Alegreya Sans'; font-style: normal; font-display: swap; font-weight: 900; src: local('Alegreya Sans Black '), local('Alegreya Sans-Black'), url(fonts/alegreya-sans-latin-900.woff2) format('woff2'), url(fonts/alegreya-sans-latin-900.woff) format('woff'); /* Modern Browsers */ } /* alegreya-sans-900italic - latin */ @font-face { font-family: 'Alegreya Sans'; font-style: italic; font-display: swap; font-weight: 900; src: local('Alegreya Sans Black italic'), local('Alegreya Sans-Blackitalic'), url(fonts/alegreya-sans-latin-900italic.woff2) format('woff2'), url(fonts/alegreya-sans-latin-900italic.woff) format('woff'); /* Modern Browsers */ -} \ No newline at end of file +} + +table.swh-logos-table td, +table.swh-logos-table th { + text-align: center; +} + +table.swh-logos-table img { + margin-bottom: 5px; +} + +table.swh-logos-table ul { + text-align: left; + margin-bottom: auto; +} diff --git a/swh/docs/sphinx/conf.py b/swh/docs/sphinx/conf.py index e65a251..676c6f0 100755 --- a/swh/docs/sphinx/conf.py +++ b/swh/docs/sphinx/conf.py @@ -1,290 +1,291 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- # import logging import os from typing import Dict from sphinx.ext import autodoc from swh.docs.django_settings import force_django_settings # General information about the project. project = "Software Heritage - Development Documentation" copyright = "2015-2022 The Software Heritage developers" author = "The Software Heritage developers" # -- General configuration ------------------------------------------------ # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ "sphinx.ext.autodoc", "sphinx.ext.napoleon", "sphinx.ext.intersphinx", "sphinxcontrib.httpdomain", "sphinx.ext.extlinks", "sphinxcontrib.images", "sphinxcontrib.programoutput", "sphinx.ext.viewcode", "sphinx_tabs.tabs", "sphinx_rtd_theme", "sphinx.ext.graphviz", "sphinx_click.ext", "myst_parser", "sphinx.ext.todo", "sphinx_reredirects", "swh.docs.sphinx.view_in_phabricator", # swh.scheduler inherits some attribute descriptions from celery that use # custom crossrefs (eg. :setting:`task_ignore_result`) "sphinx_celery.setting_crossref", "sphinx_panels", ] # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ".rst" # The master toctree document. master_doc = "index" # A string of reStructuredText that will be included at the beginning of every # source file that is read. # A bit hackish but should work both for each swh package and the whole swh-doc rst_prolog = """ .. include:: /../../swh-docs/docs/swh_substitutions """ # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = "" # The full version, including alpha/beta/rc tags. release = "" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. language = "en" # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This patterns also effect to html_static_path and html_extra_path exclude_patterns = [ "_build", "swh-icinga-plugins/index.rst", "swh.loader.cvs.rcsparse.setup.rst", "apidoc/swh.loader.cvs.rcsparse.setup.rst", ] # The name of the Pygments (syntax highlighting) style to use. pygments_style = "sphinx" # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True # -- Options for HTML output ---------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # html_theme = "sphinx_rtd_theme" html_favicon = "_static/favicon.ico" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. # html_theme_options = { "collapse_navigation": True, "sticky_navigation": True, } html_logo = "_static/software-heritage-logo-title-motto-vertical-white.png" # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ["_static"] html_js_files = ["custom.js"] +html_css_files = ["custom.css"] # make logo actually appear, avoiding gotcha due to alabaster default conf. # https://github.com/bitprophet/alabaster/issues/97#issuecomment-303722935 html_sidebars = { "**": [ "about.html", "globaltoc.html", "relations.html", "sourcelink.html", "searchbox.html", ] } # If not None, a 'Last updated on:' timestamp is inserted at every page # bottom, using the given strftime format. # The empty string is equivalent to '%b %d, %Y'. html_last_updated_fmt = "%Y-%m-%d %H:%M:%S %Z" # refer to the Python standard library. intersphinx_mapping = { "python": ("https://docs.python.org/3", None), "swh-devel": ("https://docs.softwareheritage.org/devel", None), "swh-sysadm": ("https://docs.softwareheritage.org/sysadm", None), } # Redirects for pages that were moved, so we don't break external links. # Uses sphinx-reredirects redirects = { "swh-deposit/spec-api": "api/api-documentation.html", "swh-deposit/metadata": "api/metadata.html", "swh-deposit/specs/blueprint": "../api/use-cases.html", "swh-deposit/user-manual": "api/user-manual.html", "infrastructure/index.html": "../../sysadm/network-architecture/index.html", "infrastructure/network.html": "../../sysadm/network-architecture/index.html", "infrastructure/service-urls.html": "../../sysadm/network-architecture/service-urls.html", # noqa "architecture": "architecture/overview.html", "architecture/mirror": "../../sysadm/mirror-operations/index.html", "keycloak": "../../sysadm/user-management/keycloak/index.html", "mirror": "architecture/mirror.html", "users": "user", "swh-web/uri-scheme-identifiers": "uri-scheme-swhids.html", } # -- autodoc configuration ---------------------------------------------- autodoc_default_flags = [ "members", "undoc-members", "private-members", "special-members", ] autodoc_member_order = "bysource" autodoc_mock_imports = [ "rados", ] autoclass_content = "both" modindex_common_prefix = ["swh."] # For the todo extension. Todo and todolist produce output only if this is True todo_include_todos = True _swh_web_base_url = "https://archive.softwareheritage.org" # for the extlinks extension, sub-projects should fill that dict extlinks: Dict = { "swh_web": (f"{_swh_web_base_url}/%s", None), "swh_web_api": (f"{_swh_web_base_url}/api/1/%s", None), "swh_web_browse": (f"{_swh_web_base_url}/browse/%s", None), } # SWH_PACKAGE_DOC_TOX_BUILD environment variable is set in a tox environment # named sphinx for each swh package (except the swh-docs package itself). swh_package_doc_tox_build = os.environ.get("SWH_PACKAGE_DOC_TOX_BUILD", False) # override some configuration when building a swh package # documentation with tox to remove warnings and suppress # those related to unresolved references if swh_package_doc_tox_build: swh_substitutions = os.path.join( os.path.dirname(__file__), "../../../docs/swh_substitutions" ) rst_prolog = f".. include:: /{swh_substitutions}" suppress_warnings = ["ref.ref"] html_favicon = "" html_logo = "" class SimpleDocumenter(autodoc.FunctionDocumenter): """ Custom autodoc directive to inline the docstring of a function in a document without the signature header and with no indentation. Example of use:: .. autosimple:: swh.web.api.views.directory.api_directory """ objtype = "simple" # ensure the priority is lesser than the base FunctionDocumenter # to avoid side effects with autodoc processing priority = -1 # do not indent the content content_indent = "" # do not add a header to the docstring def add_directive_header(self, sig): pass # sphinx event handler to set adequate django settings prior reading # apidoc generated rst files when building doc to avoid autodoc errors def set_django_settings(app, env, docname): if any([pattern in app.srcdir for pattern in ("swh-web-client", "DWCLI")]): # swh-web-client is detected as swh-web by the code below but # django is not installed when building standalone swh-web-client doc return package_settings = { "auth": "swh.auth.tests.django.app.apptest.settings", "deposit": "swh.deposit.settings.development", "web": "swh.web.settings.development", } for package, settings in package_settings.items(): if any( [pattern in docname for pattern in (f"swh.{package}", f"swh-{package}")] ): force_django_settings(settings) # when building local package documentation with tox, insert glossary # content at the end of the index file in order to resolve references # to the terms it contains def add_glossary_to_index(app, docname, source): if docname == "index": glossary_path = os.path.join( os.path.dirname(__file__), "../../../docs/glossary.rst" ) with open(glossary_path, "r") as glossary: source[0] += "\n" + glossary.read() def setup(app): # env-purge-doc event is fired before source-read app.connect("env-purge-doc", set_django_settings) # add autosimple directive (used in swh-web) app.add_autodocumenter(SimpleDocumenter) # set an environment variable indicating we are currently building # the documentation os.environ["SWH_DOC_BUILD"] = "1" logger = logging.getLogger("sphinx") if swh_package_doc_tox_build: # ensure glossary will be available in package doc scope app.connect("source-read", add_glossary_to_index) # suppress some httpdomain warnings in non web packages if not any([pattern in app.srcdir for pattern in ("swh-web", "DWAPPS")]): # filter out httpdomain unresolved reference warnings # to not consider them as errors when using -W option of sphinx-build class HttpDomainRefWarningFilter(logging.Filter): def filter(self, record: logging.LogRecord) -> bool: return not record.msg.startswith("Cannot resolve reference to") # insert a custom filter in the warning log handler of sphinx logger.handlers[1].filters.insert(0, HttpDomainRefWarningFilter()) diff --git a/user/index.rst b/user/index.rst index 75bbe39..1a75841 100644 --- a/user/index.rst +++ b/user/index.rst @@ -1,35 +1,27 @@ .. _swh-docs: -.. Software Heritage documentation master file, created by - sphinx-quickstart on Thu Jun 17 11:23:12 2021. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - Software Heritage User documentation ==================================== Getting started --------------- * :ref:`faq` - -Tutorials ---------- - -... +* :ref:`loaders` Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` .. toctree:: - :maxdepth: 2 - :caption: Contents: - :titlesonly: - :hidden: + :maxdepth: 2 + :caption: Contents: + :titlesonly: + :hidden: - faq/index + faq/index + loaders/index diff --git a/user/loaders/archive.rst b/user/loaders/archive.rst new file mode 100644 index 0000000..ea64099 --- /dev/null +++ b/user/loaders/archive.rst @@ -0,0 +1,7 @@ +.. _archive_loader: + +Archive loader +============== + +.. todo:: + This page is a work in progress. diff --git a/user/loaders/bazaar.rst b/user/loaders/bazaar.rst new file mode 100644 index 0000000..6b8ba80 --- /dev/null +++ b/user/loaders/bazaar.rst @@ -0,0 +1,7 @@ +.. _bzr_loader: + +Bazaar loader +============= + +.. todo:: + This page is a work in progress. diff --git a/user/loaders/cran.rst b/user/loaders/cran.rst new file mode 100644 index 0000000..6a466c2 --- /dev/null +++ b/user/loaders/cran.rst @@ -0,0 +1,7 @@ +.. _cran_loader: + +CRAN loader +=========== + +.. todo:: + This page is a work in progress. diff --git a/user/loaders/crates.rst b/user/loaders/crates.rst new file mode 100644 index 0000000..1a49462 --- /dev/null +++ b/user/loaders/crates.rst @@ -0,0 +1,7 @@ +.. _crates_loader: + +Crates loader +============= + +.. todo:: + This page is a work in progress. diff --git a/user/loaders/cvs.rst b/user/loaders/cvs.rst new file mode 100644 index 0000000..6bbfc60 --- /dev/null +++ b/user/loaders/cvs.rst @@ -0,0 +1,7 @@ +.. _cvs_loader: + +CVS loader +========== + +.. todo:: + This page is a work in progress. diff --git a/user/loaders/debian.rst b/user/loaders/debian.rst new file mode 100644 index 0000000..8f3b1e6 --- /dev/null +++ b/user/loaders/debian.rst @@ -0,0 +1,7 @@ +.. _debian_loader: + +Debian loader +============= + +.. todo:: + This page is a work in progress. diff --git a/user/loaders/deposit.rst b/user/loaders/deposit.rst new file mode 100644 index 0000000..8002bf4 --- /dev/null +++ b/user/loaders/deposit.rst @@ -0,0 +1,7 @@ +.. _deposit_loader: + +Deposit loader +============== + +.. todo:: + This page is a work in progress. diff --git a/user/loaders/git.rst b/user/loaders/git.rst new file mode 100644 index 0000000..4645f08 --- /dev/null +++ b/user/loaders/git.rst @@ -0,0 +1,7 @@ +.. _git_loader: + +Git loader +========== + +.. todo:: + This page is a work in progress. diff --git a/user/loaders/index.rst b/user/loaders/index.rst new file mode 100644 index 0000000..462e79b --- /dev/null +++ b/user/loaders/index.rst @@ -0,0 +1,394 @@ +.. _loaders: + +Software Heritage loaders +************************* + +A :term:`loader` is a software component used to ingest content into the |swh| archive. + +This page references all available loaders and links to their high-level documentation. + +.. rst-class:: swh-logos-table + +.. table:: + :align: center + + +--------------------------+-------------------------------+-----------------------------+------------------------------------+ + | Loader name | Related links | Current status | Related `grants`_ | + +==========================+===============================+=============================+====================================+ + | |archive_logo| | * |archive_loader_source|_ | |archive_loader_status|_ | | + | | * |archive_loader_devdoc|_ | | | + | :ref:`archive_loader` | | | | + +--------------------------+-------------------------------+-----------------------------+------------------------------------+ + | |bzr_logo| | * |bzr_loader_source|_ | |bzr_loader_status|_ | |bzr_loader_grant|_ | + | | * |bzr_loader_devdoc|_ | | | + | :ref:`bzr_loader` | * |bzr_loader_dev|_ | | (awarded to `Octobus`_) | + +--------------------------+-------------------------------+-----------------------------+------------------------------------+ + | |cran_logo| | * |cran_loader_source|_ | |cran_loader_status|_ | | + | | * |cran_loader_devdoc|_ | | | + | :ref:`cran_loader` | * |cran_loader_dev|_ | | | + +--------------------------+-------------------------------+-----------------------------+------------------------------------+ + | |crates_logo| | * |crates_loader_source|_ | |crates_loader_status|_ | |crates_loader_grant|_ | + | | * |crates_loader_source|_ | | | + | :ref:`crates_loader` | * |crates_loader_dev|_ | | (awarded to `Hashbang`_) | + +--------------------------+-------------------------------+-----------------------------+------------------------------------+ + | |cvs_logo| | * |cvs_loader_source|_ | |cvs_loader_status|_ | |cvs_loader_grant|_ | + | | * |cvs_loader_devdoc|_ | | | + | :ref:`cvs_loader` | * |cvs_loader_dev|_ | | (awarded to `Stefan Sperling`_) | + +--------------------------+-------------------------------+-----------------------------+------------------------------------+ + | |debian_logo| | * |debian_loader_source|_ | |debian_loader_status|_ | | + | | * |debian_loader_devdoc|_ | | | + | :ref:`debian_loader` | * |debian_loader_dev|_ | | | + +--------------------------+-------------------------------+-----------------------------+------------------------------------+ + | |deposit_logo| | * |deposit_loader_source|_ | |deposit_loader_status|_ | | + | | * |deposit_loader_devdoc|_ | | | + | :ref:`deposit_loader` | * |deposit_loader_dev|_ | | | + +--------------------------+-------------------------------+-----------------------------+------------------------------------+ + | |git_logo| | * |git_loader_source|_ | |git_loader_status|_ | | + | | * |git_loader_devdoc|_ | | | + | :ref:`git_loader` | * |git_loader_dev|_ | | | + +--------------------------+-------------------------------+-----------------------------+------------------------------------+ + | |maven_logo| | * |maven_loader_source|_ | |maven_loader_status|_ | |maven_loader_grant|_ | + | | * |maven_loader_devdoc|_ | | | + | :ref:`maven_loader` | * |maven_loader_dev|_ | | (awarded to `Castalia Solutions`_) | + +--------------------------+-------------------------------+-----------------------------+------------------------------------+ + | |mercurial_logo| | * |mercurial_loader_source|_ | |mercurial_loader_status|_ | |mercurial_loader_grant|_ | + | | * |mercurial_loader_devdoc|_ | | | + | :ref:`mercurial_loader` | * |mercurial_loader_dev|_ | | (awarded to `Octobus`_) | + +--------------------------+-------------------------------+-----------------------------+------------------------------------+ + | |nixguix_logo| | * |nixguix_loader_source|_ | |nixguix_loader_status|_ | |nixguix_loader_grant|_ | + | | * |nixguix_loader_devdoc|_ | | | + | :ref:`nixguix_loader` | * |nixguix_loader_dev|_ | | (awarded to `Tweag`_) | + +--------------------------+-------------------------------+-----------------------------+------------------------------------+ + | |npm_logo| | * |npm_loader_source|_ | |npm_loader_status|_ | | + | | * |npm_loader_devdoc|_ | | | + | :ref:`npm_loader` | * |npm_loader_dev|_ | | | + +--------------------------+-------------------------------+-----------------------------+------------------------------------+ + | |opam_logo| | * |opam_loader_source|_ | |opam_loader_status|_ | |opam_loader_grant|_ | + | | * |opam_loader_devdoc|_ | | | + | :ref:`opam_loader` | * |opam_loader_dev|_ | | (awarded to `OCamlPro`_) | + +--------------------------+-------------------------------+-----------------------------+------------------------------------+ + | |pypi_logo| | * |pypi_loader_source|_ | |pypi_loader_status|_ | | + | | * |pypi_loader_devdoc|_ | | | + | :ref:`pypi_loader` | * |pypi_loader_dev|_ | | | + +--------------------------+-------------------------------+-----------------------------+------------------------------------+ + | |subversion_logo| | * |subversion_loader_source|_ | |subversion_loader_status|_ | | + | | * |subversion_loader_devdoc|_ | | | + | :ref:`subversion_loader` | * |subversion_loader_dev|_ | | | + +--------------------------+-------------------------------+-----------------------------+------------------------------------+ + +.. toctree:: + :maxdepth: 2 + :hidden: + + archive + bazaar + cran + crates + cvs + debian + deposit + git + maven + mercurial + nixguix + npm + opam + pypi + subversion + +.. |archive_logo| image:: ../logos/archive.png + :width: 50% + :target: archive.html + :alt: Archive loader + +.. |bzr_logo| image:: ../logos/bazaar.png + :width: 50% + :target: bazaar.html + :alt: Bazaar loader + +.. |cran_logo| image:: ../logos/cran.png + :width: 50% + :target: cran.html + :alt: CRAN loader + +.. |cvs_logo| image:: ../logos/cvs.png + :width: 50% + :target: cvs.html + :alt: CVS loader + +.. |crates_logo| image:: ../logos/crates.png + :width: 50% + :target: crates.html + :alt: Crates loader + +.. |debian_logo| image:: ../logos/debian.png + :width: 50% + :target: debian.html + :alt: Debian loader + +.. |deposit_logo| image:: ../logos/deposit.png + :width: 50% + :target: deposit.html + :alt: Deposit loader + +.. |git_logo| image:: ../logos/git.png + :width: 50% + :target: git.html + :alt: Git loader + +.. |maven_logo| image:: ../logos/maven.png + :width: 50% + :target: maven.html + :alt: Maven loader + +.. |mercurial_logo| image:: ../logos/mercurial.png + :width: 50% + :target: mercurial.html + :alt: Mercurial loader + +.. |nixguix_logo| image:: ../logos/nixguix.png + :width: 50% + :target: nixguix.html + :alt: NixGuix loader + +.. |npm_logo| image:: ../logos/npm.png + :width: 50% + :target: npm.html + :alt: NPM loader + +.. |opam_logo| image:: ../logos/opam.png + :width: 50% + :target: opam.html + :alt: Opam loader + +.. |pypi_logo| image:: ../logos/pypi.png + :width: 50% + :target: pypi.html + :alt: PyPI loader + +.. |subversion_logo| image:: ../logos/subversion.png + :width: 50% + :target: subversion.html + :alt: Subversion loader + +.. |archive_loader_source| replace:: Source code +.. _archive_loader_source: https://forge.softwareheritage.org/source/swh-loader-core/browse/master/swh/loader/package/archive/ + +.. |archive_loader_devdoc| replace:: Developer doc +.. _archive_loader_devdoc: https://docs.softwareheritage.org/devel/apidoc/swh.loader.package.archive.html + +.. |archive_loader_status| replace:: in production +.. _archive_loader_status: https://archive.softwareheritage.org/browse/search/?with_visit=true&with_content=true&visit_type=tar + + +.. |bzr_loader_source| replace:: Source code +.. _bzr_loader_source: https://forge.softwareheritage.org/source/swh-loader-bzr/ + +.. |bzr_loader_devdoc| replace:: Developer doc +.. _bzr_loader_devdoc: https://docs.softwareheritage.org/devel/swh-loader-bzr/index.html + +.. |bzr_loader_dev| replace:: Development +.. _bzr_loader_dev: https://forge.softwareheritage.org/project/profile/164/ + +.. |bzr_loader_status| replace:: in production +.. _bzr_loader_status: https://archive.softwareheritage.org/browse/search/?with_visit=true&with_content=true&visit_type=bzr + +.. |bzr_loader_grant| replace:: Alfred P. Sloan Foundation +.. _bzr_loader_grant: https://www.softwareheritage.org/2021/01/21/archiving-sourceforge-and-supporting-bazaar/ + + +.. |cran_loader_source| replace:: Source code +.. _cran_loader_source: https://forge.softwareheritage.org/source/swh-loader-core/browse/master/swh/loader/package/cran/ + +.. |cran_loader_devdoc| replace:: Developer doc +.. _cran_loader_devdoc: https://docs.softwareheritage.org/devel/apidoc/swh.loader.package.cran.html + +.. |cran_loader_dev| replace:: Development +.. _cran_loader_dev: https://forge.softwareheritage.org/project/profile/132/ + +.. |cran_loader_status| replace:: in production +.. _cran_loader_status: https://archive.softwareheritage.org/browse/search/?with_visit=true&with_content=true&visit_type=cran + + +.. |crates_loader_source| replace:: Source code +.. _crates_loader_source: https://forge.softwareheritage.org/source/swh-loader-core/browse/master/swh/loader/package/crates/ + +.. |crates_loader_devdoc| replace:: Developer doc +.. _crates_loader_devdoc: https://docs.softwareheritage.org/devel/apidoc/swh.loader.package.crates.html + +.. |crates_loader_dev| replace:: Development +.. _crates_loader_dev: https://forge.softwareheritage.org/project/profile/182/ + +.. |crates_loader_status| replace:: in development +.. _crates_loader_status: https://forge.softwareheritage.org/T4104 + +.. |crates_loader_grant| replace:: Alfred P. Sloan Foundation +.. _crates_loader_grant: ttps://www.softwareheritage.org/2022/02/03/hashbang-expanding-coverage-software-heritage-archive/ + + +.. |cvs_loader_source| replace:: Source code +.. _cvs_loader_source: https://forge.softwareheritage.org/source/swh-loader-cvs/ + +.. |cvs_loader_devdoc| replace:: Developer doc +.. _cvs_loader_devdoc: https://docs.softwareheritage.org/devel/swh-loader-cvs/index.html + +.. |cvs_loader_dev| replace:: Development +.. _cvs_loader_dev: https://forge.softwareheritage.org/project/profile/166/ + +.. |cvs_loader_status| replace:: in staging +.. _cvs_loader_status: https://webapp.staging.swh.network/browse/search/?with_visit=true&with_content=true&visit_type=cvs + +.. |cvs_loader_grant| replace:: Alfred P. Sloan Foundation +.. _cvs_loader_grant: https://www.softwareheritage.org/2020/12/10/sloan-subgrant-cvs-subversion-loaders/ + + +.. |debian_loader_source| replace:: Source code +.. _debian_loader_source: https://forge.softwareheritage.org/source/swh-loader-core/browse/master/swh/loader/package/debian/ + +.. |debian_loader_devdoc| replace:: Developer doc +.. _debian_loader_devdoc: https://docs.softwareheritage.org/devel/apidoc/swh.loader.package.debian.html + +.. |debian_loader_dev| replace:: Development +.. _debian_loader_dev: https://forge.softwareheritage.org/project/profile/25/ + +.. |debian_loader_status| replace:: in production +.. _debian_loader_status: https://archive.softwareheritage.org/browse/search/?with_visit=true&with_content=true&visit_type=debian + + +.. |deposit_loader_source| replace:: Source code +.. _deposit_loader_source: https://forge.softwareheritage.org/source/swh-loader-core/browse/master/swh/loader/package/deposit/ + +.. |deposit_loader_devdoc| replace:: Developer doc +.. _deposit_loader_devdoc: https://docs.softwareheritage.org/devel/apidoc/swh.loader.package.deposit.html + +.. |deposit_loader_dev| replace:: Development +.. _deposit_loader_dev: https://forge.softwareheritage.org/project/profile/77/ + +.. |deposit_loader_status| replace:: in production +.. _deposit_loader_status: https://archive.softwareheritage.org/browse/search/?with_visit=true&with_content=true&visit_type=deposit + + +.. |git_loader_source| replace:: Source code +.. _git_loader_source: https://forge.softwareheritage.org/source/swh-loader-git/ + +.. |git_loader_devdoc| replace:: Developer doc +.. _git_loader_devdoc: https://docs.softwareheritage.org/devel/swh-loader-git/index.html + +.. |git_loader_dev| replace:: Development +.. _git_loader_dev: https://forge.softwareheritage.org/project/profile/17/ + +.. |git_loader_status| replace:: in production +.. _git_loader_status: https://archive.softwareheritage.org/browse/search/?with_visit=true&with_content=true&visit_type=git + + +.. |maven_loader_source| replace:: Source code +.. _maven_loader_source: https://forge.softwareheritage.org/source/swh-loader-core/browse/master/swh/loader/package/maven/ + +.. |maven_loader_devdoc| replace:: Developer doc +.. _maven_loader_devdoc: https://docs.softwareheritage.org/devel/apidoc/swh.loader.package.maven.html + +.. |maven_loader_dev| replace:: Development +.. _maven_loader_dev: https://forge.softwareheritage.org/project/profile/185/ + +.. |maven_loader_status| replace:: in staging +.. _maven_loader_status: https://webapp.staging.swh.network/browse/search/?with_visit=true&with_content=true&visit_type=maven + +.. |maven_loader_grant| replace:: Alfred P. Sloan Foundation +.. _maven_loader_grant: https://www.softwareheritage.org/2021/07/22/archiving-the-maven-ecosystem/ + + +.. |mercurial_loader_source| replace:: Source code +.. _mercurial_loader_source: https://forge.softwareheritage.org/source/swh-loader-mercurial/ + +.. |mercurial_loader_devdoc| replace:: Developer doc +.. _mercurial_loader_devdoc: https://docs.softwareheritage.org/devel/swh-loader-mercurial/index.html + +.. |mercurial_loader_dev| replace:: Development +.. _mercurial_loader_dev: https://forge.softwareheritage.org/project/profile/66/ + +.. |mercurial_loader_status| replace:: in production +.. _mercurial_loader_status: https://archive.softwareheritage.org/browse/search/?with_visit=true&with_content=true&visit_type=hg + +.. |mercurial_loader_grant| replace:: NLnet Foundation +.. _mercurial_loader_grant: https://www.softwareheritage.org/2020/03/26/experts-join-forces-to-expand-the-software-heritage-archive/ + + +.. |nixguix_loader_source| replace:: Source code +.. _nixguix_loader_source: https://forge.softwareheritage.org/source/swh-loader-core/browse/master/swh/loader/package/nixguix/ + +.. |nixguix_loader_devdoc| replace:: Developer doc +.. _nixguix_loader_devdoc: https://docs.softwareheritage.org/devel/apidoc/swh.loader.package.nixguix.html + +.. |nixguix_loader_dev| replace:: Development +.. _nixguix_loader_dev: https://forge.softwareheritage.org/project/profile/152/ + +.. |nixguix_loader_status| replace:: in production +.. _nixguix_loader_status: https://archive.softwareheritage.org/browse/search/?with_content=true&visit_type=nixguix + +.. |nixguix_loader_grant| replace:: NLnet Foundation +.. _nixguix_loader_grant: https://www.softwareheritage.org/2020/06/18/welcome-nixpkgs/ + + +.. |npm_loader_source| replace:: Source code +.. _npm_loader_source: https://forge.softwareheritage.org/source/swh-loader-core/browse/master/swh/loader/package/npm/ + +.. |npm_loader_devdoc| replace:: Developer doc +.. _npm_loader_devdoc: https://docs.softwareheritage.org/devel/apidoc/swh.loader.package.npm.html + +.. |npm_loader_dev| replace:: Development +.. _npm_loader_dev: https://forge.softwareheritage.org/project/profile/121/ + +.. |npm_loader_status| replace:: in production +.. _npm_loader_status: https://archive.softwareheritage.org/browse/search/?with_visit=true&with_content=true&visit_type=npm + + +.. |opam_loader_source| replace:: Source code +.. _opam_loader_source: https://forge.softwareheritage.org/source/swh-loader-core/browse/master/swh/loader/package/opam/ + +.. |opam_loader_devdoc| replace:: Developer doc +.. _opam_loader_devdoc: https://docs.softwareheritage.org/devel/apidoc/swh.loader.package.opam.html + +.. |opam_loader_dev| replace:: Development +.. _opam_loader_dev: https://forge.softwareheritage.org/project/profile/167/ + +.. |opam_loader_status| replace:: in production +.. _opam_loader_status: https://archive.softwareheritage.org/browse/search/?with_visit=true&with_content=true&visit_type=opam + +.. |opam_loader_grant| replace:: Alfred P. Sloan Foundation +.. _opam_loader_grant: https://www.softwareheritage.org/2021/04/20/connecting-ocaml/ + + +.. |pypi_loader_source| replace:: Source code +.. _pypi_loader_source: https://forge.softwareheritage.org/source/swh-loader-core/browse/master/swh/loader/package/pypi/ + +.. |pypi_loader_devdoc| replace:: Developer doc +.. _pypi_loader_devdoc: https://docs.softwareheritage.org/devel/apidoc/swh.loader.package.pypi.html + +.. |pypi_loader_dev| replace:: Development +.. _pypi_loader_dev: https://forge.softwareheritage.org/project/profile/88/ + +.. |pypi_loader_status| replace:: in production +.. _pypi_loader_status: https://archive.softwareheritage.org/browse/search/?with_visit=true&with_content=true&visit_type=pypi + + +.. |subversion_loader_source| replace:: Source code +.. _subversion_loader_source: https://forge.softwareheritage.org/source/swh-loader-svn/ + +.. |subversion_loader_devdoc| replace:: Developer doc +.. _subversion_loader_devdoc: https://docs.softwareheritage.org/devel/swh-loader-svn/index.html + +.. |subversion_loader_dev| replace:: Development +.. _subversion_loader_dev: https://forge.softwareheritage.org/project/profile/37/ + +.. |subversion_loader_status| replace:: in production +.. _subversion_loader_status: https://archive.softwareheritage.org/browse/search/?with_visit=true&with_content=true&visit_type=svn + + +.. _grants: https://www.softwareheritage.org/grants/ + +.. _Castalia Solutions: https://castalia.solutions/ +.. _Hashbang: https://hashbang.fr/ +.. _OCamlPro: https://ocamlpro.com/ +.. _Octobus: https://octobus.net/ +.. _Stefan Sperling: https://stefansperling.de/ +.. _Tweag: https://www.tweag.io/ \ No newline at end of file diff --git a/user/loaders/maven.rst b/user/loaders/maven.rst new file mode 100644 index 0000000..5d48a15 --- /dev/null +++ b/user/loaders/maven.rst @@ -0,0 +1,7 @@ +.. _maven_loader: + +Maven loader +============ + +.. todo:: + This page is a work in progress. diff --git a/user/loaders/mercurial.rst b/user/loaders/mercurial.rst new file mode 100644 index 0000000..7f15c04 --- /dev/null +++ b/user/loaders/mercurial.rst @@ -0,0 +1,7 @@ +.. _mercurial_loader: + +Mercurial loader +================ + +.. todo:: + This page is a work in progress. diff --git a/user/loaders/nixguix.rst b/user/loaders/nixguix.rst new file mode 100644 index 0000000..d72e6be --- /dev/null +++ b/user/loaders/nixguix.rst @@ -0,0 +1,7 @@ +.. _nixguix_loader: + +NixGuix loader +============== + +.. todo:: + This page is a work in progress. diff --git a/user/loaders/npm.rst b/user/loaders/npm.rst new file mode 100644 index 0000000..7c4b334 --- /dev/null +++ b/user/loaders/npm.rst @@ -0,0 +1,7 @@ +.. _npm_loader: + +NPM loader +============== + +.. todo:: + This page is a work in progress. diff --git a/user/loaders/opam.rst b/user/loaders/opam.rst new file mode 100644 index 0000000..6c9b756 --- /dev/null +++ b/user/loaders/opam.rst @@ -0,0 +1,7 @@ +.. _opam_loader: + +Opam loader +=========== + +.. todo:: + This page is a work in progress. diff --git a/user/loaders/pypi.rst b/user/loaders/pypi.rst new file mode 100644 index 0000000..5bda84a --- /dev/null +++ b/user/loaders/pypi.rst @@ -0,0 +1,7 @@ +.. _pypi_loader: + +PyPI loader +=========== + +.. todo:: + This page is a work in progress. diff --git a/user/loaders/subversion.rst b/user/loaders/subversion.rst new file mode 100644 index 0000000..c2ca2b7 --- /dev/null +++ b/user/loaders/subversion.rst @@ -0,0 +1,7 @@ +.. _subversion_loader: + +Subversion loader +================= + +.. todo:: + This page is a work in progress. diff --git a/user/logos/archive.png b/user/logos/archive.png new file mode 100644 index 0000000..9213392 Binary files /dev/null and b/user/logos/archive.png differ diff --git a/user/logos/bazaar.png b/user/logos/bazaar.png new file mode 100644 index 0000000..329bf3e Binary files /dev/null and b/user/logos/bazaar.png differ diff --git a/user/logos/cran.png b/user/logos/cran.png new file mode 100644 index 0000000..aefa2b3 Binary files /dev/null and b/user/logos/cran.png differ diff --git a/user/logos/crates.png b/user/logos/crates.png new file mode 100644 index 0000000..b2ff37c Binary files /dev/null and b/user/logos/crates.png differ diff --git a/user/logos/cvs.png b/user/logos/cvs.png new file mode 100644 index 0000000..cbdcca0 Binary files /dev/null and b/user/logos/cvs.png differ diff --git a/user/logos/debian.png b/user/logos/debian.png new file mode 100644 index 0000000..d8a9a2a Binary files /dev/null and b/user/logos/debian.png differ diff --git a/user/logos/deposit.png b/user/logos/deposit.png new file mode 100644 index 0000000..c6156c2 Binary files /dev/null and b/user/logos/deposit.png differ diff --git a/user/logos/git.png b/user/logos/git.png new file mode 100644 index 0000000..aa8dd6e Binary files /dev/null and b/user/logos/git.png differ diff --git a/user/logos/maven.png b/user/logos/maven.png new file mode 100644 index 0000000..4775130 Binary files /dev/null and b/user/logos/maven.png differ diff --git a/user/logos/mercurial.png b/user/logos/mercurial.png new file mode 100644 index 0000000..706ce1e Binary files /dev/null and b/user/logos/mercurial.png differ diff --git a/user/logos/nixguix.png b/user/logos/nixguix.png new file mode 100644 index 0000000..8bcac14 Binary files /dev/null and b/user/logos/nixguix.png differ diff --git a/user/logos/npm.png b/user/logos/npm.png new file mode 100644 index 0000000..4f312b1 Binary files /dev/null and b/user/logos/npm.png differ diff --git a/user/logos/opam.png b/user/logos/opam.png new file mode 100644 index 0000000..5b85454 Binary files /dev/null and b/user/logos/opam.png differ diff --git a/user/logos/pypi.png b/user/logos/pypi.png new file mode 100644 index 0000000..1e09c64 Binary files /dev/null and b/user/logos/pypi.png differ diff --git a/user/logos/subversion.png b/user/logos/subversion.png new file mode 100644 index 0000000..9eee097 Binary files /dev/null and b/user/logos/subversion.png differ