Hosts and maintains an up-to-date plugin registry file, allowing Meshroom users to easily discover and fetch MeshroomHub plugins.
plugins.json lists every meshroomHub public repository that is a Meshroom plugin, along with the versions Meshroom can fetch:
{
"name": "Meshroom Hub",
"description": "Meshroom Hub plugin registry",
"url": "https://github.com/meshroomHub/pluginRegistry",
"fileUrl": "https://raw.githubusercontent.com/meshroomHub/pluginRegistry/HEAD/plugins.json",
"entries": [
{
"url": "https://github.com/meshroomHub/mrSegmentation",
"versions": ["1.4.1", "1.4.0", "1.3.0"],
"sizeMB": 12
},
{
"url": "https://github.com/meshroomHub/mrHelloWorld",
"versions": ["main+bbc9af0"],
"sizeMB": 1
}
]
}name— the registry's name.description— the registry's description.url— the URL of this registry project.fileUrl— the URL Meshroom should fetch to get this file.entries— the list of plugins:url— the plugin repository's GitHub URL.versions— the plugin's tag names, newest first (up to the 5 most recent), or a single<default-branch>+<short-sha>entry if the repository has no tags.sizeMB(optional) — the plugin approximated size in MB (rounded up).
.github/workflows/update-plugins.yml runs daily and regenerates plugins.json via scripts/update_plugins.py:
- List every public repository in the
meshroomHuborg. - Keep those with a root
meshroomfolder, these are the Meshroom plugins. - For each plugin, compute its
versions(its up to 5 newest tags, by commit date, or otherwise<default-branch>+<short-sha>of its latest commit) andsizeMB(its approximate size). - Rewrite
plugins.jsonwith these current values. - If that changed the file, commit it and tag the commit
<year>.<month>.<day>.
