pgxn_meta 0.7.0

The PGXN distribution metadata specification
Documentation
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://pgxn.org/meta/v2/phase.schema.json",
  "title": "Dependency Phase",
  "description": "A Phase maps dependency relationships, such as `requires`, `recommends`, `suggests`, and `conflicts`, to their dependencies.",
  "type": "object",
  "properties": {
    "requires": {
      "$ref": "#/$defs/relationship",
      "description": "These dependencies **MUST** be installed for proper completion of the phase."
    },
    "recommends": {
      "$ref": "#/$defs/relationship",
      "description": "Recommended dependencies are *strongly* encouraged and **SHOULD** be satisfied except in resource constrained environments."
    },
    "suggests": {
      "$ref": "#/$defs/relationship",
      "description": "These dependencies are **OPTIONAL**, are suggested for enhanced operation of the described distribution, and **MAY** be satisfied."
    },
    "conflicts": {
      "$ref": "#/$defs/relationship",
      "description": "These dependencies **MUST NOT** be installed when the phase is in operation. This is a very rare situation, and the conflicts relationship **SHOULD** be used with great caution, or not at all."
    }
  },
  "patternProperties": { "^[xX]_.": { "description": "Custom key" } },
  "additionalProperties": false,
  "anyOf": [
    { "required": ["requires"] },
    { "required": ["recommends"] },
    { "required": ["suggests"] },
    { "required": ["conflicts"] }
  ],
  "examples": [
    {
      "requires": { "pkg:cargo/cargo-pgrx": "==0.11.4" }
    },
    {
      "requires": {
        "pkg:postgres/pg_regress": 0,
        "pkg:postgres/plpgsql": 0,
        "pkg:pgxn/pgtap": "1.1.0"
      }
    },
    {
      "requires": {
        "pkg:generic/awk": 0,
        "pkg:generic/perl": "5.20"
      },
      "recommends": {
        "pkg:generic/jq": 0,
        "pkg:generic/perl": "5.40"
      }
    },
    {
      "requires": {
        "pkg:generic/penblas": 0,
        "pkg:generic/python3": 0,
        "pkg:generic/readline": 0,
        "pkg:generic/openssl": 0,
        "pkg:generic/bison": 0
      },
      "suggests": {
        "pkg:pypi/pyarrow": "11.0.0",
        "pkg:pypi/catboost": 0,
        "pkg:pypi/lightgbm": 0,
        "pkg:pypi/torch": 0,
        "pkg:pypi/langchain": 0
      }
    }
  ],
  "$defs": {
    "relationship": {
      "title": "Dependency Relationship",
      "description": "A Dependency Relationship lists dependencies and their version ranges.",
      "type": "object",
      "minProperties": 1,
      "propertyNames": { "$ref": "purl.schema.json" },
      "additionalProperties": { "$ref": "version_range.schema.json" }
    }
  }
}