Creating a new Library/Package/Nuget
The most consistent way to contribute a set of nodes for vvvv is by creating a library and shipping it in form of a NuGet Package.
Source and binary nugets
NuGet packages are typically installed in binary form. vvvv adds the idea of "source nugets" in that it allows you to directly reference the sources of a package just as if it was already a binary nuget. For vvvv to recognize a directory as a source-nuget it has to be found in a directory specified as a package-repository and follow these conventions:
Innards of a nuget
For vvvv, a source-nuget in a directory is defined by two files:
The .nuspec file describes a nuget in a simple text format as defined by the Nuspec Reference.
The .vl file acts as the central entry point when using the nuget. It defines all actual nodes that you get by using the nuget: everything has to be either patched in there or marked as a 'forwarded dependency'.
In order for nugets to work with vvvv you have to provide the following structure where of course all the directories are optional and only needed when actually used by a specific nuget:
\lib //for managed .dlls \lib-native //for native/un-managed .dlls \src //for c# sources \vvvv //for anything only useful for vvvv beta (this can include .vl files that are only wrapping vl-nodes for vvvv) <packName>.nuspec <packName>.vl
Creating and Publishing a NuGet
Once you're ready to create a NuGet .nupkg from your library, there are different options: