diff --git a/pyproject.toml b/pyproject.toml index 4cc44e1..32576d7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "hatchling.build" [project] name = "validate-pyproject-schema-store" -version = "2024.03.18" +version = "2024.03.25" authors = [ { name = "Henry Schreiner", email = "henryfs@princeton.edu" }, ] diff --git a/src/validate_pyproject_schema_store/resources/poetry.schema.json b/src/validate_pyproject_schema_store/resources/poetry.schema.json index e7d4acc..fffe09f 100644 --- a/src/validate_pyproject_schema_store/resources/poetry.schema.json +++ b/src/validate_pyproject_schema_store/resources/poetry.schema.json @@ -2,6 +2,19 @@ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://json.schemastore.org/partial-poetry.json", "definitions": { + "poetry-name": { + "type": "string", + "description": "Package name." + }, + "poetry-version": { + "type": "string", + "description": "Version of the package. It should follow semantic versioning, but it is not enforced." + }, + "poetry-description": { + "type": "string", + "description": "Short package description.", + "pattern": "^[^\n]*$" + }, "poetry-author-pattern": { "description": "Pattern that matches `Name ` like 'King Arthur' or 'Miss Islington <miss-islington@python.org>'.", "type": "string", @@ -431,25 +444,20 @@ }, "type": "object", "additionalProperties": true, - "required": [ - "name", - "version", - "description", - "authors" - ], "properties": { + "package-mode": { + "type": "boolean", + "description": "Whether Poetry operates in package mode or not.", + "default": true + }, "name": { - "type": "string", - "description": "Package name." + "$ref": "#/definitions/poetry-name" }, "version": { - "type": "string", - "description": "Version of the package. It should follow semantic versioning, but it is not enforced." + "$ref": "#/definitions/poetry-version" }, "description": { - "type": "string", - "description": "Short package description.", - "pattern": "^[^\n]*$" + "$ref": "#/definitions/poetry-description" }, "keywords": { "type": "array", @@ -667,5 +675,34 @@ } } } + }, + "if": { + "properties": { + "package-mode": { + "const": true + } + } + }, + "then": { + "required": [ + "name", + "version", + "description", + "authors" + ], + "properties": { + "name": { + "$ref": "#/definitions/poetry-name" + }, + "version": { + "$ref": "#/definitions/poetry-version" + }, + "description": { + "$ref": "#/definitions/poetry-description" + }, + "authors": { + "$ref": "#/definitions/poetry-authors" + } + } } }