The package-info.json file

The package-info.json file

We at Cycling '74 actually use a generator script to build these files. We intend to, on the appointed day at the appointed time, release some version of this script to the public so that you don't need to know any of this stuff. For now, though, here's what we can tell you:

{

"name" : "name of the package",
Best practice is to name the package the same as the folder.

"displayname" : "how the package should be displayed in the Package Manager",

"version" : "0.6.0",
This should be a Semantic Versioning-compatible version string.

"author" : "Cycling '74",
Author string, for a single author.

"authors" : [ "Arthur Author", "Otter Auter" ],
Array of author strings, for multiple authors

"description" : "Brief string to describe the package.",
Use the description to list any dependencies or additional user-visible information.

"tags" : [ "audio", "DSP", "visualization" ],
An array of strings containing developer-defined tags, if any.

"website" : "http://www.cycling74.com",
If the package or author has a website, note it here.

"extensible" : 0,
An integer (0 or 1) to indicate whether this package can be extended by another package. Package extension means that the extending package becomes logically part of the extensible package in terms of how it appears in the File Browser and Reference Window. For instance, the RISE package extends the extensible BEAP package. As such, RISE patchers and documentation are included in the BEAP package entries in the File Browser and Reference.

"extends" : "",
If the package *extends* an *extensible* package, note that package name here.

"max_version_min" : "8.0",
The minimum Max version this package supports (or 'none' if there is no specific minimum version).

"max_version_max" : "none",
The minimum Max version this package supports (or 'none' if there is no specific maximum version).

"os" : 	{
		"macintosh" : 		{
			"min_version" : "none",
			"platform" : [ "x64", "aarch64" ]
		}
,
		"windows" : 		{
			"min_version" : "none",
			"platform" : [ "x64" ]
		}
	}
,
If the package contains platform- or architecture-specific binary resources (externals, extensions, plugins, etc.), limited compatibility should be noted in this section. The info above would indicate that this package can run on 64-bit Intel Windows and macOS computers, as well as 64-bit Apple Silicon-based computers (`aarch64`). `"x32"` would indicate 32-bit compatibility, although recent Max versions no longer support 32-bit OSs. Note that the `min_version` fields on Windows use some specific strings to indicate specific OS versions: `"none"`, `"11"`, []()`"10"`, `"8.1"`, `"8"`, `"7"` and `"7SP1"` are the only ones which are relevant for modern Max. On macOS, the `min_version` field should be a Semantic Versioning-compatible string matching a macOS version (e.g. `"10.5.2"` or `"12.5"`). Or `"none"`.

"homepatcher" : "name of the home patcher.maxpat",
If the package has a "landing patcher" in its `patchers` folder, note the patcher name here.

"package_extra" : 	{
		"reverse_domain" : "com.cycling74",
		"copyright" : "Copyright (c) 2022 Cycling '74"
	}
,
These are optional fields, you can use them if you want for data storage. The only `package_extra` field used by Max at the time of this writing is:

"forcerestart" : 1
which asks Max to request a Max restart after installing the package.

"filelist" : 	{ ... }
This is a generated list of files in the package. You do not need to add this to your `package-info.json` file, just omit it.

"c74install" : 1,
Do not add this to your `package-info.json` file, it is automatically added by the Package Manager when installing packages.

"installdate" : 3728281618
Do not add this to your `package-info.json` file, it is automatically added by the Package Manager when installing packages.

}

See Also

Name Description
Working With Packages Working With Packages