LFSR icon indicating copy to clipboard operation
LFSR copied to clipboard

Migrate plugin to V2

Open netboy3 opened this issue 2 years ago • 10 comments

Converted the plugin to VCV Rack V2. It's less painful than the V1 migration, but there are a few things you need to verify to be compliant. I'll have packages for Linux, Mac and Windows posted under the Issues post for migration for users to test the re-built plugin.

netboy3 avatar Dec 08 '21 17:12 netboy3

OK. If I understand, you forked my plugins code, fixed it for v2 and now want to merge that back so as to make my master reflect your work and thereby be ready for v2.

Sry I found this before also finding your other comment where I did some serious whinging about my mental decline… enjoy your youth.

So, s'ok by me, what to do I will try to figure it out THX and of course thank you again for the work and the motivation.

alto777

alto777 avatar Dec 09 '21 19:12 alto777

Hi @alto777,

How wonderful to see that you are still attentive to this repo. The VCV Rack library has now moved to V2 modules, so all older ones are not viewable.

Here's what needs to be done:

  1. Review the Pull Request I sent you and merge it to your repo (as you mentioned)
  2. Verify all is well (a bunch of folks are already testing/using the V2 built version, but ultimately it's your repo)
  3. Once you are comfortable, head over to your plugin VCV library github issue and add a comment:
Update to V2
Location: https://github.com/alto777/LFSR
Version: 2.0.0
Commit Hash: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Make sure to replace the commit hash with the hash of the latest commit to your master AFTER you merged the PR.

The VCV staff will take over everything from that point.

PS I'm not a spring chicken either :smiley:

netboy3 avatar Dec 09 '21 19:12 netboy3

Haha, thank you for your rapid and kind response.

Before opening the email in which it came, I told my GF you were going to draw my attention to the GIANT GREEN BUTTON labeled "Merge pull request", and we made predictions about whether that advicewould include a slap with a damp trout, which I do deserve.

I'll have v2 and SDK or home-built dev up soon and give it a twirl. I am hopeful; the nature of your changes shouldn't rock the boat.

a7

alto777 avatar Dec 09 '21 20:12 alto777

@netboy3 I am very pleased to report that I have "make install"ed my (your) plugin and watched as Rack2 absorbed the *.vcvplugin file and leave behind a plausible looking plugin folder, joining the ones I had already updated from my Rack account.

edit: Never mind the rest, I am an idiot and have not failed yet, got a peek at the log, forgot to look there first.

That is all I can do this day, mostly because there the progress and joy end, for now, as I do not see any of my modules after enter-clicking in Rack2.

I will review the build process, which is coming back to my fingertips from some dim recesses of what is left of my mind, and see if I've missed something.

It feels like missing resources to inform the module browser procedure, although it just looks like front panel SVGs to me.

If you have a brief idea, I will be all over it.

If you know where this kind of thing would have come up, I can look around there; I have tried various Rack places without luck so far.

TIA and I cannot say thank you enough.

a7

alto777 avatar Dec 10 '21 23:12 alto777

Sorry to hear things don't work out. Not seeing LFSR in the Rack2 module browser typically means that the plugin you are building was not converted to V2. Have you merged my PR? The changes between V1 and V2 are more subtle than V0.6 to V1. Many plugins will build successfully with no code modifications, and a few will only misbehave in VCV Pro while running inside a VST (yes, VCV V2 can now be a plugin inside a DAW). LFSR is the latter one. It will build fine in V2 without any modifications, but will crash if run inside a VST. The one modification that must be done to all plugins is the version change in the manifest. VCV V2 will only activate plugins that have 2.x.x versions. You can merge my PR locally on your machine for testing before you merge it in GitHub. To do that, "cd" into the plugin source directory you cloned from GitHub then:

make clean
git fetch origin pull/9/head:v2test
git checkout v2test

Now build, install, and test... Once happy, you can click on that "big green button" and follow the integration instructions I gave you.

netboy3 avatar Dec 11 '21 01:12 netboy3

OK, I now can see the modules in the browser.

The first time I built the old version by mistake - grabbed the wrong thing from your repository.

The second time I downloaded your zip that includes

alto777_LFSR-2.0.0-mac.vcvplugin

but as far as I can tell it unfolds as the old version? Anyway, tried and decided to go for the source again.

I downloaded v2 from your fork, make installed it and Rack2 shows my stuff!

I haven't tested it, sleep first.

Sry about the red herring.

a7

alto777 avatar Dec 11 '21 03:12 alto777

@netboy3 I see that your changes for version 2 are in exactly two files. Last time (V0.6.2 -> V1.x) you visited many many more - even if automated a huge slug of work. Thanks again and sry I didn't realize right away 'twas you.

I will look for the official answer but I am stuck just now on this minor detail from the plugin.json

{ "slug": "alto777_LFSR",

"name": "LFSR", "version": "2.0.0", "license": "BSD-3-Clause", "brand": "alto777_LFSR", "author": "alto777_LFSR", "authorEmail": "",

What can be changed without wrecking old patches? My experiments are not conclusive, I tried

{ "slug": "alto777_LFSR", "name": "LFSR", "version": "1.0.0", "license": "BSD-3-Clause", "brand": "p.s.F/X", "author": "robert a moeser",

which I think did not bother version 1. I will read about and test for version 2.

And by which of those text constants is the plugin seen and referred to? I don't recall how/why the slug became alto777_LFSR" but if that coiyld change, but it seems like that is a step too far for existing pathces.

I don't know how many ppl actual have patches with my modules, but if there are any I don't want to unnecessarily cut the grass under their feet.

Lastly, I cannot thank you enough, so I wonder if you have a PayPal donate button somehwere or any other way I can send you out for a beer or lunvh or something.

alto777

alto777 avatar Dec 17 '21 16:12 alto777

@alto777, the only critical indexing attribute is the slug. To make sure patches are compatible, both the plugin and modules slugs should never change. Next is the version, Rack-V2 will only load plugins with version tag of 2.x.x. The rest of the attributes in the manifest are informational. Changing the brand will have effect on how users find your plugin. The brand can be selected in the filter on the VCV library page and in the Rack plugin browser filter. Changing it might cause your current followers to find it difficult to find your plugin - but the final decision is obviously yours. The author is truly an informational attribute and only shows up in the library when you detail on a module or when you right-click on a module in Rack but may have implications with regards to ownership and licensing.

Plugin slugs have to be unique across the whole Rack plugin namespace, so plugin developers will typically give a plugin slug a name that is a combination of the developer identity and the plugin name.

You do have followers that enjoy your plugin. Some chatter on the community forum actually reminded me to checkup on you :smile:

I appreciate your interest in donating, but none is necessary. My goal is to help the VCV community. I've assisted in porting many plugins and even adopted two abandoned ones. Seeing them being used in a patch is the best thing.

netboy3 avatar Dec 17 '21 17:12 netboy3

I don't like not knowing what I am doing (!), so I wonder what the "v2test" means or names. I do not see any v2test branches on my or your repository.

I looked at the command line instructions for the green button and see only v2 mentioned.

I made a new branch on the GitHub, V2N for purposes of absorbing your changes.

Then locally typed the command lines that the green button would unleash

: git clone https://github.com/alto777/LFSR.git

: cd lfsr : make clean : make dist

tests seem OK…

: git checkout -b netboy3-v2 V2N : git pull https://github.com/netboy3/LFSR-vcvrack-plugins.git v2

: git checkout V2N : git merge --no-ff netboy3-v2

: git status On branch V2N Your branch is ahead of 'origin/V2N' by 2 commits. (use "git push" to publish your local commits)

--> and this is where I do not know how to "aim" the push at my V2N branch.

What I came up with now is

git push origin https://<access_token>@github.com/alto777/LFSR.git

when I am on branch V2N locally. But I haven't done yet. It just doesn't look right yet.

Sry, I am still reading every githug tutorial ever written. I truly hope this is a minimum-brainer.

a7

alto777 avatar Dec 19 '21 16:12 alto777

@netboy3

I write to thank you again, and to apologize for the very long delay.

And... I just submitted my V2X branch for approval; it flunked because I totally bungled and dropped the only significant changes you made in my manual process. I think and hope

I would fire myself.

I see what needs to be done, so don't look yet if you might have thought to do. Just wanted to see you still there, and to hope that you can help me with part of what has caused the long delay - I just don't seem to be able to carry my new modules, never officially released world-wide, to Rack V2.

Last time I was working on them I was chasing something very (to me) elusive and starting to look into debugging methods beyond what I know how to do in the context of a beast like Rack.

Stay tuned. I hope you don't take as disrespect neither the delay nor my stupid insistence on reaching beyond my grasp, both with code and git.

a7

alto777 avatar Feb 26 '22 15:02 alto777