» vpm
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

vpm

tool
Credits: LibGit2Sharp, PowerArgs, SharpCompress, Fody Weavers, Fody Costura

about

Documentation is at https://github.com/microdee/vpm

Now you can browse and install packs from the VPDB pack repository with ease!

Install / Use

  • Download latest release from https://github.com/vvvvpm/vpm/releases
  • Register a VVVV with its setup.exe (if it's not done already)
  • Extract anywhere with 7-zip. Extracting with the windows/file explorer vanilla unzipper will put vpm in sandboxed mode and it can't load modules for scripts in sandboxed mode. 7-zip ignores this.
  • Run it at least once so it can register vpm:// or vpms:// uri schemes (vpm links).
  • Click a vpm link (vpm(s)://) or double click a .vpack file

Happy Contributions:

(* available through https://vvvvpm.github.io/ )

Troubleshooting

  • VPM Cannot load/use Newtonsoft.Json.dll
  • Your VPM got sandboxed by Windows, Extract VPM with 7Zip and Windows cannot sandbox it.

Changelog (also manually copied here from github for your convenience):

1.3.0

  • Omitted license agreement UI (individual licenses are no longer asked)
  • Improved VVVV folder selection UI

1.2.8

  • Added ThrowException function for scripts
  • Made loading Nuget packages for scripts working

1.2.7

  • Fixed not all assemblies were loaded shipping with vpm
  • Allow drag and drop on folder selection

1.2.6

  • Added a directory selector dialog

1.2.5

  • Updated nuget packages and removed Fody Weavers

I figured since the actual files are already put into a subfolder, I might as well just put all the DLL's there and not weave them into main exe. This also allows to use all referenced assemblies in the installation script

1.2.4

  • Added a more stylish darker look with MahApps.Metro

and loading spinners for UX shenanigans

  • Added a "web UI" for vpdb
  • got rid of old vpdb remnants
  • added an example for license pages

1.2.3

  • Vpm can now talk to the license pages through javascript

1.2.2

  • Updated vpm.bat for usage in 'PATH' (by MrRoundRobin)
  • Added license agreement screen

Powered by a CefSharp control

1.1.3

1.1.2 (.1)

  • Add: If the input .vpack's pack is already existing user is prompted to update/overwrite instead of quitting immediately
  • Fix: File copying exceptions from the script (like access denied) are handled individually and let the remaining files copy and the rest of the script run.
  • Fix: In case of above mentioned exception comes from overwriting read-only or hidden files, vpm will remove those attributes before copying.
  • Mod: Ditched directory printing, it was just bloating the console.

1.1

  • Add: Now vpm also associate .vpack files during registration
  • Add: Improved scripting: now scripts can use assemblies referenced by vpm

this means pack developers can reference System and some basic namespaces of it with the using statement

  • Mod: vpm doesn't require an exiting vvvv anymore. This means vpm can install vvvv and addonpack to its own folder or the folder specified in command line argument.
  • On the point of previous entry vpm now also able to update vvvv to the latest alpha with a vpack file (Try updating here)
  • Mod: it has colors now yaaay!
  • Mod: the source tag is not mandatory now

Enjoy!
microdee

beyon 20/10/2016 - 10:35

Interesting but still very much alpha it seems. Would really need to have some version info for packs.

Seems you can have arbitrary c# code in a .vpack? Powerful but also seems a bit like handing over your keys to your house to the author from a security perspective but with curated package repo it might be ok.

If you use the latest_alpha packs to install vvvv it seems like it will just copy new files over an existing vvvv directory with no cleaning up of files not used by a newer version?

microdee 21/10/2016 - 17:17

@beyon: good and valid points, responses:
Versioning: I've tried to implement versioning at some point and I found it would introduce more brain-cancer than it would have supposed to solve. Especially in situations where inside the dependency tree 2 different versions of the same pack is referenced. For now if a pack requires an older version of an other pack it's simpler to script its custom fetching than having to keep in mind an xml infrastructure for that thing. Also I think "do you want to overwrite?" prompt is the easiest way currently for everyone.

Scripting: yes arbitrary C# code. So well as with any executable file on the internet download only from trusted sources. vvvv community is so small though that a malacious script wouldn't live long on the website or on github. On the other hand vpm is not elevated if the script would try to access sensitive areas vpm would just throw an access denied exception. I can add a dialog box which can list the scripts to be executed then user can decide if they're harmless. On curated package repo: https://github.com/vvvvpm/vpdb

On deleting files: I'd leave that for the scripts to decide as well. I can add a user prompt in the vvvv install script if they want to delete old files (move to recycle bin) before installation.

soriak 16/12/2016 - 00:28

super interesting! as vpm doesnt require vvvv to be installed beforehand, would it make sense to include the vvvv dependencies of setup.exe in the vpm package of vvvv? or would that require special handling?

microdee 21/12/2016 - 07:56

no, that absolutely makes sense to do, only I didn't have the willpower to do it yet

microdee 22/12/2016 - 09:30

new release 1.2.1 in which app developers now can include license agreements and users can be more aware of them.
https://github.com/vvvvpm/vpm/releases/latest

mrboni 27/01/2017 - 22:13

I just tried vpm

for some reason it's downloading to the wrong directory. It's placed the .vpm and packs folder in the parent of the vvvv directory. I registered the correct vvvversion

microdee 28/01/2017 - 00:35

hmm strange. what's your vvvv's path?

mrboni 31/01/2017 - 23:19

C:\vvvv\vvvv_50beta35_x64 VPM

microdee 31/01/2017 - 23:59

ok let me test it with directory name with spaces in it
alright tested it and spaces work. are you using latest version?

io 06/02/2017 - 11:25

Is i tpossible to target an arbitrary version of vvvv when installing a pack?

microdee 06/02/2017 - 13:39

well yeah via scripting but you should prompt the user either during licence page or with a console question because it can break stuff for other packs. you can extract a download link from the download section and use that to download the vvvv in the C# script, then in the script just extract and copy + overwrite into the vvvv folder.
or if you want latest alpha just add the vvvv updater vpack from vpdb to the dependencies

SuperflysiNZ 23/03/2018 - 12:21

I'm getting this error:

Parsing input Pack
Input pack is dx11-vvvv
Input pack seems to be already existing as dx11
Do you want to overwrite? (Y or N)
y
Initializing dx11-vvvv
Temp folder created successfully:
D:\VVVV\vvvv_50alpha35.18_x64\.vpm
Initialization complete.
Installing dx11-vvvv
Compilation error:
(7,11): error CS0246: The type or namespace name 'Newtonsoft' could not be found (are you missing a using directive or an assembly reference?)
(28,24): error CS0103: The name 'JArray' does not exist in the current context
Press any key to exit...
Removing vpm temp folder.
Killing GUI

I'm not sure what's wrong, I am running the latest alpha...

microdee 23/03/2018 - 13:57

unzip latest vpm with 7-zip. windows vanilla unzipper puts executables and dll's into sandboxed mode, so vpm can't load DLL's for the scripts (like the json.net dll's). I can only guarantee 7-zip to not flag files as sandboxed, other programs might do as well. (this is the same as with vvvv you shouldn't unzip it with the vanilla explorer.exe unzipper)

SuperflysiNZ 25/03/2018 - 22:46

Yup, that worked, thanks!

hrovac 15/04/2018 - 12:26

Hi Microdee,

this tools sounds interesting,
i downloaded and installed it
then i started to download the 1st pack - my pc freezed - restart . again . freezed

okay
i downloaded a fresh vanilla beta36 with addonpack
trying to install dx11pack via vpm doesnt work again :(
i have this error messages:

vpm said
vpm at your service!
Found a VVVV in registry.
Parsing input Pack
Input pack is dx11-vvvv
Initializing dx11-vvvv
Temp folder created successfully:
X:\NODE\v4\vvvv_50beta36_x64\.vpm
Initialization complete.
Installing dx11-vvvv
Compilation error:
(7,11): error CS0246: The type or namespace name 'Newtonsoft' could not be found

 (are you missing a using directive or an assembly reference?)

(28,24): error CS0103: The name 'JArray' does not exist in the current context
Press any key to exit...
Removing vpm temp folder.
Killing GUI

can you pls help me out on this?

thx,
alex

microdee 15/04/2018 - 18:45

read 2 comments above. the freezing part is extreme I never met with that not even on others computers. In theory vpm shouldn't do anything which would freeze the entire system.

hrovac 15/04/2018 - 19:11

im using 7zip, always.

i was able to install one pack (vvvv-time)
all other i tried are producing error messages
for example:

vpm at your service!
Found a VVVV in registry.
Parsing input Pack
Input pack is mp.fxh
Initializing mp.fxh
Temp folder created successfully:
X:\NODE\v4\vvvv_50beta36_x64\.vpm
Cloning git repository of mp.fxh
To: X:\NODE\v4\vvvv_50beta36_x64\.vpm\mp.fxh
Cloning: X:\NODE\v4\vvvv_50beta36_x64\.vpm\mp.fxh /

Something went wrong:
user cancelled certificate check:

   bei LibGit2Sharp.Core.Ensure.HandleError(Int32 result) in c:\projects\libgit2

sharp\LibGit2Sharp\Core\Ensure.cs:Zeile 136.

   bei LibGit2Sharp.Core.Proxy.git_clone(String url, String workdir, GitCloneOpt

ions& opts) in c:\projects\libgit2sharp\LibGit2Sharp\Core\Proxy.cs:Zeile 355.

   bei LibGit2Sharp.Repository.Clone(String sourceUrl, String workdirPath, Clone

Options options) in c:\projects\libgit2sharp\LibGit2Sharp\Repository.cs:Zeile 73
2.

   bei vpm.VpmUtils.CloneGit(String srcrepo, String dstdir, Boolean submodules,

String branch) in C:\projects\vpm\src\vpm\utils.cs:Zeile 517.

   bei vpm.VPack.CloneFromGit(Boolean submodules) in C:\projects\vpm\src\vpm\vpa

ck.cs:Zeile 213.

   bei vpm.VPack..ctor(String name, String source, IEnumerable`1 aliases, XmlDoc

ument srcxml) in C:\projects\vpm\src\vpm\vpack.cs:Zeile 95.

   bei vpm.Program.Main(String[] args) in C:\projects\vpm\src\vpm\Program.cs:Zei

le 114.
Removing vpm temp folder.
Killing GUI
Press any key to exit...

microdee 15/04/2018 - 22:04

"user cancelled certificate check"

this is very weird. if you have git installed can you check what it gives you in the command line in an empty folder?

git clone https://github.com/microdee/mp.fxh.git
bo27 19/04/2018 - 18:14

vpm is great demotivational tool.
one of best I ever saw. why?

microdee 19/04/2018 - 18:36

what does it demotivates from?

tgd 06/07/2018 - 13:26

Hi, I am using vpm 1.2.8 and tried to get mp.essentials from here: https://vvvvpm.github.io/

I am getting errors on the newtonsoft dependency :(
Can i fix this myself somehow?

vpm at your service!
Found a VVVV in registry.
Parsing input Pack
Input pack is mp.essentials
Initializing mp.essentials
Temp folder created successfully:
C:\myvvvv\vvvv_50beta36_x64\.vpm
Parsing vvvv-Message
Initializing vvvv-Message
Initialization complete.
Installing vvvv-Message
Progress: 16973 / 2917212, 0%m/velcrome/vvvv-Message/releases/download/2.9.10/vvvv-Message.zip
Progress: 2905653 / 2917212, 99%
Done
Extracting C:\myvvvv\vvvv_50beta36_x64\.vpm\vvvv-Message.zip
To C:\myvvvv\vvvv_50beta36_x64\.vpm\vvvv-Message\extract
nodes/plugins/VVVV.Packs.Messaging.Nodes.OSC.dll
Done
Copy folder:
From: C:\myvvvv\vvvv_50beta36_x64\.vpm\vvvv-Message\extract
To: C:\myvvvv\vvvv_50beta36_x64\packs\vvvv-Message
File: Reader (Message Streaming) help.v4p
Installing mp.essentials
Compilation error:
(7,9): error CS0246: The type or namespace name 'Newtonsoft' could not be found (are you missing a using directive or an assembly reference?)
(33,19): error CS0103: The name 'JArray' does not exist in the current context
Press any key to exit...
microdee 07/07/2018 - 01:15

quote

Extract anywhere with 7-zip. Extracting with the windows/file explorer vanilla unzipper will put vpm in sandboxed mode and it can't load modules for scripts in sandboxed mode. 7-zip ignores this.

unquote

but I digress, indeed I could have wrote a special handler for this specific error which gives user more info immediately what's wrong. buut vpm is open source, anybody bored can add that ;)

tgd 07/07/2018 - 13:15

yeah should have read all the comments:) ok then

tobyk 19/10/2018 - 12:02

I've got a problem with VPM not getting further than 'Initialization complete'.
It happens with any pack, including packs without dependencies.
I'm on a new machine, new vvvv install 50beta37x64. Latest VPM version.
VPM was extracted with 7zip. The registering process seemed to work ok.
The .vpm folder gets created in the vvvv_50beta37_x64 directory and gets populated with pack subfolders.

Regular git clone works

anonymous user login

Shoutbox

~14d ago

~17d ago

joreg: The Winter Season of vvvv workshops is now over but all recordings are still available for purchase: https://thenodeinstitute.org/ws23-vvvv-intermediates/

~24d ago

schlonzo: Love the new drag and drop functionality for links in latest previews!

~1mth ago

joreg: Workshop on 29 02: Create Sequencers and Precise Clock Based Tools. Signup here: https://thenodeinstitute.org/courses/ws23-vvvv-08-create-sequencers-and-precise-clock-based-tools-in-vvvv-gamma/

~1mth ago

joreg: Workshop on 22 02: Unlocking Shader Artistry: A Journey through ‘The Book of Shaders’ with FUSE. Signup here: https://thenodeinstitute.org/courses/ws23-vvvv-12-book-of-shaders/

~2mth ago

joreg: Talk and Workshop on February 15 & 16 in Frankfurt: https://visualprogramming.net/blog/vvvv-at-node-code-frankfurt/

~2mth ago

woei: @Joanie_AntiVJ: think so, looks doable