Packages must exist as a public GitHub repository and contain a valid manifest file. Manifest files must follow the *.bigtree.json naming convention and exist in the root of the package's repo. The file must be properly formatted JSON, not a JavaScript object literal.

Example

{
    "id": "color-picker",
    "version": "1.0.0",
"compatibility": "4.0+"
    "title": "Color Picker",
    "description": "A color picker field type",
    "keywords": [
        "color",
        "ui",
        "field-type"
    ],
    "author": {
        "name": "BigTree CMS",
        "email": "info@bigtree.com",
        "url": "http://bigtree.com"
    },
    "licenses": [
        {
            "MIT": "https://github.com/jquery/jquery-color/blob/2.1.2/MIT-LICENSE.txt",
            "GPLv2": "http://www.example.com/licenses/gpl.html"
        }
    ]
}

Fields

The most important fields in your manifest file are id and version as they will form the unique identifier of the package.

id

The id should be short, unique and reasonably descriptive - check the packages section to verify the name is not already in use. The id becomes part of the package's URL and should include only url-safe, UTF-8 characters. Do not use 'btx' in your id - this is a reserved namespace for official BigTree packages. Any packages not following these conventions will be rejected.

version

Versions must follow the X.X.X semver pattern and defines the current version of the package. Updates to the package should increment the current version number.

compatibility

Compatibility must follow the X.X.X semver pattern and defines what version(s) of BigTree the package targets. A valid BigTree version number is required.

title

A human-readable name of your package, containing spaces and mixed-case characters. This will be displayed alongside the description when listing or displaying the package.

description

A human-readable description of your package, containing spaces and mixed-case characters. This will be displayed alongside the title when listing or displaying the package.

author

An object containing name, email and url fields to properly identify the package's author.

licenses

An array of licenses under which the package is released. Each item in the array is a key/value pair where the key is the title and the value is the URL of the license text.

keywords

Any array of strings that help loosely connect similar packages. Keywords may only contain letters, numbers and hyphens.