First
This Manfest is located where you can change it at will. It acts as both a redirector, should you want to relocate your package manifests, or as a mechanism for splitting families of packages. Not strictly required, but it is certainly a Best Practice.
{ "author": "Dominick Meglio", "gitHubUrl": "https://github.com/dcmeglio", "payPalUrl": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7LBRPJRLJSDDN&source=url", "packages": [ { "name": "BOND Home Integration", "category": "Integrations", "location": "https://raw.githubusercontent.com/dcmeglio/hubitat-bond/master/packageManifest.json", "description": "Allows you to integrate a BOND Home device into your Hubitat system", "tags": [ "LAN", "IR & RF" ], "id": "b25495ec-1f66-4aba-8206-cd9bc754b718" }, { "name": "Device Groups", "category": "Convenience", "location": "https://raw.githubusercontent.com/dcmeglio/hubitat-contactgroups/master/packageManifest.json", "description": "Allows you to group contact sensors into a single device", "tags": [ "Automations & Groups" ], "id": "7b6fa6d3-c746-436f-a3cf-a85336e1f1be" } ] }
In the above sample, it's clear that the format is two parts, a global authorship part and then "packages". Each package points to a Package Manifest, where some or all of the details are defined.
If you are manually creating this manifest, then the minumum in the author part is just "name"
./hpm repository-create repository.json --author="Dominick Meglio"
The minimum packages pairs when manually creating are:
- "name":
- "location":
- "category":
- "description":
Finish
Be certain your JSON is perfect using some type of checker. JSONLint is recommended. Broken JSON will result in your package being ignored or quarantined.