mirror of
https://github.com/YunoHost/doc.git
synced 2024-09-03 20:06:26 +02:00
2e3d49e1fe
* [enh] packaging_apps_manifest: add 'version' field. * [enh] Version number convention * [enh] Convention pour les numéros de versions * [fix] packaging_apps_manifest_fr: typo. * Update packaging_apps_manifest.md
86 lines
3.6 KiB
Markdown
86 lines
3.6 KiB
Markdown
<a class="btn btn-lg btn-default" href="packaging_apps_en">Application packaging</a>
|
|
|
|
## Manifest
|
|
The `manifest.json` file defines the app's constants, a bunch of values that YunoHost needs to identify the app and install it correctly. It looks like this:
|
|
```json
|
|
{
|
|
"name": "Roundcube",
|
|
"id": "roundcube",
|
|
"packaging_format": 1,
|
|
"description": {
|
|
"en": "Open Source Webmail software",
|
|
"fr": "Webmail Open Source"
|
|
},
|
|
"url": "http://roundcube.net/",
|
|
"version": "1.0-1",
|
|
"license": "free",
|
|
"maintainer": {
|
|
"name": "kload",
|
|
"email": "kload@kload.fr"
|
|
},
|
|
"requirements": {
|
|
"yunohost": ">= 2.4.0"
|
|
},
|
|
"multi_instance": true,
|
|
"services": [
|
|
"nginx",
|
|
"php5-fpm",
|
|
"mysql"
|
|
],
|
|
"arguments": {
|
|
"install" : [
|
|
{
|
|
"name": "domain",
|
|
"type": "domain",
|
|
"ask": {
|
|
"en": "Choose a domain for Roundcube",
|
|
"fr": "Choisissez un domaine pour Roundcube"
|
|
},
|
|
"example": "domain.org"
|
|
},
|
|
{
|
|
"name": "path",
|
|
"type": "path",
|
|
"ask": {
|
|
"en": "Choose a path for Roundcube",
|
|
"fr": "Choisissez un chemin pour Roundcube"
|
|
},
|
|
"example": "/webmail",
|
|
"default": "/webmail"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
* **name**: app name. It does not have to be unique, but it should be, since it is the name shown to all the YunoHost administrators in the app list.
|
|
|
|
* **id**: ID of the app. You have to ensure that this ID is unique before submit an app integration request.
|
|
|
|
- **packaging_format**: package version. Actual version is **1**. This key has been set up to make independant packaging evolution versions from YunoHost versions evolution.
|
|
|
|
* **description**: complete app description. You can make it as detailed as you feel it should be. Only `en` is required right now, but you can translate the description by prepending the locale prefix.
|
|
|
|
* **url**: software website.
|
|
|
|
* **version**: version of the package builded from the upstream version number and an incremental number for each change in the package without upstream change. Example "1.0.0-7". Must be a string.
|
|
|
|
* **license**: application license: `free` or `non-free`. Be careful to not confuse with package license which must be put in `LICENSE` file.
|
|
|
|
* **maintainer**: informations about the app maintainer for contact.
|
|
|
|
- **requirements**: dependency of the application package to a Debian YunoHost package version. For instance, "yunohost": ">> 2.3.12", `yunohost` package version must be up to `2.3.12`.
|
|
|
|
* [**multi_instance**](packaging_apps_multiinstance_en): it defines app's ability to be installed multiple times.
|
|
|
|
* **services**: services needed by the application among `nginx`, `php5-fpm`, `mysql`, `uwsgi`, `metronome`, `postfix`, `dovecot`…
|
|
|
|
* **arguments**:
|
|
* **install**: argument for the YunoHost's administrator to enter at installation.
|
|
* **name**: argument identification.
|
|
* **type**: (optional) argument type among `domain`, `path`, `user`, `app`, `boolean` and `password`. The field will be hiden in the password case.
|
|
* **choices** : (optional) restrict value to several choices.
|
|
* **optional** : (optional) field which indicate if this argument is optional. It can have `true` and `false` value.
|
|
* **ask**: question (at least in `en`) that you can translate.
|
|
* **example**: (optional) example value to help administrator to fill the input.
|
|
* **default**: (optional) default value.
|