The Package Manifest

What is a 'package manifest' and what should it include?

Overview

Each package should have a manifest file containing a spec that can be distilled into the database when the package is pushed to the server. The manifest should be written in YAML, following the structure of the example below.

The manifest file should be named manifest.yml and should live in the root of the zipped package (renamed to *.yak or whatever).

The manifest’s purpose is to help with streamlining (and potentially automating) the process of releasing packages, removing the need for any web forms when publishing packages.

Required Attributes

Recommended Attributes

Example

Here’s an example for a Grasshopper plug-in.

name: plankton
version: 0.3.4
authors:
  - Daniel Piker
  - Will Pearson
description: >
  Plankton is a flexible and efficient library for handling n-gonal meshes.
  Plankton is written in C# and implements the halfedge data structure. The
  structure of the library is loosely based on Rhinocommon's mesh classes and
  was originally created for use within C#/VB scripting components in
  Grasshopper.
url: "https://github.com/meshmash/Plankton"

Required Attributes

Name

The short name describing the package. Preferably one world although multiple words can be separated by underscores or hyphens.

Note: Package name can only include letters, numbers, dashes, and underscores

Note 2: Package names adopt the case used in the very first version that was uploaded. Future uploads ignore the case of the package name and all queries are case-insensitive.

name: plankton

Version

The version string given to the package, adhering strictly to SemVer 2.0.0. We’ve adopted SemVer to make ordering straightforward and also for easy identification of pre-release versions – handy when releasing beta plug-ins for limited testing!

Partial version numbers are expanded to the full major.minor.patch by the server, e.g. 0.1 -> 0.1.0.

version: 0.3.4

Authors

A list of authors of the package.

authors:
  - Daniel Piker
  - Will Pearson

Description

Describe the package. Be as in-depth or as brief as you feel is appropriate.

description: This is an awesome package.

If you want to write more, you can use use YAML’s folded style.

description: >
  This is such an awesome package
  that I'm going to write a whole
  bunch of text describing it!

URL

A webpage for the package.

url: "https://github.com/meshmash/Plankton"