Creazione di un pacchetto di plug-in per Grasshopper

Il Gestore pacchetti è stato introdotto in Rhino 7. Rende più facile scoprire, installare e gestire i plug-in direttamente da Grasshopper. Questa guida descrive come creare un pacchetto da un plug-in di Grasshopper, che può essere pubblicato sul server dei pacchetti.

Nota
Il Gestore pacchetti è multipiattaforma. Gli esempi che seguono sono per Windows. Per Mac, sostituire il percorso dello strumento Yak CLI con"/Applications/Rhino 8.app/Contents/Resources/bin/yak".

Per prima cosa, supponiamo di avere una cartella sul computer che contiene tutti i file che si desidera distribuire nel pacchetto. Qualcosa del tipo…

C:\Users\Bozo\dist
├── Marmoset.gha
├── icon.png
└── misc\
    ├── README.md
    └── LICENSE.txt
Nota
Questo è solo un esempio. Gli unici file importanti sono Marmoset.gha e icon.png (faremo riferimento all’icona nel file manifest.yml più avanti).

Utilizzeremo lo strumento Yak CLI per creare il pacchetto, quindi apriamo un prompt dei comandi e navighiamo nella directory di cui sopra.

> cd C:\Users\Bozo\dist

Adesso, ci serve un file manifest.yml! Si può facilmente creare il proprio studiando la Guida di riferimento ai manifesti. In alternativa, possiamo usare il comando spec per creare un file con la struttura. In questo caso, ci occuperemo di quest’ultimo aspetto.

> "C:\Program Files\Rhino 8\System\Yak.exe" spec

Inspecting content: Marmoset.gha

---
name: marmoset
version: 1.0.0
authors:
- Park Ranger
description: >
  This plug-in does something. I'm not really sure exactly what it's supposed to
  do, but it does it better than any other plug-in.
url: https://example.com


Saved to C:\Users\Bozo\dist\manifest.yml

Il comando spec esamina la directory corrente e, se presente, ricava informazioni utili dall’assembly .gha e le usa per creare un manifest.yml con nome, versione, autori e contenuti preinseriti.

Se non sono state aggiunte queste informazioni, verranno utilizzati dei segnaposto.

Nota
Il comando spec è utile per creare inizialmente il file manifest.yml. Una volta creato, è utile tenerlo con il progetto e aggiornarlo per ogni release.

Quindi, aprire il file manifest l’editor desiderato e riempire gli spazi vuoti.

In seguito, otterremo qualcosa del genere…

---
name: marmoset
version: 1.0.0
authors:
- Park Ranger
description: >
  This plug-in does something. I'm not really sure exactly what it's supposed to
  do, but it does it better than any other plug-in.  
url: https://example.com
icon: icon.png
keywords:
- mammal

Ora che abbiamo un file manifest, possiamo compilare il pacchetto!

> "C:\Program Files\Rhino 8\System\Yak.exe" build

Building package from contents of C:\Users\Bozo\dist

Found manifest.yml for package: marmoset (1.0.0)
Inspecting content: Marmoset.gha
Creating marmoset-1.0.0-rh6_18-any.yak

---
name: marmoset
version: 1.0.0
authors:
- Will Pearson
description: >
  This plug-in does something. I'm not really sure exactly what it's supposed to
  do, but it does it better than any other plug-in.
url: example.com
keywords:
- mammal
- guid:c9beedb9-07ec-4974-a0a2-44670ddb17e4

C:\Users\Bozo\dist\marmoset-1.0.0-rh6_18-any.yak
├── Marmoset.dll
├── Marmoset.gha
├── manifest.yml
├── misc\LICENSE.txt
└── misc\README.md
Nota
Il nome del file include un “tag di distribuzione” (in questo casorh6_18-any). La prima parte, rh6_18, viene dedotta dalla versione di Grasshopper.dll o Rhinocommon.dll a cui si fa riferimento nel progetto del plug-in. La seconda parte, any, si riferisce alla piattaforma a cui il plug-in è destinato. Per creare un pacchetto specifico per la piattaforma, eseguire nuovamente il comandobuild con l’argomento --platform <platform> dove <platform> può essere win o mac.
Avviso
Attualmente, se si pubblica un pacchetto con un tag di distribuzione rh6*, questo non sarà installabile per Rhino 7. Se il plug-in funziona anche in Rhino 7, occorre contrassegnarlo come compatibile copiando il file .yak, aggiornando la parte del nome del file relativa al tag di distribuzione (ad esempiorh6_18rh7_0) e inviando entrambi al server dei pacchetti.
Nota
Potremmo notare che il GUID del plug-in si trova tra le parole chiave. Per ulteriori informazioni sull’utilizzo di questa funzione, consultare la guida “Ripristino dei pacchetti in Grasshopper”.

Ottimo lavoro! 🙌 Abbiamo appena creato un pacchetto per il plug-in di Grasshopper.

Passi successivi

Ora che abbiamo creato un pacchetto, possiamo inviarlo al server dei pacchetti per renderlo disponibile nel Gestore pacchetti.