Structure d’un paquet
Les paquets sont simplement des fichiers d’archivage ZIP avec une extension .yak. Prenons un exemple simple :
howler-0.4.0-any-any.yak
├── manifest.yml
├── Howler.rhp
├── Howler.rui
├── HowlerCommon.dll
├── HowlerGrasshopper.gha
└── misc/
├── README.md
└── LICENSE.txt
À propos du multiciblage .NET
À partir de Rhino 8, Yak prend également en charge les applications multicibles, de sorte que votre module de Rhino puise être exécuté dans .NET Core ou .NET Framework.
Notez que le fichier manifest.yml
doit maintenant se trouver à l’extérieur du répertoire du framework et non pas à l’intérieur.
howler-0.4.0-rh8-any.yak
├── manifest.yml
├── net48/
│ ├── Howler.rhp
│ ├── Howler.rui
│ ├── HowlerCommon.dll
│ ├── HowlerGrasshopper.gha
│ └── misc/
│ ├── README.md
│ └── LICENSE.txt
└── net7.0/
├── Howler.rhp
├── Howler.rui
├── HowlerCommon.dll
├── HowlerGrasshopper.gha
└── misc/
├── README.md
└── LICENSE.txt
Conditions requises
- Les paquets doivent contenir un fichier
manifest.yml
dans le répertoire de premier niveau. Vous trouverez tous les détails concernant le manifeste dans le guide sur le référencement du manifeste. - Tous les modules (fichiers
.rhp
,.gha
,.ghpy
) doivent se trouver dans le répertoire de premier niveau, ou dans un répertoire multicible, afin que Rhino et Grasshopper puissent les trouver et les charger. - Les numéros de version des paquets doivent soit suivre la gestion sémantique de version 2.0.0 (par exemple
1.1.0-beta
) ouSystème.Version
, connu sous le nom de norme à quatre chiffres de Microsoft (par exemple1.2.3.4
). Il est recommandé d’utiliser la gestion sémantique de version car cette approche permet aux auteurs de paquets de spécifier des versions préliminaires. C’est pratique pour des essais limités, puisque la dernière version stable est installée par défaut.
Distributions
Lorsque qu’une version ne contient qu’un seul paquet, il est possible de télécharger plusieurs « distributions » pour cibler différentes versions de Rhino et différentes plateformes. Ces informations sont codées dans une « étiquette de distribution » qui est ajoutée au nom de fichier du paquet, par exemple : exemple-1.0.0-rh7-win.yak.
L’étiquette de distribution comprend l’identifiant de l’application et sa version, ainsi que la plateforme. Actuellement, les seules applications prises en charge sont rh
et any
(Grasshopper est livré avec Rhino et n’a donc pas besoin de son propre identifiant). A moins que l’application ne soit any
, une version de l’application doit être indiquée sous la forme <majeure>_<mineure>
. La version mineure est facultative ; c’est utile si un module dépend d’une modification du SDK apportée dans une version révisée. La plateforme peut être win
, mac
ou any
(c’est-à-dire multiplateforme).
Quelques exemples…
rh7-win
- Rhino 7 pour Windows >= 7.0rh6_14-mac
- Rhino 6 pour Mac >= 6.14rh6_9-any
- Rhino 6 (les deux plateformes) >= 6.9any-any
- tout est permis ! (comportement existant)
Lors de l’installation de paquets, le gestionnaire de paquets vérifie si une distribution compatible existe pour la version demandée. Seules les versions de paquets qui ont au moins une distribution compatible apparaissent lorsque l’utilisateur lance la commande GestionnairePaquets
dans Rhino 7+.
Le serveur mis à jour fonctionne parfaitement avec les paquets existants et les anciennes versions de Rhino. Les versions préexistantes sur le serveur (sans distribution) seront traitées comme any-any
lors de l’installation. Les nouvelles versions de paquets qui ne comportent pas d’étiquette de distribution, par exemple celles créées par des versions antérieures de l’interface de programmation, seront également traitées comme any-any
lors de la publication.
Étapes suivantes
Maintenant que vous avez vu ce que contient un paquet, pourquoi ne pas en créer un ?
- Créer un paquet Grasshopper de votre module.
- Créer un paquet Rhino pour tout le monde.
- Créer un paquet multicibles pour Rhino 8.