mirror of
https://code.castopod.org/adaures/castopod
synced 2025-04-19 04:51:17 +00:00
feat(plugins): add submodule
boolean property to manifest schema
This commit is contained in:
parent
94cea0ce91
commit
567d5e01a3
@ -50,14 +50,28 @@ The URL to the project homepage.
|
|||||||
|
|
||||||
### license
|
### license
|
||||||
|
|
||||||
|
**Default:** `"UNLICENSED"`
|
||||||
|
|
||||||
Specify a license for your plugin so that people know how they are permitted to
|
Specify a license for your plugin so that people know how they are permitted to
|
||||||
use it, and any restrictions you're placing on it.
|
use it, and any restrictions you're placing on it.
|
||||||
|
|
||||||
### private
|
### private
|
||||||
|
|
||||||
|
**Default:** `false`
|
||||||
|
|
||||||
Whether or not to publish the plugin in public directories. If set to `true`,
|
Whether or not to publish the plugin in public directories. If set to `true`,
|
||||||
directories should refuse to publish the plugin.
|
directories should refuse to publish the plugin.
|
||||||
|
|
||||||
|
### submodule
|
||||||
|
|
||||||
|
**Default:** `false`
|
||||||
|
|
||||||
|
Indicates whether the plugin is part of a monorepo (a single Git repository
|
||||||
|
containing multiple plugins). If `true`, the plugin shares its repository with
|
||||||
|
other plugins. In this case, releases should be tagged using the format
|
||||||
|
`<plugin-name>@<version>` (eg. `acme/hello-world@1.0.0`) to ensure proper
|
||||||
|
version indexing by plugin repositories.
|
||||||
|
|
||||||
### keywords
|
### keywords
|
||||||
|
|
||||||
Array of strings to help your plugin get discovered when listed in repositories.
|
Array of strings to help your plugin get discovered when listed in repositories.
|
||||||
|
@ -15,6 +15,7 @@ use CodeIgniter\HTTP\URI;
|
|||||||
* @property ?URI $homepage
|
* @property ?URI $homepage
|
||||||
* @property ?string $license
|
* @property ?string $license
|
||||||
* @property bool $private
|
* @property bool $private
|
||||||
|
* @property bool $submodule
|
||||||
* @property list<string> $keywords
|
* @property list<string> $keywords
|
||||||
* @property ?string $minCastopodVersion
|
* @property ?string $minCastopodVersion
|
||||||
* @property list<string> $hooks
|
* @property list<string> $hooks
|
||||||
@ -31,6 +32,7 @@ class Manifest extends ManifestObject
|
|||||||
'homepage' => 'permit_empty|valid_url_strict',
|
'homepage' => 'permit_empty|valid_url_strict',
|
||||||
'license' => 'permit_empty|string',
|
'license' => 'permit_empty|string',
|
||||||
'private' => 'permit_empty|is_boolean',
|
'private' => 'permit_empty|is_boolean',
|
||||||
|
'submodule' => 'permit_empty|is_boolean',
|
||||||
'keywords.*' => 'permit_empty',
|
'keywords.*' => 'permit_empty',
|
||||||
'minCastopodVersion' => 'permit_empty|regex_match[/^(0|[1-9]\d*)\.(0|[1-9]\d*)(\.(0|[1-9]\d*))?(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/]',
|
'minCastopodVersion' => 'permit_empty|regex_match[/^(0|[1-9]\d*)\.(0|[1-9]\d*)(\.(0|[1-9]\d*))?(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/]',
|
||||||
'hooks.*' => 'permit_empty|in_list[rssBeforeChannel,rssAfterChannel,rssBeforeItem,rssAfterItem,siteHead]',
|
'hooks.*' => 'permit_empty|in_list[rssBeforeChannel,rssAfterChannel,rssBeforeItem,rssAfterItem,siteHead]',
|
||||||
@ -62,6 +64,8 @@ class Manifest extends ManifestObject
|
|||||||
|
|
||||||
protected bool $private = false;
|
protected bool $private = false;
|
||||||
|
|
||||||
|
protected bool $submodule = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var list<string>
|
* @var list<string>
|
||||||
*/
|
*/
|
||||||
|
@ -59,7 +59,13 @@
|
|||||||
},
|
},
|
||||||
"private": {
|
"private": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "If set to true, then repositories should refuse to publish it."
|
"description": "If set to true, then repositories should refuse to publish it.",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"submodule": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Set to `true` if the plugin is part of a monorepo (i.e., in the same Git repository as other plugins). Releases should be tagged as `<plugin-name>@<version>` to ensure proper version indexing by plugin repositories.",
|
||||||
|
"default": false
|
||||||
},
|
},
|
||||||
"keywords": {
|
"keywords": {
|
||||||
"description": "This helps people discover your plugin as it's listed in repositories",
|
"description": "This helps people discover your plugin as it's listed in repositories",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user