From 65f0848be36368a972de1469ebb09c2cc94ba8c8 Mon Sep 17 00:00:00 2001 From: xobes Date: Tue, 3 Mar 2026 22:55:37 -0600 Subject: [PATCH] Presently, Plugins contain a file plugins.txt which may or may not match the values in the required plugin manifest, this change seeks to require that the included plugin.txt file and the manifest data are identical. --- rfcs/0001-plugin-index.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/rfcs/0001-plugin-index.md b/rfcs/0001-plugin-index.md index c4ae728..9569c23 100644 --- a/rfcs/0001-plugin-index.md +++ b/rfcs/0001-plugin-index.md @@ -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`. @@ -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