VCVRack / library

Database for the VCV Library
https://library.vcvrack.com/
385 stars 82 forks source link

Admin announcements #86

Closed AndrewBelt closed 6 years ago

AndrewBelt commented 6 years ago

My goal for this repository is to achieve perfection of the plugin manifest JSON files for all known Rack plugins. Once achieved, the "red dot" on the Update Plugins button will go away for all platforms when all plugins are successfully downloaded to the users' computers.

This will involve cooperation from plugin developers, but they will not know what to do unless you tell them upon finding an issue. The rest of the work is making sure the manifest JSON files match their actual plugins, instead of what they claim they should be.

Here's how the whole system works.

As soon as you commit or merge a pull request (PR), the api.vcvrack.com server receives a webhook from GitHub, pulls its own local copy, and re-loads it to be served at https://api.vcvrack.com/community/plugins.

On launch, Rack requests this file as well as a list of the logged in user's plugins and follows the following logic when the user clicks the Update Plugins button: If a slug is present in your VCV account, check that the slug is currently loaded and that it has the same version that the JSON manifest claims. If not, download the new version if a download URL exists for your architecture. Once done, ask the user to restart Rack.

Rack produces a log.txt file with warnings and info regarding plugin downloading and loading, which is helpful in figuring out which plugins need repair.

Potential problems

I'm always open to architecture suggestions if you think this system can improve, but be aware of the costs of everyone's time when making breaking changes.

AndrewBelt commented 6 years ago

I'm going to make this the Admin Announcements thread, so @jeremywen @matthewfriedrichs @Phal-anx should subscribe to it on the sidebar.

AndrewBelt commented 6 years ago

I've been using the "Squash and Merge" button recently instead of simply merging pull requests. I like this method because it reduces commits to a single one, and it assigns your name in the commit listing https://github.com/VCVRack/community/commits/master, which is easier to read. Feel free to do so as well.

squinkylabs commented 6 years ago

Squash and merge is the best. I use it in my repo, too.