Yak Manifest.yml

I’m attempting to package a plugin. After using the yak.exe command ‘spec’, a manifest file is created with a yaml setting called secret, with a guid style id.

secret:
  id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

What is this? Do I need this? What secret should be stored in a manifest yaml?
The documentation about the package manifest is not very clear on what this is.

Hi @arendvw, the “secret” is just the GUID of the plug-in. It’s used as a fallback when searching for missing Grasshopper plug-ins that are required for a file that has just been opened. This fallback is necessary in case the name of a plug-in doesn’t match the name of its package.

Great, thanks! Out of the gazillion options of AssemblyInfo.cs, and GH_Assembly, PlugIn (rhino) names, which assembly name are talking about here? :slight_smile:

[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyProduct("")]
GH_AssemblyInfo.Name
PlugIn.Name

Because of it’s nearly-but-not-complete replication it seems non trivial to get these things right.

It’s the GH_AssemblyInfo one. The yak spec command should have pre-populated this for you (assuming it existed), however no spaces are allowed so these will have been replaced with -. Differences in case are fine, since the package names are treated as case-insensitive on the server.

More info about naming and versioning packages/plug-ins to work with the package restore feature of Grasshopper: http://developer.rhino3d.com/guides/yak/package-restore-in-grasshopper/

1 Like

One thing that I forgot above is that if the folder in which you run yak spec contains a .rhp and a .gha file then the .rhp is the one that will be inspected. If you want package restore to work with your .gha then you’ll need to make sure that the package name matches the GH_AssemblyInfo name, or replace the secret.id with its GUID (or re-run yak spec with the .rhp temporarily removed from the directory).

1 Like