La soluzione per contribuire facilmente all'Addonpack si chiama Software Development Kit di vvvv (vvvv SDK). Include tutto il codice sorgente open source di vvvv ed il codice di tutti gli addon. Si tratta di un repository git: consente perciò di essere convenientemente aggiornati sugli ultimi passi dello sviluppo del software; inoltre il build dei vostri addon avviene sempre in relazione all'ultima alpha build.
Se volete solo scorrere un po' il codice del SDK, potrete farlo nella pagina GitHub di vvvv.
Ci sono tre ragioni per cui potreste seguire le istruzioni che seguono:
Esistono innumerevoli modi di lavorare con i repository git con Windows. Per mantenere semplice questa guida, raccomandiamo l'uso della GUI Git Extensions, che ci ha reso un gran servizio. Mentre installate Git Extensions, assicuratevi di barrare le rispettive caselle ed installare anche:
Il primo è il motore attuale di Git (per il quale Git Extension è solo una GUI); il secondo è un tool per confrontare file quando ci sono conflitti di fusione, merge-conflicts.
Quando si esegue Git Extensions per la prima volta, dovrete inserire il nome e l'indirizzo email che verrà usato per i commit: seguite quindi le istruzioni che vi verranno proposte.
Se ad un certo punto avete bisogno o volete sapere qualcosa in più su come lavorare con Git, il modo migliore è sul sito ufficiale di Git, con la sua doumentazione ed il materiale di riferimento.
A questo punto installate Git Credential Winstore, che chiederà le vostre credenziali su GitHub, quando vorrete eseguire un push commit, cosa che ad un certo punto vorrete fare (questo sistema è più semplice da gestire di quello delle chiavi SSH, se ne avete sentito parlare).
C:\Program Files (x86)\Git\bin\;
posto che sia il percorso nel quale si trova l'eseguibile git.exe. In caso contrario inserite il percorso nel quale si trova git.exe nel vostro pc.
Assicuratevi che:
Il repository Git del SDK è ospitato suhttp://github.com (che è solo uno dei molti repository Git che ospitano servizi). Per poter contribuire a quel repository, dovrete effettuare una biforcazione, fork. Ecco come:
Ora su GitHub avete la vostra personale versione "biforcata" del repository Git del SDK, ed è su questa versione che lavorerete principalmente. Clonate questo repository nel vostro disco locale usando Git Extensions così:
Ci vorrà un po', dato che ora viene scaricata localmente, clonata, una copia di tutti i file del repository indicato.
Una volta terminato il processo di clonazione, il repository dovrebbe avere la seguente struttura:
\common \Hoster \scripts \tools \vvvv45
Per il momento non preoccupatevi di \common \Hoster e \scripts e muovetevi dentro la directory \vvvv45. Qui trovate all'incirca la stessa struttura che ha vvvv quando lo scaricate come utenti normali (eccezion fatta per \src e \tests).
\addonpack \girlpower \lib \licenses \src \tests
Spostatevi dentro la directory \addonpack, che è quella nella quale lavorerete. Contiene 4 cartelle:
\girlpower \lib \licenses \src
La cartella \src contiene addon che devono essere compilati prima di poter essere usati (in forma di plugin ad esempio), mentre la cartella \lib contiene addon, come moduli ed effetti, già pronti all'uso.
Così, a seconda del tipo di addon su cui state lavorando, inserite i vostri nodi nelle rispettive sottocartelle:
\src\nodes\plugins \lib\nodes\effects \lib\nodes\modules
Prima di effettuare il build, dovrete scaricare nella directory \vvvv45 un eseguibile vvvv.exe che collimi con il materiale che avete.
Il primo passo è quello di installare PowerShell 3.0 (installato di default su Windows 8).
Ora lanciate Git Extensions, cliccate (nella versione 2.47.3) su Tools -> Git bash (Ctrl + G)
Nel bash spostatevi nella directory di vvvv SDK:
cd /c/dev/vvvv-sdk
quindi digitate
scripts/fetch-binaries x86
A questo punto avrete bisogno di SharpDevelop 4 (SD4) o di Visual Studio 2012 (VS2012); installate inoltre Windows 8.1 SDK.
Prima di lanciare vvvv.exe dalla directory \vvvv45 (l'ultima alpha build disponibile tra le closed sources di vvvv), effettuerete il build delle parti open source, incluso l'intero Addonpack, così da avere tutti i plugin disponibili.
L'Addonpack è suddiviso in due soluzioni:
la prima delle quali contiene solo plugin gestiti, managed, è la parte più ampia dell'Addonpack, e si compilerà probabilmente senza problemi.
La seconda contiene invece un misto di plugin managed/unmanaged che possono essere costruiti solo con una macchina con Windows 7 con installato Windows SDK 7.1.
Questa operazione potrebbe richiedere un po' di tempo, e dovrebbe restituire il messaggio "Build Successfull. 0 Errors", nel qual caso potrete chiudere la soluzione. Se l'operazione fallisce, contattateci su irc?.
Ora siete pronti a lavorare sul vostro codice. Aprite quindi Addonpack.sln e aggiungete il vostro progetto. Per poter costruire il vostro progetto all'interno di quella soluzione, c'è un passaggio da eseguire manualmente:
<Import Project="..\..\Default.Plugin.Project.settings" />
<PropertyGroup Condition="...">...</PropertyGroup>
Potete anche sbirciare nel file progetto di un altro plugin nell'Addonpack per avere un'idea di come dovrebbe essere il vostro.
Se il vostro progetto ha dipendenze da .dll di terze parti, inseritele in una directory chiamata
\dependencies
nella directory del vostro progetto, ed impostate i riferimenti rispetto a quella posizione.
Se il vostro progetto dipende da assembly piattaforma-dipendenti inseritele in
\dependencies\x86 \dependencies\x64
aprite il file progetto con un editor di testo e scrivete qualcosa come:
<Reference Include="AssemblyName"> <HintPath>dependencies\$(Platform)\AssemblyName.dll</HintPath> </Reference>
Se il vostro progetto contiene riferimenti a .dll unmanaged, potete inserirle localmente nella directory
\dependencies\PLATFORM
ed invece di aggiungerle come riferimento al progetto (cosa che non è possibile), seguite questa procedura:
Questo procedimento è necessario solo per il collegamento di questi file .dll nativi, dato che per i riferimenti ordinari Local copy = true è il valore di default in ogni caso.
Quando compilate il vostro progetto, noterete che queste dipendenze native verranno copiate nella directory di output includendo il loro percorso relativo. Per fare sì che siano trovate in runtime, dobbiamo aggiungere questo percorso relativo nella variabile d'ambiente PATH una volta che il plugin viene caricato. Aggiungete quindi uno static constructor al vostro plugin ed inserite queste stringhe:
public class MyPlugin ... { // Static constructor static MyPlugin { var platform = IntPtr.Size == 4 ? "x86" : "x64"; var pathToThisAssembly = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var pathToBinFolder = Path.Combine(pathToThisAssembly, "dependencies", platform); var envPath = Environment.GetEnvironmentVariable("PATH"); envPath = string.Format("{0};{1}", envPath, pathToBinFolder); Environment.SetEnvironmentVariable("PATH", envPath); } }
Inserite un file chiamato
license-MYPLUG.txt
nella directory del plugin. Da lì sarà collezionato automaticamente ed inserito nella directory comune \addonpack\licenses in seguito al build.
Non dimenticate di fornire anche una helppatch per il plugin. Inserite le helppatch nella directory
\addonpack\lib\nodes\plugins
Sì, qui c'è un po' di confusione. Parliamone su irc?.
Il comando git pull viene usato per collezionare, fetch (e unire, merge) da un repository remoto. Di norma, quando si esegue il comando pull nel proprio repository, si aggiorna il codice locale dal codice remoto. Per poter ottenere i bit più freschi dal SDK di vvvv, dovete eseguire pull dal repository originale.
Dovete così aggiungere il repository originale come un remoto extra al vostro repository. In Git Extensions aprite il repository locale, e dal menu (nella versione 2.47.3) scegliete:
Repository -> Remote repositories...
cliccate su New, inserite il nome "upstream" e l'url:
Ora potrete eseguire il comando pull dal remoto
Eseguendo pull da upstream otterete gli ultimi cambiamenti al SDK di vvvv ed il corrispondente vvvv.exe dell'alpha build. Assicuratevi, ogni volta che aggiornate il repository locale, di ricostruire la soluzione Addonpack.sln per fare sì che il file vvvv.exe che avete ottenuto sia compatibile con le ultime modifiche del codice.
Avete aggiunto un progetto all'Addonpack e volete che sia distribuito con l'Addonpack ufficiale? Inviateci una richiesta di pull, facendolo nei confronti del ramo di sviluppo di vvvv-SDK.
vvvv segue questo modello di ramificazione.
Tenete presente che potete inviare richieste multiple creando localmente rami differenti, e da quelli inviare una richiesta verso il ramo di sviluppo di vvvv-SDK.
Prima di effettuare tali richieste, assicuratevi:
Per effettuare un build a 64bit, avete la necessità di ottenere il corrispondente eseguibile vvvv.exe alpha a 64bit.
Eseguite perciò il comando in Git bash (Ctrl+G in GitExtensions):
scripts/fetch-binaries x64
anonymous user login
~2d ago
~2d ago
~9d ago
~11d ago
~13d ago
~17d ago
~17d ago
~24d ago
~1mth ago
~1mth ago