Il Gestore pacchetti è stato introdotto in Rhino 7. Rende più facile scoprire, installare e gestire i plug-in direttamente da Rhino. Questa guida descrive come creare un pacchetto da un plug-in di Rhino, che può essere pubblicato sul server dei pacchetti.
"/Applications/Rhino 8.app/Contents/Resources/bin/yak"
.Per prima cosa, supponiamo di avere una directory di compilazione sul computer che contiene tutti i file che si desidera distribuire nel pacchetto multitarget. Qualcosa di simile a quanto segue.
C:\Users\Bozo\dist\
├───net48
│ │ icon.png
│ │ Tamarin.rhp
│ └───misc
│ License.txt
│ README.md
└───net7.0
│ icon.png
│ Tamarin.rhp
└───misc
License.txt
README.md
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: Tamarin.rhp
---
name: tamarin
version: 1.0.0
authors:
- Park Ranger
description: An example RhinoCommon 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 .rhp
e le usa per creare un manifest.yml
con nome, versione, descrizione e contenuti preinseriti.
Se non sono state aggiunte queste informazioni, verranno utilizzati dei segnaposto.
L’ispettore dei plug-in di RhinoCommon estrae gli attributi dell’assieme impostati durante la creazione del plug-in. L’attributo AssemblyInformationalVersion
viene usato per popolare il campo della versione, poiché questo attributo non è vincolato alle specifiche di versione a quattro cifre di Microsoft e può contenere una stringa di versione compatibile con SemVer.
L’attributo AssemblyVersion
è usato come ultima spiaggia.
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: tamarin
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:
- something
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: tamarin (1.0.0)
Inspecting content: Tamarin.rhp
Creating tamarin-1.0.0-rh8_0-any.yak
---
name: tamarin
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: https://example.com
keywords:
- something
- guid:c9beedb9-07ec-4974-a0a2-44670ddb17e4
C:\Users\Bozo\dist\tamarin-1.0.0-rh8_0-any.yak
├── manifest.yml
├── net48/
│ ├── Tamarin.dll
│ ├── Tamarin.rhp
│ ├── icon.png
│ └── misc/
│ ├── License.txt
│ └── README.md
└── net7.0/
├── Tamarin.dll
├── Tamarin.rhp
├── icon.png
└── misc/
├── License.txt
└── README.md
rh8_0-any
). La prima parte, rh8_0
, viene dedotta dalla versione di Rhinocommon.dll o Rhino C++ SDK 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
.Ottimo lavoro! 🙌 Abbiamo appena creato un pacchetto multitarget per il plug-in di Rhino.
Passi successivi
Ora che abbiamo creato un pacchetto, possiamo inviarlo al server dei pacchetti per renderlo disponibile nel Gestore pacchetti.