Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions rfcs/0001-plugin-index.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,13 @@ Out of scope for this specification are:
## The generated files

The generated files should be updated by a CI service upon every change to the Manifest. They may take the following forms (or others):
- A JSON-file, containing all Plugins
- A JSON-file, containing all Plugins (required)
- A number of JSON-files, each named after a plugin which it contains
- A .txt file in a format readable by Endless Sky, containing all Plugins.


## The Manifest

Each Plugin has its own Manifest, which contains a map with the following contents. Unless otherwise stated, the associated values are Strings.
Each Plugin has its own Manifest, which contains a map with the following contents. Unless otherwise stated, the associated values are Strings. The exact values used in the manifest **must** be present in the plugins.txt file within each plugin.

- `name`: A unique name identifying the Plugin.
- `authors`: One or more authors of the Plugin, for example `Somename, SomeOtherName & Contributors`.
Expand All @@ -65,7 +64,7 @@ Each Plugin has its own Manifest, which contains a map with the following conten
- They may contain `$version` as a substitution key
- Upon detecting a new version, all occurences of `$version` will be replaced with the version detected using `type`.
- Then, they will replace the Plugin's keys of the same name.
- For example: A universally-used update key should be `url`, with a value similar to `https://example.com/myPlugin/$version.zip`. Upon detecting a new version (say, `v1.2`), the Plugin's `url` key will be replaced with `https://example.com/myPlugin/v1.2.zip`, altering `plugins.yml`. This altered version can then be used to - manually or automatically via CI - create a PR with the new version. Once the PR is merged, a CI run will update the autogenerated files accordingly.
- For example: A universally-used update key should be `url`, with a value similar to `https://example.com/myPlugin/$version.zip`. Upon detecting a new version (say, `v1.2`), the Plugin's `url` key will be replaced with `https://example.com/myPlugin/v1.2.zip`, altering `plugins.json`. This altered version can then be used to - manually or automatically via CI - create a PR with the new version. Once the PR is merged, a CI run will update the autogenerated files accordingly.

### Examples

Expand Down