Shared beta module not showing up in library

Hello! I’m working with @zakforrest on a niche module. I built him a distributable (voxglitch-2.2.0-win.vcvplugin - Google Drive), and he installed it, but the new module is not appearing in his right-click menu. Any suggestions?

He’s using Rack 2.0.3. I’m building it for Rack. I’m using 2.beta.1.

Thanks!

my rack just updated to 2.0.4 this evening.

im on a mac and bret is developing the module on a PC, is there a workaround for this? his other finished/released Voxglitch modules work on my computer…

heres a screen recording of my install issue if it helps…

1 Like

look in the log file - it will probably say why it didn’t load.

The plugin needs to be compiled on a Mac Os system for Mac Os.

how does one (me) do that? i dont know much in that realm

It may be a bit of adventure if you have never programmed, but it you follow the instructions it will work. VCV Manual - Building

1 Like

I should say that even for an experienced person it can easily take more than one evening to figure this out. and you need to download a large (but free) copy of XCode from the Apple store. It might be more practical to find someone to do it for you?

I agree with @Squinky 100%. Maybe I can reach out to a few module building friends to see if they can assist us. :star2:

1 Like

Wow thanks for the help everyone. This is an amazing introduction to this forum for me!

If you send a link to the git you want built for mac, I can do that for you - I have a toolchain running in a VM .

1 Like

@clone45 i can here too if you need it directly on a Mac

1 Like

Thank you @Jens.Peter.Nielsen and @pgatt ! It might take me a few days, but it would be amazing if you could help build a Mac version once I’m done!

1 Like

Silvio Kunaschks “Action Script” for Github is probably the best solution.

  1. In your repository on Github (containing src & res folder, makefile, license and plugin.json) go to “Actions” and create a new action/workflow.
  2. Call the new action/workflow file build-plugin.yml
  3. Paste following code into it:
name: Build VCV Rack Plugin
on: [push, pull_request]

env:
  rack-sdk-version: 2.0.2

defaults:
  run:
    shell: bash

jobs:
  build:
    name: ${{ matrix.config.name }}
    runs-on: ${{ matrix.config.os }}
    strategy:
      matrix:
        config:
        - {
            name: Linux,
            sdk-platform: lin,
            os: ubuntu-latest,
            prepare-os: sudo apt update && sudo apt install -y libglu-dev
          }
        - {
            name: MacOS,
            sdk-platform: mac,
            os: macos-latest,
            prepare-os: ""
          }
        - {
            name: Windows,
            sdk-platform: win,
            os: windows-latest,
            prepare-os: export CC=gcc
          }
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: recursive
      - name: Get Rack-SDK
        run: |
          pushd $HOME
          curl -o Rack-SDK.zip https://vcvrack.com/downloads/Rack-SDK-${{ env.rack-sdk-version }}-${{ matrix.config.sdk-platform }}.zip
          unzip Rack-SDK.zip
      - name: Patch plugin.mk, use 7zip on Windows
        if: runner.os == 'Windows'
        run: |
          sed -i 's/zip -q -9 -r/7z a -tzip -mx=9/' $HOME/Rack-SDK/plugin.mk
      - name: Modify plugin version
        # only modify plugin version if no tag was created
        if: "! startsWith(github.ref, 'refs/tags/v')"
        run: |
          gitrev=`git rev-parse --short HEAD`
          pluginversion=`jq -r '.version' plugin.json`
          echo "Set plugin version from $pluginversion to $pluginversion-$gitrev"
          cat <<< `jq --arg VERSION "$pluginversion-$gitrev" '.version=$VERSION' plugin.json` > plugin.json
      - name: Build plugin
        run: |
          ${{ matrix.config.prepare-os }}
          export RACK_DIR=$HOME/Rack-SDK
          make -j dep
          make -j dist
      - name: Upload artifact
        uses: actions/upload-artifact@v2
        with:
          path: dist
          name: ${{ matrix.config.name }}

  publish:
    name: Publish plugin
    # only create a release if a tag was created that is called e.g. v1.2.3
    # see also https://vcvrack.com/manual/Manifest#version
    if: startsWith(github.ref, 'refs/tags/v')
    runs-on: ubuntu-latest
    needs: build
    steps:
      - uses: actions/checkout@v2
      - uses: FranzDiebold/github-env-vars-action@v1.2.1
      - name: Check if plugin version matches tag
        run: |
          pluginversion=`jq -r '.version' plugin.json`
          if [ "v$pluginversion" != "${{ env.GITHUB_REF_NAME }}" ]; then
            echo "Plugin version from plugin.json 'v$pluginversion' doesn't match with tag version '${{ env.GITHUB_REF_NAME }}'"
            exit 1
          fi
      - name: Create Release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ github.ref }}
          release_name: Release ${{ github.ref }}
          body: |
            ${{ env.GITHUB_REPOSITORY_NAME }} VCV Rack Plugin ${{ env.GITHUB_REF_NAME }}
          draft: false
          prerelease: false
      - uses: actions/download-artifact@v2
        with:
          path: _artifacts
      - name: Upload release assets
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: _artifacts/**/*.zip
          tag: ${{ github.ref }}
          file_glob: true
  1. save the action
  2. create a new release and tag it v2.0.0 (replace the numbers with your plugins version as stated in your plugin.json) & (click create tag on publish)
  3. after publishing, immediately delete the release (since you want an empty tag)
  4. go back to actions - either the action is automatically running already OR you have to click “events” and then push - which will run the compiler.

if the created tag is identical with the version in plugin.json and the compilation runs without errors, you should have a new release for Windows, Linux and MacOS in your repository a few minutes later.