{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://pgxn.org/meta/v2/base.schema.json",
"title": "Base Schema",
"description": "This is the v2 base distribution schema, mixed into other schemas",
"type": "object",
"properties": {
"name": {
"$ref": "term.schema.json",
"description": "The name of the package provided by the distribution. This is usually the same as the name of the “main extension” in the contents of the package but **MAY** be completely unrelated. This value will be used in the distribution file name on [PGXN](https://pgxn.org).",
"examples": ["pgTAP", "vector"]
},
"version": {
"$ref": "semver.schema.json",
"description": "The version of the distribution to which the metadata structure refers. Its values **MUST** be a [SemVer](https://semver.org/).\n\nAll of the items listed in `contents will be considered to have this version; any references they make to a version, such as the control file, **SHOULD** be compatible with this version."
},
"abstract": {
"description": "A short description of the purpose of the package provided by the distribution.",
"type": "string",
"minLength": 1,
"examples": [
"Unit testing for PostgreSQL",
"Open-source vector similarity search for Postgres"
]
},
"maintainers": { "$ref": "maintainers.schema.json" },
"license": { "$ref": "license.schema.json" },
"contents": { "$ref": "contents.schema.json" },
"meta-spec": { "$ref": "meta-spec.schema.json" },
"description": {
"description": "A longer, more complete description of the purpose or intended use of the package provided by the distribution,answering the question “what is this thing and what value is it?”",
"type": "string",
"minLength": 1,
"examples": [
"pgTAP is a suite of database functions that make it easy to write TAP-emitting unit tests in psql scripts or xUnit-style test functions."
]
},
"producer": {
"description": "The **Producer** that created the metadata. There are no defined semantics for this property, but it is traditional to use a string in the form “Software package version 1.23.0”, or the maintainer's name if the metadata was generated by hand.",
"type": "string",
"minLength": 1,
"examples": ["pgxn CLI version 2.0.4"]
},
"classifications": { "$ref": "classifications.schema.json" },
"ignore": { "$ref": "ignore.schema.json" },
"dependencies": { "$ref": "dependencies.schema.json" },
"resources": { "$ref": "resources.schema.json" },
"artifacts": { "$ref": "artifacts.schema.json" }
},
"patternProperties": { "^[xX]_.": { "description": "Custom key" } },
"required": [
"name",
"version",
"abstract",
"maintainers",
"license",
"contents",
"meta-spec"
],
"examples": [
{
"name": "pgTAP",
"abstract": "Unit testing for PostgreSQL",
"description": "pgTAP is a suite of database functions that make it easy to write TAP-emitting unit tests in psql scripts or xUnit-style test functions.",
"version": "0.26.0",
"maintainers": [
{ "name": "Josh Berkus", "email": "jberkus@pgxn.org" },
{ "name": "David E. Wheeler", "url": "https://pgxn.org/user/theory" }
],
"license": "MIT OR PostgreSQL",
"dependencies": {
"postgres": { "version": "8.4" },
"packages": {
"run": {
"requires": {
"pkg:postgres/plpgsql": 0
}
}
}
},
"contents": {
"extensions": {
"pgtap": {
"abstract": "Unit testing for PostgreSQL",
"sql": "pgtap.sql",
"control": "pgtap.control"
}
}
},
"resources": {
"homepage": "https://pgtap.org",
"issues": "https://github.com/theory/pgtap/issues",
"repository": "https://github.com/theory/pgtap",
"docs": "https://pgtap.org/documentation.html",
"support": "https://github.com/theory/pgtap",
"badges": [
{
"src": "https://img.shields.io/badge/License-PostgreSQL-blue.svg",
"alt": "PostgreSQL License",
"url": "https://www.postgresql.org/about/licence/"
},
{
"src": "https://github.com/theory/pgtap/actions/workflows/test.yml/badge.svg",
"alt": "Test Status",
"url": "https://github.com/theory/pgtap/actions/workflows/ci.yml"
}
]
},
"producer": "David E. Wheeler",
"meta-spec": {
"version": "2.0.0",
"url": "https://rfcs.pgxn.org/0003-meta-spec-v2.html"
},
"classifications": {
"tags": [
"testing",
"unit testing",
"tap",
"tddd",
"test driven database development"
],
"categories": ["Tooling and Admin"]
}
}
]
}