This repository contains the two authoritative tables (CSV files) that list the registered OCDS extensions:
extensions.csv
lists the extensions in the registryextension_versions.csv
lists each version of each extension in the registry
Create an issue with a link to your extension. The registry's maintainers will evaluate its quality and relevance and provide feedback in the created issue or in the extension's repository. When appropriate, the maintainers will update the registry and close the issue.
Create an issue or pull request about updating extension_versions.csv
. See below on how to edit this file.
This file has one extension per row. The row order has no effect, but alphabetical order is maintained for easier scanning and change tracking.
The CSV columns are:
Id
(required): A unique identifier for the extension, composed of underscores and lowercase and uppercase ASCII letters. If the extension follows the extension naming guidance, thisId
can be the extension repository's name, without theocds_
prefix and_extension
suffix.Category
: The standard documentation lists, in specific locations, extensions that target a specific part of the schema. Extensions may set a category to appear in one of these lists.Core
: The standard documentation defines core extensions, and the standard's governance process determines whether an extension is core.
This file has one version (or release) of an extension per row. The row order has no effect, but alphabetical order is maintained for easier scanning and change tracking.
A version of an extension can be either 'live' or 'frozen'. A live version is continuously updated at the same URL; for example, an author publishes an extension on GitHub, and continuously updates the default branch. A frozen version is published once at a given URL and never updated; for example, an author tags a commit and releases that version of the extension. An extension can have both live and frozen versions. An extension ought to have only one live version.
The CSV columns are:
Id
(required): AnId
fromextensions.csv
.Date
:- If the extension is frozen, this is the date of the release (e.g. as shown on the extension's releases page on GitHub), or the date on which the row was inserted.
- If the extension is live, this is blank.
Version
(required):- If the extension is frozen, this is the tag of the release (e.g. as shown on the extension's releases page on GitHub), or a version number chosen by the extension's author.
- If the extension is live, this is the branch name at which the version is continuously updated, or a version name chosen by the extension's author.
Base URL
(required): The URL to whichextension.json
can be appended to retrieve the metadata for this version of the extension.Download URL
: The URL to retrieve a ZIP archive of this version of the extension.
Install dependencies:
pip install -r requirements_dev.txt
To add a new extension to extensions.csv
and extension_versions.csv
, run, for example:
./manage.py add https://github.com/org/repo
To check for new versions of registered extensions, run:
./manage.py refresh
The standard documentation renders lists of community extensions using an extensions.json
file, that aggregates information from the registry and each extension. This file is published at build/extensions.json. To regenerate the file:
./manage.py build
This repository has tests to validate extensions.csv
and extension_versions.csv
and to check the integrity of extensions.json
.