The Anatomy of a Package

This guide explains the structure of a Yak package.

Package Structure

Packages are simply ZIP archives. Take this simple example…

plankton-0.4.0.zip
├── manifest.yml
├── Plankton.gha
├── Plankton.dll
└── misc/
    ├── README.md
    └── LICENSE.txt

Important Things to Note

  1. Packages must have a top-level manifest.yml file
  2. Any plug-ins (.rhp, .gha, .ghpy files) must be in the top-level directory so that Rhino and Grasshopper can find and load them
  3. Each package should have only one plug-in (.gha, .rhp or .gphy); package restore will only work for the plug-in which matches the details in the manifest.yml file
  4. If you’re packaging a .gha plug-in, you should ensure that the package name and version number in the GH_AssemblyInfo sub-class match those in the manifest.yml file, otherwise package restore may not work