DevelopersPre-alpha
Manifests & depends
Explain manifest fields and how depends drives install order without Go imports between addons.
Manifest shape
Every addon root needs a manifest.json. Technical name must match the folder name. Generated zmodels.go registers models under that module.
{ "name": "my_module", "display_name": "My Module", "version": "1.0.0", "author": "Your Company", "description": "Premium standard module for Sumeru ERP.", "depends": ["base"], "application": true, "data": [ "security/security.xml", "security/sys.access.csv", "views/actions.xml", "views/form_view.xml", "views/list_view.xml", "views/kanban_view.xml", "views/menus.xml" ]}
Fields that matter
| Key | Meaning |
|---|---|
name | Technical id (snake_case); install with -i my_module |
display_name | UI label |
depends | Install order; list technical names (usually includes base) |
application | When true, appears as an installable app |
data | Ordered list of XML/CSV files loaded on install/update |
Depends without Go imports between addons
Module order comes from the manifest graph, not from importing another addon's Go package. Prefer depending on base (and other modules you need) and referencing XML ids with module.xml_id style refs.
Data load order
List security before views that assume groups exist. The sample order is: security XML -> access CSV -> actions -> views -> menus.
Compile and run
After editing the manifest data list:
make generatego run . -- -c sumeru.conf -u my_module --stop-after-initmake run
What not to do
- Do not invent a
dependsentry for a module that is not onaddons_path. - Do not reorder
dataso menus load before the actions they reference. - Do not change
namewithout renaming the folder and re-registering models.
Next step
Define tables in Models & fields.