Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VCV Rack Library Tools

Set of tools I use to manage integration of plugins into the VCV Rack library repository.

  • rack-manifest-validator.py

General Notes

These tools are specifically written to run on GNU/Linux, which is the system I use mostly for integration of plugins in the Plugin Manager. These tools are written to operate on a local working copy of the Rack library repository.

Requires only the Python 3 standard library — no third-party dependencies.

Manifest Validator - rack-manifest-validator.py

Script to validate a single plugin's plugin.json manifest.

python3 ./rack-manifest-validator.py <PLUGIN_DIR>

Example:

  • Validate the manifest for modular80:
python3 ./rack-manifest-validator.py /src/library/repos/modular80

To validate every plugin in the library repository, loop over them at the caller level, e.g.:

for plugin in /src/library/repos/*/; do
    python3 ./rack-manifest-validator.py "$plugin" || echo "FAILED: $plugin"
done

If the plugin directory is a git submodule of the library repository (i.e. .gitmodules exists two directories up, at <LIBRARY_REPO_ROOT>/.gitmodules), the validator also checks that the plugin's version was bumped and that no plugin/module slugs were removed or renamed since the previously recorded submodule commit.

Tests

Unit tests live in test_rack_manifest_validator.py and use pytest. Since the system Python is externally managed, install pytest into a local virtualenv:

python3 -m venv .venv
.venv/bin/pip install pytest
.venv/bin/python -m pytest test_rack_manifest_validator.py

All network and git calls are mocked; the tests do not require network access, though a few exercise real temporary git repositories/submodules to verify the version-bump and slug-change checks.

About

Set of tools to manage VCV Rack `library` repository content.

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages