library
library copied to clipboard
v0.6 Plugin release preparation
@AndrewBelt
Inspired by this thread in the Rack tracker:
- Right now, I am moving any plugin that is confirmed to be working on all platforms and adhering to the new
Makefiletemplate (RACK_DIR!) tov2. Even after launch, I expect some plugins to not be updated. We would continue to monitor their state and move them over as soon as they are updated. Does this match your expectation? - A lot of plugins define their version as
0.6.0devright now. Do the developers need to update the version before release to remove thedevsuffix? If yes, we would start pinging developers that are already included inv2. - Are you planning on providing a developer guide for updating the community repo with
git submodulesand providing PRs for their plugins? I expect there to be confusion with developers who are not familiar withgit submodules. I can draft a guide.
- Yes, I will devise a more organized workflow of each VCV community team in the next few weeks.
- Yes, the
devversion was a mistake. There are only types of versions: Those which work with an API version of Rack, and those that build against some commit hash of Rackmaster. From now on, the latter should be versioned simplyVERSION = masterand will not be distribute in any sort of package manager. - Only the members of some VCV community team should be messing with submodules. Plugin developers will not be responsible for updating this repo, only for notifying version updates and changes to their metadata. These will be jobs for the Library Team.
- OK. I'll continue until the new process is in place.
- For clarification: do developers need to update their plugins to
v0.6.xthen? Or is that versioning done in the package manager? - Ah, got it. Thanks.
- Yes, all developers should change their VERSIONs to 0.6.* at this time.
Got it. I'll get started pinging v2 developers to update and pull the updates into a PR.
Update: 13 out of 37 are correct already.
hi, sorry i don't get how the PR for the 0.6 test works. do i have to fork the community repo? where do i provide the clone URL? thanks
When writing up guidance to the developers, would it be possible to go with editing the json on the GitHub website, rather than cloning the Community repo and doing a pull request from the clone? I think this would cut down on the large number of unnecessary clones of Community and be a better use of time and energy. Thanks!
@djpeterso23662 I was considering that, but that prevents us (the VCV community) from making changes ourselves. From experience in the last few months, only 25% of plugin developers nailed the format perfectly, which is much too low. (We need 100%)
Bidoo plugin has some quirks, that are affecting the build of v2:
- Needs
make dep(to buildmpg123dependency). I think that it OK, but it requires another step to be run for just that plugin beforemake dist_allcan run. - Links against static library
libcurl.aprovided by Rack indepdirectory. This fails when using theRack-SDK. I am thinking to notify the developer that they should provide their own dependency inside the plugin.
Thoughts?
I've added libsamplerate to the Fundamental build system, so you can use this as an example, ~~but it's not super elegant.~~ It is now pretty elegant. I would recommend this for all libraries. https://github.com/VCVRack/Fundamental/blob/master/Makefile I'd say wait on Bidoo. Maybe there's a way to hack Windows around the DLL loading problem.
Awesome. Thanks. I will present that example to some plugins that use libsamplerate right now.
Maybe there's a way to hack Windows around the DLL loading problem.
Not sure what you mean by that. Will the static link not work for Windows?
On Linux and Mac, the following is possible:
- Rack loads libcurl using linker information at boot
- Rack loads plugins/Fundamental/plugin.* dynamically
- the plugin uses symbols from libcurl
On Windows, DLLs can't talk to sister DLLs, only the main program. Otherwise this problem would be easy to solve by just having Rack load a bunch of common DLLs. An option is to statically link libsamplerate, libcurl, etc, but for some it's harder than others.
@AndrewBelt After the current PR #369, all plugins in the v2 repo build and package successfully with make dist_all on Linux.