jellyfin-plugin-template icon indicating copy to clipboard operation
jellyfin-plugin-template copied to clipboard

Plugin Information missing

Open Fribb opened this issue 2 years ago • 2 comments

Excuse my ignorance, I am trying to dive into Jellyfin plugin development and I still have to get to know the whole environment including Visual Studio/VSCode and building C# projects with it. Maybe I have overlooked or am just missing something here.

I am running Jellyfin 10.8.4.

When I clone this repository and open it with VSCode or Visual Studio 2022 everything works fine, I can build the DLL and add that to my Jellyfin server.

But when I check the meta.json, some information are empty.

{
  "category": "",
  "changelog": "",
  "description": "",
  "guid": "eb5d7894-8eef-4b36-aa6f-5d124e828ce1",
  "name": "Template",
  "overview": "",
  "owner": "",
  "targetAbi": "10.8.4.0",
  "timestamp": "0001-01-01T00:00:00.0000000Z",
  "version": "0.0.0.0",
  "status": "Active",
  "autoUpdate": false
}

Just for clarification on my part, those things should be loaded from the build.yaml, correct? Based on the meta.json above, two things seem to go differently here.

  1. some things are empty (like category, changelog and description) that are defined in the build.yaml
  2. version is "incorrect" since the version is 1.0.0.0 in the build.yaml but 0.0.0.0 in the Directory.Build.props which is used instead (so changing the Directory.Build.props to something will also apply that in the meta.json)

I can't say if that is intentional or not. Could someone shed some light on this?

Fribb avatar Aug 16 '22 05:08 Fribb

There is a difference between manually installed and repository installed plugins. That's why some of those fields are empty. The build.yaml file is not used by the plugin, it's for the jprm tool that's used for our official plugin repository and a lot of third party ones.

edit: Also, you should change your plugin id in the Plugin.cs file to not use the default one or you might get some conflicts later on.

nielsvanvelzen avatar Aug 16 '22 06:08 nielsvanvelzen

Okay, I understand, thanks for clarifying this. Just so that I understand correctly what all of those versions mean and are used for:

  • Directory.Build.props is for the Build Properties for the versions of the specific DLL file so that there is a file version, Product version etc.
  • build.yaml is used by the JPRM to publish the Plugin in the Official plugin repository
  • The Manifest is to add a plugin that isn't in the Official repository as a separate repository and store the different Plugin versions so that Jellyfin can update them when a new version is available

That would mean that depending on what "solution" or publishing way I use, the above-mentioned way would need to be maintained, correct? So if I only provide a "manually installed" plugin then I should use the Directory.Build.props, for the Official Repo the build.yaml and when I have my own repository this is done through the Manifest, correct?

Fribb avatar Aug 16 '22 07:08 Fribb