Following on from the description of how to write a plugin just asking what the procedures would be if a plugin
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?
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.
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.
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.
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.
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
– 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.
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:
Submit PR for plugin or update of plugin to repo
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):
Run volumio plugin submit while signed in to MyVolumio
Submit PR for supposedly the same code submitted in step 1
Maintainer checks and matches files posted through volumio plugin submit against those in PR
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