I’ve spent the past two weeks writing a simple package manager for VapourSynth called VSRepo. It can already install most common plugins and scripts with all of their dependencies. Installing havsfunc is no longer a treasure hunt across the internet!
Go visit the doom9 thread where the link to the latest test versions are posted if you want to try it out or help add more plugins and scripts. The plan is to include it in the installer with the next VapourSynth release.
Thanks for your hard work! This is an excellent new feature!
Do you have a wishlist or a model package manager you have as inspiration that would like additional functionality pulled from or are you planning on trying to keep VSRepo really simple?
For example, there is now redundancy between the package list that vsrepo has to maintain and the package list in the VS docs – are you planning something a la Cargo (Rust, https://crates.io/) or NPM (Nodejs, https://www.npmjs.com/) or even much more simple examples like PackageControl (SublimeText, https://packagecontrol.io/).
Also, VSRepo is using SHA1 for package verification when most big package managers are moving/have moved to SHA256 for future proofing since vulnerabilities in SHA1 have been demonstrated (even though they currently aren’t exploitable).
I think it’s basically final feature wise as it is now I guess, I’m only inspired by simplicity and vague memories of all the package managers I’ve ever seen. The fact that it’s my own evil creation means I’ll be able to easier integrate it into the VapourSynth python module too. Wouldn’t it be nice if any script can fetch the missing plugins it needs to run and then resume execution?
In terms of features the rest is just polish, like download progress reporting and some uninstall quirks. Patches welcome there. I’ll probably switch to sha256 too since you suggested it.
Plugin list generation will be based off of the vsrepo packages some day. I just have to write a script for it and wait for nice people to contribute the last few necessary plugins and scripts.
You can check out the issues I’ve created for things which hold basically all of my ideas… or you can try to convince me to go in a completely different direction.