{ "$defs": { "About": { "additionalProperties": false, "properties": { "homepage": { "anyOf": [ { "format": "uri", "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Url of the homepage of the package.", "title": "Homepage" }, "repository": { "anyOf": [ { "format": "uri", "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Url that points to where the source code is hosted e.g. (github.com)", "title": "Repository" }, "documentation": { "anyOf": [ { "format": "uri", "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "Url that points to where the documentation is hosted.", "title": "Documentation" }, "license": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "An license in SPDX format.", "title": "License" }, "license_file": { "anyOf": [ { "pattern": "^[^\\\\]+$", "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "pattern": "^[^\\\\]+$", "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Paths to the license files of this package.", "title": "License File" }, "license_family": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The license family (deprecated, but still used in some recipes).", "title": "License Family" }, "summary": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "A short description of the package.", "title": "Summary" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Extended description of the package.", "title": "Description" }, "prelink_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Prelink Message" } }, "title": "About", "type": "object" }, "AttestationConfig": { "additionalProperties": false, "properties": { "bundle_url": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "URL to download the attestation bundle from (e.g., .sigstore.json file). Auto-derived for PyPI sources if not specified.", "title": "Bundle Url" }, "publishers": { "default": [], "description": "Publisher identities to verify (e.g., 'github:owner/repo'). All specified publishers must match.", "items": { "minLength": 1, "type": "string" }, "title": "Publishers", "type": "array" } }, "title": "AttestationConfig", "type": "object" }, "BaseGitSource": { "additionalProperties": false, "properties": { "patches": { "anyOf": [ { "pattern": "^[^\\\\]+$", "type": "string" }, { "items": { "anyOf": [ { "pattern": "^[^\\\\]+$", "type": "string" }, { "$ref": "#/$defs/IfStatement_Annotated_str__StringConstraints__" } ] }, "type": "array" } ], "default": [], "description": "A list of patches to apply after fetching the source", "title": "Patches" }, "target_directory": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "The location in the working directory to place the source", "title": "Target Directory" }, "git": { "anyOf": [ { "pattern": "((git|ssh|http(s)?)|(git@[\\w\\.]+))(:(\\/\\/)?)([\\w\\.@:\\/\\\\-~]+)", "type": "string" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" } ], "description": "The url that points to the git repository.", "title": "Git" }, "depth": { "anyOf": [ { "minimum": 0, "type": "integer" }, { "type": "null" } ], "default": null, "description": "A value to use when shallow cloning the repository.", "title": "Depth" }, "lfs": { "default": false, "description": "Should we LFS files be checked out as well", "title": "Lfs", "type": "boolean" }, "submodules": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "description": "Whether to recursively initialize and update submodules.", "title": "Submodules" }, "expected_commit": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "An expected commit hash to verify after checkout.", "title": "Expected Commit" } }, "required": [ "git" ], "title": "BaseGitSource", "type": "object" }, "Build": { "additionalProperties": false, "properties": { "number": { "anyOf": [ { "minimum": 0, "type": "integer" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" }, { "type": "null" } ], "default": 0, "description": "Build number to version current build in addition to package version", "title": "Number" }, "string": { "anyOf": [ { "type": "string" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" }, { "type": "null" } ], "default": null, "description": "The build string to identify build variant. This is usually omitted (can use `${{ hash }}`) variable here)", "title": "String" }, "skip": { "anyOf": [ { "type": "string" }, { "type": "boolean" }, { "items": { "anyOf": [ { "type": "string" }, { "type": "boolean" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "List of conditions under which to skip the build of the package. If any of these condition returns true the build is skipped.", "title": "Skip" }, "noarch": { "anyOf": [ { "enum": [ "generic", "python" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Can be either 'generic' or 'python'. A noarch 'python' package compiles .pyc files upon installation.", "title": "Noarch" }, "script": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/FileScript" }, { "$ref": "#/$defs/ContentScript" }, { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "The script to execute to invoke the build. If the string is a single line and ends with `.sh` or `.bat`, then we interpret it as a file.", "title": "Script" }, "merge_build_and_host_envs": { "anyOf": [ { "type": "boolean" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" }, { "type": "null" } ], "default": false, "description": "Merge the build and host environments (used in many R packages on Windows)", "title": "Merge Build And Host Envs" }, "always_include_files": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "default": [], "description": "Files to be included even if they are present in the PREFIX before building.", "title": "Always Include Files" }, "always_copy_files": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/GlobDict" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/GlobDict" } ] }, "type": "array" } ], "default": [], "description": "Do not soft- or hard-link these files but instead always copy them into the environment", "title": "Always Copy Files" }, "variant": { "anyOf": [ { "$ref": "#/$defs/Variant" }, { "type": "null" } ], "default": null, "description": "Options that influence how the different variants are computed." }, "python": { "anyOf": [ { "$ref": "#/$defs/Python" }, { "type": "null" } ], "default": null, "description": "Python specific build configuration" }, "dynamic_linking": { "anyOf": [ { "$ref": "#/$defs/DynamicLinking" }, { "type": "null" } ], "default": null, "description": "Configuration to post-process dynamically linked libraries and executables" }, "prefix_detection": { "anyOf": [ { "$ref": "#/$defs/PrefixDetection" }, { "type": "null" } ], "default": null, "description": "Options that influence how the prefix replacement is done." }, "files": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/GlobDict" } ], "default": null, "description": "Glob patterns to include or exclude files from the package.", "title": "Files" }, "post_process": { "anyOf": [ { "$ref": "#/$defs/PostProcess" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "$ref": "#/$defs/PostProcess" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "default": [], "description": "Post-processing operations using regex replacements on files.", "title": "Post Process" } }, "title": "Build", "type": "object" }, "Cache": { "additionalProperties": false, "properties": { "source": { "anyOf": [ { "$ref": "#/$defs/UrlSource" }, { "$ref": "#/$defs/GitRev" }, { "$ref": "#/$defs/GitTag" }, { "$ref": "#/$defs/GitBranch" }, { "$ref": "#/$defs/BaseGitSource" }, { "$ref": "#/$defs/LocalSource" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "$ref": "#/$defs/UrlSource" }, { "$ref": "#/$defs/GitRev" }, { "$ref": "#/$defs/GitTag" }, { "$ref": "#/$defs/GitBranch" }, { "$ref": "#/$defs/BaseGitSource" }, { "$ref": "#/$defs/LocalSource" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "The source items to be downloaded and used for the cache build and subsequent outputs.", "title": "Source" }, "requirements": { "anyOf": [ { "$ref": "#/$defs/Requirements" }, { "type": "null" } ], "default": null, "description": "The dependencies needed at cache-build time." }, "build": { "anyOf": [ { "$ref": "#/$defs/Build" }, { "type": "null" } ], "default": null, "description": "Describes how the package should be build." } }, "title": "Cache", "type": "object" }, "CacheInherit": { "additionalProperties": false, "properties": { "from": { "description": "Name of the staging cache to inherit from.", "minLength": 1, "title": "From", "type": "string" }, "run_exports": { "default": true, "description": "Whether to inherit run_exports from the staging cache.", "title": "Run Exports", "type": "boolean" } }, "required": [ "from" ], "title": "CacheInherit", "type": "object" }, "ComplexPackage": { "additionalProperties": false, "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The recipe name, this is only used to identify the name of the recipe.", "title": "Name" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The version of each output, this can be overwritten per output", "title": "Version" } }, "required": [ "name" ], "title": "ComplexPackage", "type": "object" }, "ComplexRecipe": { "additionalProperties": false, "properties": { "schema_version": { "default": 1, "description": "The version of the YAML schema for a recipe. If the version is omitted it is assumed to be 1.", "maximum": 1, "minimum": 1, "title": "Schema Version", "type": "integer" }, "context": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "default": null, "description": "Defines arbitrary key-value pairs for Jinja interpolation", "title": "Context" }, "source": { "anyOf": [ { "$ref": "#/$defs/UrlSource" }, { "$ref": "#/$defs/GitRev" }, { "$ref": "#/$defs/GitTag" }, { "$ref": "#/$defs/GitBranch" }, { "$ref": "#/$defs/BaseGitSource" }, { "$ref": "#/$defs/LocalSource" }, { "$ref": "#/$defs/IfStatement_Union_UrlSource__GitRev__GitTag__GitBranch__BaseGitSource__LocalSource__" }, { "items": { "anyOf": [ { "$ref": "#/$defs/UrlSource" }, { "$ref": "#/$defs/GitRev" }, { "$ref": "#/$defs/GitTag" }, { "$ref": "#/$defs/GitBranch" }, { "$ref": "#/$defs/BaseGitSource" }, { "$ref": "#/$defs/LocalSource" }, { "$ref": "#/$defs/IfStatement_Union_UrlSource__GitRev__GitTag__GitBranch__BaseGitSource__LocalSource__" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "The source items to be downloaded and used for the build.", "title": "Source" }, "build": { "anyOf": [ { "$ref": "#/$defs/Build" }, { "type": "null" } ], "default": null, "description": "Describes how the package should be build." }, "about": { "anyOf": [ { "$ref": "#/$defs/About" }, { "type": "null" } ], "default": null, "description": "A human readable description of the package information" }, "extra": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "default": null, "description": "An set of arbitrary values that are included in the package manifest", "title": "Extra" }, "recipe": { "anyOf": [ { "$ref": "#/$defs/ComplexPackage" }, { "type": "null" } ], "default": null, "description": "The package version." }, "cache": { "anyOf": [ { "$ref": "#/$defs/Cache" }, { "type": "null" } ], "default": null, "deprecated": true, "description": "The cache build that can be used as a common build step for all output." }, "outputs": { "anyOf": [ { "$ref": "#/$defs/Output" }, { "$ref": "#/$defs/StagingOutput" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "$ref": "#/$defs/Output" }, { "$ref": "#/$defs/StagingOutput" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "description": "A list of outputs that are generated for this recipe.", "title": "Outputs" }, "tests": { "anyOf": [ { "$ref": "#/$defs/ScriptTestElement" }, { "$ref": "#/$defs/PythonTestElement" }, { "$ref": "#/$defs/PerlTestElement" }, { "$ref": "#/$defs/RTestElement" }, { "$ref": "#/$defs/RubyTestElement" }, { "$ref": "#/$defs/DownstreamTestElement" }, { "$ref": "#/$defs/PackageContentTest" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "$ref": "#/$defs/ScriptTestElement" }, { "$ref": "#/$defs/PythonTestElement" }, { "$ref": "#/$defs/PerlTestElement" }, { "$ref": "#/$defs/RTestElement" }, { "$ref": "#/$defs/RubyTestElement" }, { "$ref": "#/$defs/DownstreamTestElement" }, { "$ref": "#/$defs/PackageContentTest" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Top-level tests that are inherited by outputs", "title": "Tests" } }, "required": [ "outputs" ], "title": "ComplexRecipe", "type": "object" }, "ContentScript": { "additionalProperties": false, "properties": { "interpreter": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "The interpreter to use for the script.\n\nDefaults to `bash` on unix and `cmd.exe` on Windows.", "title": "Interpreter" }, "env": { "additionalProperties": { "type": "string" }, "default": {}, "description": "the script environment.\n\nYou can use Jinja to pass through environments variables with the `env` object (e.g. `${{ env.get(\"MYVAR\") }}`)", "title": "Env", "type": "object" }, "secrets": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "default": [], "description": "Secrets that are set as environment variables but never shown in the logs or the environment.", "title": "Secrets" }, "cwd": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "The working directory to use when executing the script.", "title": "Cwd" }, "content": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "description": "A string or list of strings that is the scripts contents", "title": "Content" } }, "required": [ "content" ], "title": "ContentScript", "type": "object" }, "DownstreamTestElement": { "additionalProperties": false, "properties": { "downstream": { "description": "Install the package and use the output of this package to test if the tests in the downstream package still succeed.", "title": "Downstream", "type": "string" } }, "required": [ "downstream" ], "title": "DownstreamTestElement", "type": "object" }, "DynamicLinking": { "additionalProperties": false, "properties": { "rpaths": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "default": [ "lib/" ], "description": "linux only, list of rpaths (was rpath)", "title": "Rpaths" }, "binary_relocation": { "anyOf": [ { "type": "boolean" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" }, { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/GlobDict" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/GlobDict" } ] }, "type": "array" } ], "default": true, "description": "Whether to relocate binaries or not. If this is a list of paths then only the listed paths are relocated", "title": "Binary Relocation" }, "missing_dso_allowlist": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/GlobDict" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/GlobDict" } ] }, "type": "array" } ], "default": [], "description": "Allow linking against libraries that are not in the run requirements", "title": "Missing Dso Allowlist" }, "rpath_allowlist": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/GlobDict" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/GlobDict" } ] }, "type": "array" } ], "default": [], "description": "Allow runpath/rpath to point to these locations outside of the environment", "title": "Rpath Allowlist" }, "overdepending_behavior": { "default": "error", "description": "What to do when detecting overdepending. Overdepending means that a requirement a run requirement is specified but none of the artifacts from the build link against any of the shared libraries of the requirement.", "enum": [ "ignore", "error" ], "title": "Overdepending Behavior", "type": "string" }, "overlinking_behavior": { "default": "error", "description": "What to do when detecting overdepending. Overlinking occurs when an artifact links against a library that was not specified in the run requirements.", "enum": [ "ignore", "error" ], "title": "Overlinking Behavior", "type": "string" } }, "title": "DynamicLinking", "type": "object" }, "FileExistenceCheck": { "additionalProperties": false, "properties": { "exists": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": [], "description": "Files or glob patterns that must exist anywhere inside the package.", "title": "Exists" }, "not_exists": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": [], "description": "Files or glob patterns that must NOT exist anywhere inside the package.", "title": "Not Exists" } }, "title": "FileExistenceCheck", "type": "object" }, "FileScript": { "additionalProperties": false, "properties": { "interpreter": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "The interpreter to use for the script.\n\nDefaults to `bash` on unix and `cmd.exe` on Windows.", "title": "Interpreter" }, "env": { "additionalProperties": { "type": "string" }, "default": {}, "description": "the script environment.\n\nYou can use Jinja to pass through environments variables with the `env` object (e.g. `${{ env.get(\"MYVAR\") }}`)", "title": "Env", "type": "object" }, "secrets": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "default": [], "description": "Secrets that are set as environment variables but never shown in the logs or the environment.", "title": "Secrets" }, "cwd": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "The working directory to use when executing the script.", "title": "Cwd" }, "file": { "anyOf": [ { "pattern": "^[^\\\\]+$", "type": "string" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" } ], "description": "The file to use as the script. Automatically adds the `bat` or `sh` to the filename on Windows or Unix respectively (if no file extension is given).", "title": "File" } }, "required": [ "file" ], "title": "FileScript", "type": "object" }, "ForceFileType": { "additionalProperties": false, "properties": { "text": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/GlobDict" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/GlobDict" } ] }, "type": "array" } ], "default": [], "description": "force TEXT file type", "title": "Text" }, "binary": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/GlobDict" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/GlobDict" } ] }, "type": "array" } ], "default": [], "description": "force BINARY file type", "title": "Binary" } }, "title": "ForceFileType", "type": "object" }, "GitBranch": { "additionalProperties": false, "properties": { "patches": { "anyOf": [ { "pattern": "^[^\\\\]+$", "type": "string" }, { "items": { "anyOf": [ { "pattern": "^[^\\\\]+$", "type": "string" }, { "$ref": "#/$defs/IfStatement_Annotated_str__StringConstraints__" } ] }, "type": "array" } ], "default": [], "description": "A list of patches to apply after fetching the source", "title": "Patches" }, "target_directory": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "The location in the working directory to place the source", "title": "Target Directory" }, "git": { "anyOf": [ { "pattern": "((git|ssh|http(s)?)|(git@[\\w\\.]+))(:(\\/\\/)?)([\\w\\.@:\\/\\\\-~]+)", "type": "string" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" } ], "description": "The url that points to the git repository.", "title": "Git" }, "depth": { "anyOf": [ { "minimum": 0, "type": "integer" }, { "type": "null" } ], "default": null, "description": "A value to use when shallow cloning the repository.", "title": "Depth" }, "lfs": { "default": false, "description": "Should we LFS files be checked out as well", "title": "Lfs", "type": "boolean" }, "submodules": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "description": "Whether to recursively initialize and update submodules.", "title": "Submodules" }, "expected_commit": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "An expected commit hash to verify after checkout.", "title": "Expected Commit" }, "branch": { "description": "Branch to check out", "minLength": 1, "title": "Branch", "type": "string" } }, "required": [ "git", "branch" ], "title": "GitBranch", "type": "object" }, "GitRev": { "additionalProperties": false, "properties": { "patches": { "anyOf": [ { "pattern": "^[^\\\\]+$", "type": "string" }, { "items": { "anyOf": [ { "pattern": "^[^\\\\]+$", "type": "string" }, { "$ref": "#/$defs/IfStatement_Annotated_str__StringConstraints__" } ] }, "type": "array" } ], "default": [], "description": "A list of patches to apply after fetching the source", "title": "Patches" }, "target_directory": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "The location in the working directory to place the source", "title": "Target Directory" }, "git": { "anyOf": [ { "pattern": "((git|ssh|http(s)?)|(git@[\\w\\.]+))(:(\\/\\/)?)([\\w\\.@:\\/\\\\-~]+)", "type": "string" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" } ], "description": "The url that points to the git repository.", "title": "Git" }, "depth": { "anyOf": [ { "minimum": 0, "type": "integer" }, { "type": "null" } ], "default": null, "description": "A value to use when shallow cloning the repository.", "title": "Depth" }, "lfs": { "default": false, "description": "Should we LFS files be checked out as well", "title": "Lfs", "type": "boolean" }, "submodules": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "description": "Whether to recursively initialize and update submodules.", "title": "Submodules" }, "expected_commit": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "An expected commit hash to verify after checkout.", "title": "Expected Commit" }, "rev": { "description": "Revision to checkout to (hash or ref)", "minLength": 1, "title": "Rev", "type": "string" } }, "required": [ "git", "rev" ], "title": "GitRev", "type": "object" }, "GitTag": { "additionalProperties": false, "properties": { "patches": { "anyOf": [ { "pattern": "^[^\\\\]+$", "type": "string" }, { "items": { "anyOf": [ { "pattern": "^[^\\\\]+$", "type": "string" }, { "$ref": "#/$defs/IfStatement_Annotated_str__StringConstraints__" } ] }, "type": "array" } ], "default": [], "description": "A list of patches to apply after fetching the source", "title": "Patches" }, "target_directory": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "The location in the working directory to place the source", "title": "Target Directory" }, "git": { "anyOf": [ { "pattern": "((git|ssh|http(s)?)|(git@[\\w\\.]+))(:(\\/\\/)?)([\\w\\.@:\\/\\\\-~]+)", "type": "string" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" } ], "description": "The url that points to the git repository.", "title": "Git" }, "depth": { "anyOf": [ { "minimum": 0, "type": "integer" }, { "type": "null" } ], "default": null, "description": "A value to use when shallow cloning the repository.", "title": "Depth" }, "lfs": { "default": false, "description": "Should we LFS files be checked out as well", "title": "Lfs", "type": "boolean" }, "submodules": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "description": "Whether to recursively initialize and update submodules.", "title": "Submodules" }, "expected_commit": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "An expected commit hash to verify after checkout.", "title": "Expected Commit" }, "tag": { "description": "Tag to checkout", "minLength": 1, "title": "Tag", "type": "string" } }, "required": [ "git", "tag" ], "title": "GitTag", "type": "object" }, "GlobDict": { "additionalProperties": false, "properties": { "include": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "default": [], "description": "Glob patterns to include", "title": "Include" }, "exclude": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "default": [], "description": "Glob patterns to exclude", "title": "Exclude" } }, "title": "GlobDict", "type": "object" }, "IfStatement": { "additionalProperties": false, "properties": { "if": { "title": "If", "type": "string" }, "then": { "anyOf": [ {}, { "items": {}, "type": "array" } ], "title": "Then" }, "else": { "anyOf": [ {}, { "items": {}, "type": "array" }, { "type": "null" } ], "default": null, "title": "Else" } }, "required": [ "if", "then" ], "title": "IfStatement", "type": "object" }, "IfStatement_Annotated_str__StringConstraints__": { "additionalProperties": false, "properties": { "if": { "title": "If", "type": "string" }, "then": { "anyOf": [ { "pattern": "^[^\\\\]+$", "type": "string" }, { "items": { "pattern": "^[^\\\\]+$", "type": "string" }, "type": "array" } ], "title": "Then" }, "else": { "anyOf": [ { "pattern": "^[^\\\\]+$", "type": "string" }, { "items": { "pattern": "^[^\\\\]+$", "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Else" } }, "required": [ "if", "then" ], "title": "IfStatement[Annotated[str, StringConstraints]]", "type": "object" }, "IfStatement_Union_ScriptTestElement__PythonTestElement__PerlTestElement__RTestElement__RubyTestElement__DownstreamTestElement__PackageContentTest__": { "additionalProperties": false, "properties": { "if": { "title": "If", "type": "string" }, "then": { "anyOf": [ { "$ref": "#/$defs/ScriptTestElement" }, { "$ref": "#/$defs/PythonTestElement" }, { "$ref": "#/$defs/PerlTestElement" }, { "$ref": "#/$defs/RTestElement" }, { "$ref": "#/$defs/RubyTestElement" }, { "$ref": "#/$defs/DownstreamTestElement" }, { "$ref": "#/$defs/PackageContentTest" }, { "items": { "anyOf": [ { "$ref": "#/$defs/ScriptTestElement" }, { "$ref": "#/$defs/PythonTestElement" }, { "$ref": "#/$defs/PerlTestElement" }, { "$ref": "#/$defs/RTestElement" }, { "$ref": "#/$defs/RubyTestElement" }, { "$ref": "#/$defs/DownstreamTestElement" }, { "$ref": "#/$defs/PackageContentTest" } ] }, "type": "array" } ], "title": "Then" }, "else": { "anyOf": [ { "$ref": "#/$defs/ScriptTestElement" }, { "$ref": "#/$defs/PythonTestElement" }, { "$ref": "#/$defs/PerlTestElement" }, { "$ref": "#/$defs/RTestElement" }, { "$ref": "#/$defs/RubyTestElement" }, { "$ref": "#/$defs/DownstreamTestElement" }, { "$ref": "#/$defs/PackageContentTest" }, { "items": { "anyOf": [ { "$ref": "#/$defs/ScriptTestElement" }, { "$ref": "#/$defs/PythonTestElement" }, { "$ref": "#/$defs/PerlTestElement" }, { "$ref": "#/$defs/RTestElement" }, { "$ref": "#/$defs/RubyTestElement" }, { "$ref": "#/$defs/DownstreamTestElement" }, { "$ref": "#/$defs/PackageContentTest" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Else" } }, "required": [ "if", "then" ], "title": "IfStatement[Union[ScriptTestElement, PythonTestElement, PerlTestElement, RTestElement, RubyTestElement, DownstreamTestElement, PackageContentTest]]", "type": "object" }, "IfStatement_Union_UrlSource__GitRev__GitTag__GitBranch__BaseGitSource__LocalSource__": { "additionalProperties": false, "properties": { "if": { "title": "If", "type": "string" }, "then": { "anyOf": [ { "$ref": "#/$defs/UrlSource" }, { "$ref": "#/$defs/GitRev" }, { "$ref": "#/$defs/GitTag" }, { "$ref": "#/$defs/GitBranch" }, { "$ref": "#/$defs/BaseGitSource" }, { "$ref": "#/$defs/LocalSource" }, { "items": { "anyOf": [ { "$ref": "#/$defs/UrlSource" }, { "$ref": "#/$defs/GitRev" }, { "$ref": "#/$defs/GitTag" }, { "$ref": "#/$defs/GitBranch" }, { "$ref": "#/$defs/BaseGitSource" }, { "$ref": "#/$defs/LocalSource" } ] }, "type": "array" } ], "title": "Then" }, "else": { "anyOf": [ { "$ref": "#/$defs/UrlSource" }, { "$ref": "#/$defs/GitRev" }, { "$ref": "#/$defs/GitTag" }, { "$ref": "#/$defs/GitBranch" }, { "$ref": "#/$defs/BaseGitSource" }, { "$ref": "#/$defs/LocalSource" }, { "items": { "anyOf": [ { "$ref": "#/$defs/UrlSource" }, { "$ref": "#/$defs/GitRev" }, { "$ref": "#/$defs/GitTag" }, { "$ref": "#/$defs/GitBranch" }, { "$ref": "#/$defs/BaseGitSource" }, { "$ref": "#/$defs/LocalSource" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Else" } }, "required": [ "if", "then" ], "title": "IfStatement[Union[UrlSource, GitRev, GitTag, GitBranch, BaseGitSource, LocalSource]]", "type": "object" }, "IgnoreRunExports": { "additionalProperties": false, "properties": { "by_name": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "default": [], "description": "ignore run exports by name (e.g. `libgcc-ng`)", "title": "By Name" }, "from_package": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "default": [], "description": "ignore run exports that come from the specified packages", "title": "From Package" } }, "title": "IgnoreRunExports", "type": "object" }, "LocalSource": { "additionalProperties": false, "properties": { "patches": { "anyOf": [ { "pattern": "^[^\\\\]+$", "type": "string" }, { "items": { "anyOf": [ { "pattern": "^[^\\\\]+$", "type": "string" }, { "$ref": "#/$defs/IfStatement_Annotated_str__StringConstraints__" } ] }, "type": "array" } ], "default": [], "description": "A list of patches to apply after fetching the source", "title": "Patches" }, "target_directory": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "The location in the working directory to place the source", "title": "Target Directory" }, "path": { "description": "A path on the local machine that contains the source.", "title": "Path", "type": "string" }, "sha256": { "anyOf": [ { "maxLength": 64, "minLength": 64, "pattern": "[a-fA-F0-9]{64}", "type": "string" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" }, { "type": "null" } ], "default": null, "description": "The SHA256 hash of the source archive", "title": "Sha256" }, "md5": { "anyOf": [ { "maxLength": 32, "minLength": 32, "pattern": "[a-fA-F0-9]{32}", "type": "string" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" }, { "type": "null" } ], "default": null, "description": "The MD5 hash of the source archive", "title": "Md5" }, "use_gitignore": { "default": true, "description": "Whether or not to use the .gitignore file when copying the source.", "title": "Use Gitignore", "type": "boolean" }, "file_name": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "A file name to rename the file to (does not apply to archives).", "title": "File Name" }, "filter": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/GlobDict" } ], "default": null, "description": "Glob patterns to include or exclude files from the package.", "title": "Filter" } }, "required": [ "path" ], "title": "LocalSource", "type": "object" }, "Output": { "additionalProperties": false, "properties": { "package": { "anyOf": [ { "$ref": "#/$defs/ComplexPackage" }, { "type": "null" } ], "default": null, "description": "The package name and version, this overwrites any top-level fields." }, "inherit": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/CacheInherit" }, { "type": "null" } ], "default": null, "description": "Name of the staging cache to inherit from, or an object with `from` and `run_exports` options.", "title": "Inherit" }, "source": { "anyOf": [ { "$ref": "#/$defs/UrlSource" }, { "$ref": "#/$defs/GitRev" }, { "$ref": "#/$defs/GitTag" }, { "$ref": "#/$defs/GitBranch" }, { "$ref": "#/$defs/BaseGitSource" }, { "$ref": "#/$defs/LocalSource" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "$ref": "#/$defs/UrlSource" }, { "$ref": "#/$defs/GitRev" }, { "$ref": "#/$defs/GitTag" }, { "$ref": "#/$defs/GitBranch" }, { "$ref": "#/$defs/BaseGitSource" }, { "$ref": "#/$defs/LocalSource" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "The source items to be downloaded and used for the build.", "title": "Source" }, "build": { "anyOf": [ { "$ref": "#/$defs/Build" }, { "type": "null" } ], "default": null, "description": "Describes how the package should be build." }, "requirements": { "anyOf": [ { "$ref": "#/$defs/Requirements" }, { "type": "null" } ], "default": null, "description": "The package dependencies" }, "tests": { "anyOf": [ { "items": { "anyOf": [ { "$ref": "#/$defs/ScriptTestElement" }, { "$ref": "#/$defs/PythonTestElement" }, { "$ref": "#/$defs/PerlTestElement" }, { "$ref": "#/$defs/RTestElement" }, { "$ref": "#/$defs/RubyTestElement" }, { "$ref": "#/$defs/DownstreamTestElement" }, { "$ref": "#/$defs/PackageContentTest" }, { "$ref": "#/$defs/IfStatement_Union_ScriptTestElement__PythonTestElement__PerlTestElement__RTestElement__RubyTestElement__DownstreamTestElement__PackageContentTest__" }, { "items": { "anyOf": [ { "$ref": "#/$defs/ScriptTestElement" }, { "$ref": "#/$defs/PythonTestElement" }, { "$ref": "#/$defs/PerlTestElement" }, { "$ref": "#/$defs/RTestElement" }, { "$ref": "#/$defs/RubyTestElement" }, { "$ref": "#/$defs/DownstreamTestElement" }, { "$ref": "#/$defs/PackageContentTest" }, { "$ref": "#/$defs/IfStatement_Union_ScriptTestElement__PythonTestElement__PerlTestElement__RTestElement__RubyTestElement__DownstreamTestElement__PackageContentTest__" } ] }, "type": "array" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Tests to run after packaging", "title": "Tests" }, "about": { "anyOf": [ { "$ref": "#/$defs/About" }, { "type": "null" } ], "default": null, "description": "A human readable description of the package information. The values here are merged with the top level `about` field." } }, "title": "Output", "type": "object" }, "PackageContentTest": { "additionalProperties": false, "properties": { "package_contents": { "allOf": [ { "$ref": "#/$defs/PackageContentTestInner" } ], "description": "Test if the package contains the specified files." } }, "required": [ "package_contents" ], "title": "PackageContentTest", "type": "object" }, "PackageContentTestInner": { "additionalProperties": false, "properties": { "files": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/FileExistenceCheck" }, { "type": "null" } ], "default": null, "description": "Files expectations for the whole package. Can be a list of files/globs or an object with exists/not_exists.", "title": "Files" }, "include": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/FileExistenceCheck" }, { "type": "null" } ], "default": [], "description": "Files that should be in the `include/` folder of the package. This folder is found under `$PREFIX/include` on Unix and `$PREFIX/Library/include` on Windows.", "title": "Include" }, "site_packages": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/FileExistenceCheck" }, { "type": "null" } ], "default": [], "description": "Files that should be in the `site-packages/` folder of the package. This folder is found under `$PREFIX/lib/pythonX.Y/site-packages` on Unix and `$PREFIX/Lib/site-packages` on Windows.", "title": "Site Packages" }, "bin": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/FileExistenceCheck" }, { "type": "null" } ], "default": [], "description": "Files that should be in the `bin/` folder of the package. This folder is found under `$PREFIX/bin` on Unix. On Windows this searches for files in `%PREFIX`, `%PREFIX%/bin`, `%PREFIX%/Scripts`, `%PREFIX%/Library/bin`, `%PREFIX/Library/usr/bin` and `%PREFIX/Library/mingw-w64/bin`.", "title": "Bin" }, "lib": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": [], "description": "Files that should be in the `lib/` folder of the package. This folder is found under `$PREFIX/lib` on Unix and %PREFIX%/Library/lib on Windows.", "title": "Lib" }, "strict": { "default": false, "description": "When true, the package must not contain any files other than those specified.", "title": "Strict", "type": "boolean" } }, "title": "PackageContentTestInner", "type": "object" }, "PerlTestElement": { "additionalProperties": false, "properties": { "perl": { "allOf": [ { "$ref": "#/$defs/PerlTestElementInner" } ], "description": "Perl specific test configuration" } }, "required": [ "perl" ], "title": "PerlTestElement", "type": "object" }, "PerlTestElementInner": { "additionalProperties": false, "properties": { "uses": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "description": "A list of Perl modules to check after having installed the built package.", "title": "Uses" } }, "required": [ "uses" ], "title": "PerlTestElementInner", "type": "object" }, "PostProcess": { "additionalProperties": false, "properties": { "files": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "description": "Files to apply post-processing to", "title": "Files" }, "regex": { "anyOf": [ { "type": "string" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" } ], "description": "Regular expression pattern to match", "title": "Regex" }, "replacement": { "anyOf": [ { "type": "string" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" } ], "description": "Replacement string", "title": "Replacement" } }, "required": [ "files", "regex", "replacement" ], "title": "PostProcess", "type": "object" }, "PrefixDetection": { "additionalProperties": false, "properties": { "force_file_type": { "anyOf": [ { "$ref": "#/$defs/ForceFileType" }, { "type": "null" } ], "default": null, "description": "force the file type of the given files to be TEXT or BINARY" }, "ignore": { "anyOf": [ { "type": "boolean" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" }, { "pattern": "^[^\\\\]+$", "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "pattern": "^[^\\\\]+$", "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "default": false, "description": "Ignore all or specific files for prefix replacement", "title": "Ignore" }, "ignore_binary_files": { "anyOf": [ { "type": "boolean" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" } ], "default": false, "description": "Whether to detect binary files with prefix or not", "title": "Ignore Binary Files" } }, "title": "PrefixDetection", "type": "object" }, "Python": { "additionalProperties": false, "properties": { "entry_points": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "default": [], "title": "Entry Points" }, "use_python_app_entrypoint": { "anyOf": [ { "type": "boolean" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" } ], "default": false, "description": "Specifies if python.app should be used as the entrypoint on macOS. (macOS only)", "title": "Use Python App Entrypoint" }, "preserve_egg_dir": { "anyOf": [ { "type": "boolean" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" } ], "default": false, "title": "Preserve Egg Dir" }, "skip_pyc_compilation": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/GlobDict" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/GlobDict" } ] }, "type": "array" } ], "default": [], "description": "Skip compiling pyc for some files", "title": "Skip Pyc Compilation" }, "site_packages_path": { "anyOf": [ { "type": "string" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" }, { "type": "null" } ], "default": null, "description": "The path to the site-packages folder. This is advertised by Python to install noarch packages in the correct location. Only valid for a Python package.", "title": "Site Packages Path" }, "version_independent": { "anyOf": [ { "type": "boolean" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" } ], "default": false, "description": "Whether the package is version independent or not. This is useful for 'abi3' packages that are OS specific, but not Python version specific.", "title": "Version Independent" } }, "title": "Python", "type": "object" }, "PythonTestElement": { "additionalProperties": false, "properties": { "python": { "allOf": [ { "$ref": "#/$defs/PythonTestElementInner" } ], "description": "Python specific test configuration" } }, "required": [ "python" ], "title": "PythonTestElement", "type": "object" }, "PythonTestElementInner": { "additionalProperties": false, "properties": { "imports": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "default": null, "description": "A list of Python imports to check after having installed the built package.", "title": "Imports" }, "pip_check": { "default": true, "description": "Whether or not to run `pip check` during the Python tests.", "title": "Pip Check", "type": "boolean" }, "python_version": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Python version(s) to test against. If not specified, the default python version is used.", "title": "Python Version" } }, "title": "PythonTestElementInner", "type": "object" }, "RTestElement": { "additionalProperties": false, "properties": { "r": { "allOf": [ { "$ref": "#/$defs/RTestElementInner" } ], "description": "R specific test configuration" } }, "required": [ "r" ], "title": "RTestElement", "type": "object" }, "RTestElementInner": { "additionalProperties": false, "properties": { "libraries": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "description": "A list of R libraries to check after having installed the built package.", "title": "Libraries" } }, "required": [ "libraries" ], "title": "RTestElementInner", "type": "object" }, "Requirements": { "additionalProperties": false, "properties": { "build": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Dependencies to install on the build platform architecture. Compilers, CMake, everything that needs to execute at build time.", "title": "Build" }, "host": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Dependencies to install on the host platform architecture. All the packages that your build links against.", "title": "Host" }, "run": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Dependencies that should be installed alongside this package. Dependencies in the `host` section with `run_exports` are also automatically added here.", "title": "Run" }, "run_constraints": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "constraints optional dependencies at runtime.", "title": "Run Constraints" }, "run_exports": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "$ref": "#/$defs/RunExports" } ], "default": null, "description": "The run exports of this package", "title": "Run Exports" }, "ignore_run_exports": { "anyOf": [ { "$ref": "#/$defs/IgnoreRunExports" }, { "type": "null" } ], "default": null, "description": "Ignore run-exports by name or from certain packages" } }, "title": "Requirements", "type": "object" }, "RubyTestElement": { "additionalProperties": false, "properties": { "ruby": { "allOf": [ { "$ref": "#/$defs/RubyTestElementInner" } ], "description": "Ruby specific test configuration" } }, "required": [ "ruby" ], "title": "RubyTestElement", "type": "object" }, "RubyTestElementInner": { "additionalProperties": false, "properties": { "requires": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "description": "A list of Ruby modules to check after having installed the built package.", "title": "Requires" } }, "required": [ "requires" ], "title": "RubyTestElementInner", "type": "object" }, "RunExports": { "additionalProperties": false, "properties": { "weak": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Weak run exports apply from the host env to the run env", "title": "Weak" }, "strong": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Strong run exports apply from the build and host env to the run env", "title": "Strong" }, "noarch": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Noarch run exports are the only ones looked at when building noarch packages", "title": "Noarch" }, "weak_constraints": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Weak run constraints add run_constraints from the host env", "title": "Weak Constraints" }, "strong_constraints": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Strong run constraints add run_constraints from the build and host env", "title": "Strong Constraints" } }, "title": "RunExports", "type": "object" }, "ScriptTestElement": { "additionalProperties": false, "properties": { "script": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/FileScript" }, { "$ref": "#/$defs/ContentScript" }, { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "default": null, "description": "A script to run to perform the test.", "title": "Script" }, "requirements": { "anyOf": [ { "$ref": "#/$defs/TestElementRequires" }, { "type": "null" } ], "default": null, "description": "Additional dependencies to install before running the test." }, "files": { "anyOf": [ { "$ref": "#/$defs/TestElementFiles" }, { "type": "null" } ], "default": null, "description": "Additional files to include for the test." } }, "title": "ScriptTestElement", "type": "object" }, "SimplePackage": { "additionalProperties": false, "properties": { "name": { "description": "The package name", "title": "Name", "type": "string" }, "version": { "description": "The package version", "title": "Version", "type": "string" } }, "required": [ "name", "version" ], "title": "SimplePackage", "type": "object" }, "SimpleRecipe": { "additionalProperties": false, "properties": { "schema_version": { "default": 1, "description": "The version of the YAML schema for a recipe. If the version is omitted it is assumed to be 1.", "maximum": 1, "minimum": 1, "title": "Schema Version", "type": "integer" }, "context": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "default": null, "description": "Defines arbitrary key-value pairs for Jinja interpolation", "title": "Context" }, "source": { "anyOf": [ { "$ref": "#/$defs/UrlSource" }, { "$ref": "#/$defs/GitRev" }, { "$ref": "#/$defs/GitTag" }, { "$ref": "#/$defs/GitBranch" }, { "$ref": "#/$defs/BaseGitSource" }, { "$ref": "#/$defs/LocalSource" }, { "$ref": "#/$defs/IfStatement_Union_UrlSource__GitRev__GitTag__GitBranch__BaseGitSource__LocalSource__" }, { "items": { "anyOf": [ { "$ref": "#/$defs/UrlSource" }, { "$ref": "#/$defs/GitRev" }, { "$ref": "#/$defs/GitTag" }, { "$ref": "#/$defs/GitBranch" }, { "$ref": "#/$defs/BaseGitSource" }, { "$ref": "#/$defs/LocalSource" }, { "$ref": "#/$defs/IfStatement_Union_UrlSource__GitRev__GitTag__GitBranch__BaseGitSource__LocalSource__" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "The source items to be downloaded and used for the build.", "title": "Source" }, "build": { "anyOf": [ { "$ref": "#/$defs/Build" }, { "type": "null" } ], "default": null, "description": "Describes how the package should be build." }, "about": { "anyOf": [ { "$ref": "#/$defs/About" }, { "type": "null" } ], "default": null, "description": "A human readable description of the package information" }, "extra": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "default": null, "description": "An set of arbitrary values that are included in the package manifest", "title": "Extra" }, "package": { "allOf": [ { "$ref": "#/$defs/SimplePackage" } ], "description": "The package name and version." }, "tests": { "anyOf": [ { "$ref": "#/$defs/ScriptTestElement" }, { "$ref": "#/$defs/PythonTestElement" }, { "$ref": "#/$defs/PerlTestElement" }, { "$ref": "#/$defs/RTestElement" }, { "$ref": "#/$defs/RubyTestElement" }, { "$ref": "#/$defs/DownstreamTestElement" }, { "$ref": "#/$defs/PackageContentTest" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "$ref": "#/$defs/ScriptTestElement" }, { "$ref": "#/$defs/PythonTestElement" }, { "$ref": "#/$defs/PerlTestElement" }, { "$ref": "#/$defs/RTestElement" }, { "$ref": "#/$defs/RubyTestElement" }, { "$ref": "#/$defs/DownstreamTestElement" }, { "$ref": "#/$defs/PackageContentTest" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Tests to run after packaging", "title": "Tests" }, "requirements": { "anyOf": [ { "$ref": "#/$defs/Requirements" }, { "type": "null" } ], "default": null, "description": "The package dependencies" } }, "required": [ "package" ], "title": "SimpleRecipe", "type": "object" }, "StagingBuild": { "additionalProperties": false, "properties": { "script": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/FileScript" }, { "$ref": "#/$defs/ContentScript" }, { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "The script to execute to invoke the staging build.", "title": "Script" } }, "title": "StagingBuild", "type": "object" }, "StagingMeta": { "additionalProperties": false, "properties": { "name": { "description": "Unique name for this staging cache.", "minLength": 1, "title": "Name", "type": "string" } }, "required": [ "name" ], "title": "StagingMeta", "type": "object" }, "StagingOutput": { "additionalProperties": false, "properties": { "staging": { "allOf": [ { "$ref": "#/$defs/StagingMeta" } ], "description": "Marks this output as a staging output with the given name." }, "source": { "anyOf": [ { "$ref": "#/$defs/UrlSource" }, { "$ref": "#/$defs/GitRev" }, { "$ref": "#/$defs/GitTag" }, { "$ref": "#/$defs/GitBranch" }, { "$ref": "#/$defs/BaseGitSource" }, { "$ref": "#/$defs/LocalSource" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "$ref": "#/$defs/UrlSource" }, { "$ref": "#/$defs/GitRev" }, { "$ref": "#/$defs/GitTag" }, { "$ref": "#/$defs/GitBranch" }, { "$ref": "#/$defs/BaseGitSource" }, { "$ref": "#/$defs/LocalSource" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "The source items to be downloaded and used for the staging build.", "title": "Source" }, "requirements": { "anyOf": [ { "$ref": "#/$defs/StagingRequirements" }, { "type": "null" } ], "default": null, "description": "The dependencies needed for the staging build." }, "build": { "anyOf": [ { "$ref": "#/$defs/StagingBuild" }, { "type": "null" } ], "default": null, "description": "Build configuration for the staging output." } }, "required": [ "staging" ], "title": "StagingOutput", "type": "object" }, "StagingRequirements": { "additionalProperties": false, "properties": { "build": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Dependencies to install on the build platform architecture for the staging build.", "title": "Build" }, "host": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Dependencies to install on the host platform architecture for the staging build.", "title": "Host" }, "ignore_run_exports": { "anyOf": [ { "$ref": "#/$defs/IgnoreRunExports" }, { "type": "null" } ], "default": null, "description": "Ignore run-exports by name or from certain packages" } }, "title": "StagingRequirements", "type": "object" }, "TestElementFiles": { "additionalProperties": false, "properties": { "source": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "extra files from $SRC_DIR", "title": "Source" }, "recipe": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "extra files from $RECIPE_DIR", "title": "Recipe" } }, "title": "TestElementFiles", "type": "object" }, "TestElementRequires": { "additionalProperties": false, "properties": { "build": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "extra requirements with build_platform architecture (emulators, ...)", "title": "Build" }, "run": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" }, { "type": "null" } ], "default": null, "description": "extra run dependencies", "title": "Run" } }, "title": "TestElementRequires", "type": "object" }, "UrlSource": { "additionalProperties": false, "properties": { "patches": { "anyOf": [ { "pattern": "^[^\\\\]+$", "type": "string" }, { "items": { "anyOf": [ { "pattern": "^[^\\\\]+$", "type": "string" }, { "$ref": "#/$defs/IfStatement_Annotated_str__StringConstraints__" } ] }, "type": "array" } ], "default": [], "description": "A list of patches to apply after fetching the source", "title": "Patches" }, "target_directory": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "The location in the working directory to place the source", "title": "Target Directory" }, "url": { "anyOf": [ { "minLength": 1, "type": "string" }, { "items": { "minLength": 1, "type": "string" }, "type": "array" } ], "description": "Url pointing to the source tar.gz|zip|tar.bz2|... (this can be a list of mirrors that point to the same file)", "title": "Url" }, "sha256": { "anyOf": [ { "maxLength": 64, "minLength": 64, "pattern": "[a-fA-F0-9]{64}", "type": "string" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" }, { "type": "null" } ], "default": null, "description": "The SHA256 hash of the source archive", "title": "Sha256" }, "md5": { "anyOf": [ { "maxLength": 32, "minLength": 32, "pattern": "[a-fA-F0-9]{32}", "type": "string" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" }, { "type": "null" } ], "default": null, "description": "The MD5 hash of the source archive", "title": "Md5" }, "file_name": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "default": null, "description": "A file name to rename the downloaded file to (does not apply to archives).", "title": "File Name" }, "attestation": { "anyOf": [ { "$ref": "#/$defs/AttestationConfig" }, { "type": "null" } ], "default": null, "description": "Optional attestation verification configuration." } }, "required": [ "url" ], "title": "UrlSource", "type": "object" }, "Variant": { "additionalProperties": false, "properties": { "use_keys": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "default": [], "description": "Keys to forcibly use for the variant computation (even if they are not in the dependencies)", "title": "Use Keys" }, "ignore_keys": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" }, { "items": { "anyOf": [ { "minLength": 1, "type": "string" }, { "$ref": "#/$defs/IfStatement" } ] }, "type": "array" } ], "default": [], "description": "Keys to forcibly ignore for the variant computation (even if they are in the dependencies)", "title": "Ignore Keys" }, "down_prioritize_variant": { "anyOf": [ { "type": "integer" }, { "pattern": "\\$\\{\\{.*\\}\\}", "type": "string" } ], "default": 0, "description": "used to prefer this variant less over other variants", "title": "Down Prioritize Variant" } }, "title": "Variant", "type": "object" } }, "anyOf": [ { "$ref": "#/$defs/SimpleRecipe" }, { "$ref": "#/$defs/ComplexRecipe" } ] }