PyMine-Server icon indicating copy to clipboard operation
PyMine-Server copied to clipboard

Add more metadata fields to plugin.yml

Open kevinjosethomas opened this issue 4 years ago • 9 comments

Feature

Add more meta data fields to plugin.yml like -

  • name (required)
  • description
  • version (required)
  • author
  • license
  • website/docs?

Reason

Allows more customizability for the developer, easily provide information about the plugin in a command like /pl info? and much much more; no harm, most of it is optional

kevinjosethomas avatar Jan 30 '21 21:01 kevinjosethomas

@all-contributors add @TrustedMercury ideas

Iapetus-11 avatar Jan 30 '21 21:01 Iapetus-11

@Iapetus-11

I've put up a pull request to add @TrustedMercury! :tada:

allcontributors[bot] avatar Jan 30 '21 21:01 allcontributors[bot]

Pretty sure this isn't something that needs any changes, all fields are loaded from the plugin.yml already afaik, it's up to the dev to include it.

Sh-wayz avatar Feb 25 '21 23:02 Sh-wayz

Although, these fields (because they'll probably be used in something like a /plugins command), should be required, not up to the dev to add it. Changes for this will prob be made in pymine/api/__init__.py

Iapetus-11 avatar Feb 26 '21 00:02 Iapetus-11

Not all of them should be required though, I agree with @TrustedMercury about which should be required and which shouldn't

Sh-wayz avatar Feb 26 '21 01:02 Sh-wayz

(some of) The information from plugin file should be able to be dynamically modified. Say there is a plugin that takes the git URL of a plugin, fetches the head or whatever, and finds a list of contributors and dynamicly adds it to the end. Also suggestion: multiple author support Able to define authors: [] as a list or authors If you define both, author should be used as a shortened version in space dependant places ? (The456gamer + 25 more)?

Some info should be read-only however, like the plugin name, to prevent issues

456dev avatar Feb 26 '21 01:02 456dev

For the plugin.yml, a new identifyer called dist-info or something, a list of meta tags set by the distributor (say pymine official plugin repository might add a tag called category etc

Might be better as a sidecar like file as this would break signing (code modified by distributor)

Use:: the distributor might provide a custom plugin that manages its own plugins, including custom auto updates, in-game plugin management (live reload, install, uninstall)

  • Display plugins in custom format. Would actually make more sense as a "dB"entry Say pluginman installs plugin, attaches tag saying it was installed by it, and offline versions of information in its API.

456dev avatar Feb 26 '21 01:02 456dev

Each plugin developer distributing an extra plugin for auto updates sounds like a mess, especially since that code has to be ingrained deep into the plugin loading process. We actually had plugin auto updating as a separate plugin a while ago, but it turned out to be a mess that was easily cleaned up by just making it a core part of PyMine.

Iapetus-11 avatar Feb 26 '21 01:02 Iapetus-11

i was more thinking plugin distributor, like spigotmc.org and it was as an optional compliment to the built in updater

456dev avatar Feb 26 '21 02:02 456dev