Volumio 3 Plugins store issues and discussion

Following on from the description of how to write a plugin just asking what the procedures would be if a plugin

  1. has been submitted and a PR has been created already but is pending: Are we supposed to use volumio plugin submit again in case one wants to add changes to the pending PR?

  2. is already available from the plugin store and one wants to get a new version of this plugin merged: Just create a PR on GitHub - volumio/volumio-plugins-sources: Volumio plugins source code for Volumio 3 (without running volumio plugin submit again)?

Hi @gvolt

The plugin submit command only uploads the plugin package to the plugins store, you can always update the source and make a PR without submitting the plugin. In order to update the plugin in the store you have to run ‘volumio plugin submit’ again.

I will try to make that more clear in the documentation.

2 Likes

If that’s the case, won’t it cause confusion since volumio-plugins-sources will not necessarily match the actual plugin in the plugin store?

With Volumio 2.x, I simply submit a PR to the volumio-plugins repo and you will package it for the plugin store. This way, the files comprising the plugin in the plugin store will be identical to those in the repo.

Adding to @patrickkfkan’s question – how does volumio-plugin-sources deal with plugin-channels? Do you only need to upload stable channel source?

Hi @mervinio,

to my current understanding a plugin will be checked and tested after it has been submitted and before it appears as a beta version in the plugin store.

If I fix an issue in a plugin I have already submitted, but which is not in the plugin store even as a beta version yet: How would one deal with it?

As there is no option to “revoke” a submitted (but not yet published) plugin, would I have to submit the plugin again (using a new version number)?

What would happen to the previously submitted version? Will it be sorted out “automatically” so it doesn’t get into the plugin store?

At the moment I share @patrickkfkan’s fear that the content of the repository and the submitted plugins will diverge earlier or later.

Hi @gvolt

to my current understanding a plugin will be checked and tested after it has been submitted and before it appears as a beta version in the plugin store.

This is correct. After the first submission it will be tested before it is available. Subsequent versions will be availbe directly in the beta channel. After beta testing is done it will be promoted to the stable channel

If I fix an issue in a plugin I have already submitted, but which is not in the plugin store even as a beta version yet: How would one deal with it?

Plugins can be updated with the same procedure as the first submission. We will always test the latest version.

As there is no option to “revoke” a submitted (but not yet published) plugin, would I have to submit the plugin again (using a new version number)?

There is no revoke option yet, this will be available later in MyVolumio. Until then, just update the version and if it is really nescessary, contact us to remove the version from the database.

What would happen to the previously submitted version? Will it be sorted out “automatically” so it doesn’t get into the plugin store?

The previously submitted version will be visible from the ‘Details’ page of the plugin (latest 5 are always available to provide a downgrade option). The download button on the main page will always download the latest version.

At the moment I share @patrickkfkan’s fear that the content of the repository and the submitted plugins will diverge earlier or later.

The ‘volumio plugin submit’ command checks if the source it is submitted from is staged, committed and pushed, and that the repository used is a fork of the volumio-plugins-sources repo. We will check manually if the pull request was submitted. This should always keep the plugin package in the store in sync with it’s repository.

There is no stable channel in the github repo, a beta package will be “promoted” to stable in the database. No re-upload or re-submission is needed.

When ‘volumio plugin submit’ is callled we make sure that everything is stage, committed and pushed to your fork of the repo, so it is in sync there.

You can commit to your volumio-plugins-sources repo anytome you want, which enables you to store your progress without submitting the plugin. Just make sure to submit your plugin when it’s done and all is in sync :slight_smile:

If no PR is submitted, then volumio-plugins-sources will be out-of-sync with the plugin in the store?

And when you commit to github, don’t forget to put your verion number in the commit description, so we can track the PR.

If no PR is submitted we remove the submitted plugin.

Edit
We will investigate if we can automate the PR

1 Like

ok. That makes sense.

1 Like

Just tried submitting the youtube2 plugin. Got 413 error:

Error uploading plugin: Error: got 413 response

The package size is around 12.8MB. When uncompressed, node_modules took up 106.2MB, with googleapis alone accounting for 94.3MB.

The max size of a plugin zip is 10MB, so you need to find a way to achieve that size

  • Remove unnecessary node modules, if any
  • If impossible, store somewhere else binaries\node_modules and fetch them on plugin install

Let us know if you find some strategy

OK, done~

Question - how does it work with making fixes to plugins?

Running volumio plugin submit on volspotconnect2 gives my a 401 error…

Perhaps we should also discuss some other workflow/issues, and how it would look with this new plugin store:

– How does a non owner submit changes/improvements to a plugin?
— E.g @gvolt adopted the touch_display via a PR Rewritten touch display plugin by gvolt · Pull Request #338 · volumio/volumio-plugins · GitHub, how would this kind of thing work with the new system? A lot of plugins depend on the community to make improvements/fix things once abandoned by the original author.

– The final “single source of truth” for plugin code – as being discussed over here, and here currently there is no guarantee that code you download from the plugin-store is the same that is checked into the repo. This seems to be something manually checked by the Volumio devs, and again a possible source of oversight/human error. Also, IIRC beta channels are available immediately, making a Volumio dev scrutiny moot, for compromised/malware code.

1 Like

As a plugin developer, at present I have no idea of the review status once I have submitted a plugin and generated a pull request. If a plugin submission generated a github issue, then volumio reviewers could mark the status of the submission review in the github issue. This could also be linked to a pull request within github. It would make the whole process more transparent to everyone.

I have manually created github issues and linked them to pull requests, but it would be really nice if this was automated, initiated by the volumio plugin submit operation, ideally reporting the issue number back to console when executed.

I managed to run volumio plugin submit without errors for my plugins (while logged into MyVolumio), so I think this could be a temporary server issue.

I don’t see how requiring a MyVolumio account will reinforce a “stricter review process”.

The old way:

  1. Submit PR for plugin or update of plugin to repo
  2. Maintainer reviews code, merges PR and packages plugin for inclusion in plugin store

The new way (with presumptions according to what makes sense to me):

  1. Run volumio plugin submit while signed in to MyVolumio
  2. Submit PR for supposedly the same code submitted in step 1
  3. Maintainer checks and matches files posted through volumio plugin submit against those in PR
  4. Maintainer merges PR and then includes plugin (or update of plugin) in the plugin store only when PR has been merged

Either way, the maintainer would have to review code submitted. Only now the maintainer would have to also match the files submitted in step (1) against those in step (2). As @ashthespy observed, this introduces a greater risk of human oversight / error.

I also doubt that after a plugin was published the first time, subsequent updates through volumio plugin submit are reviewed before being made available in the plugin store (i.e. step 4). I am saying this because I updated the YouTube2 plugin to version 0.1.7 yesterday and I can already see it in the store, but the corresponding PR was never merged even for the first submitted version (0.1.4). This is worrying indeed for reasons mentioned by @ashthespy.

Is that true? As I understood it, plugin is available right away in the beta channel after volumio plugin submit (when plugin is already in the store), and the maintainer promotes it to stable in another step?

EDIT: Clarify submit after plugin is already available