User Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
en:devel:packagemodules [2014/06/30 18:37]
joebordes
en:devel:packagemodules [2016/01/26 14:50] (current)
Line 1: Line 1:
 ====== How to prepare modules for distribution ====== ====== How to prepare modules for distribution ======
 +
 +
 +<WRAP center round alert 60%>
 +**THIS DOCUMENTATION IS WRONG**. It is obsolete. We're working on it
 +</​WRAP>​
 +
  
 coreBOS (5.5 forward) is prepared to make installing and distributing your modules easy. coreBOS (5.5 forward) is prepared to make installing and distributing your modules easy.
Line 23: Line 29:
   * modules/​{ModuleName}   * modules/​{ModuleName}
   * modules/​{ModuleName}/​manifest.xml   * modules/​{ModuleName}/​manifest.xml
 +  * manifest.xml (this is a copy of the modules/​{ModuleName}/​manifest.xml file)
 +  * composer.json (optional, this is for direct command line install [[https://​getcomposer.org/​|using composer]])
   * cron/​modules/​{ModuleName} ​ (**optional** only if needed)   * cron/​modules/​{ModuleName} ​ (**optional** only if needed)
   * Smarty/​templates/​modules/​{ModuleName} ​ (**optional** only if needed)   * Smarty/​templates/​modules/​{ModuleName} ​ (**optional** only if needed)
 +
 +The complete composer.json format supported is:
 +
 +<code json>
 +{
 +    "​name":​ "​Package",​
 +    "​type":​ "​object",​
 +    "​properties":​ {
 +        "​name":​ {
 +            "​type":​ "​string",​
 +            "​description":​ "​Package name, including '​vendor-name/'​ prefix."​
 +        },
 +        "​description":​ {
 +            "​type":​ "​string",​
 +            "​description":​ "Short package description."​
 +        },
 +        "​keywords":​ {
 +            "​type":​ "​array",​
 +            "​items":​ {
 +                "​type":​ "​string",​
 +                "​description":​ "A tag/keyword that this package relates to."
 +            }
 +        },
 +        "​homepage":​ {
 +            "​type":​ "​string",​
 +            "​description":​ "​Homepage URL for the project.",​
 +            "​format":​ "​uri"​
 +        },
 +        "​version":​ {
 +            "​type":​ "​string",​
 +            "​description":​ "​Package version, see https://​getcomposer.org/​doc/​04-schema.md#​version for more info on valid schemes."​
 +        },
 +        "​time":​ {
 +            "​type":​ "​string",​
 +            "​description":​ "​Package release date, in '​YYYY-MM-DD',​ '​YYYY-MM-DD HH:​MM:​SS'​ or '​YYYY-MM-DDTHH:​MM:​SSZ'​ format."​
 +        },
 +        "​license":​ {
 +            "​type":​ ["​string",​ "​array"​],​
 +            "​description":​ "​License name. Or an array of license names."​
 +        },
 +        "​extra":​ {
 +            "​price":​ [number],
 +            "​buyemail":​ [email],
 +            "​buyurl":​ [uri],
 +            "​distribution":​ ["​Sale","​Free","​Subscription","​Donationware"​]
 +        },
 +        "​authors":​ {
 +            "​type":​ "​array",​
 +            "​description":​ "List of authors that contributed to the package. This is typically the main maintainers,​ not the full list.",​
 +            "​items":​ {
 +                "​type":​ "​object",​
 +                "​additionalProperties":​ false,
 +                "​required":​ [ "​name"​],​
 +                "​properties":​ {
 +                    "​name":​ {
 +                        "​type":​ "​string",​
 +                        "​description":​ "Full name of the author."​
 +                    },
 +                    "​email":​ {
 +                        "​type":​ "​string",​
 +                        "​description":​ "Email address of the author.",​
 +                        "​format":​ "​email"​
 +                    },
 +                    "​homepage":​ {
 +                        "​type":​ "​string",​
 +                        "​description":​ "​Homepage URL for the author.",​
 +                        "​format":​ "​uri"​
 +                    },
 +                    "​role":​ {
 +                        "​type":​ "​string",​
 +                        "​description":​ "​Author'​s role in the project."​
 +                    }
 +                }
 +            }
 +        },
 +        "​support":​ {
 +            "​type":​ "​object",​
 +            "​properties":​ {
 +                "​email":​ {
 +                    "​type":​ "​string",​
 +                    "​description":​ "Email address for support.",​
 +                    "​format":​ "​email"​
 +                },
 +                "​issues":​ {
 +                    "​type":​ "​string",​
 +                    "​description":​ "URL to the issue tracker.",​
 +                    "​format":​ "​uri"​
 +                },
 +                "​forum":​ {
 +                    "​type":​ "​string",​
 +                    "​description":​ "URL to the forum.",​
 +                    "​format":​ "​uri"​
 +                },
 +                "​wiki":​ {
 +                    "​type":​ "​string",​
 +                    "​description":​ "URL to the wiki.",​
 +                    "​format":​ "​uri"​
 +                },
 +                "​irc":​ {
 +                    "​type":​ "​string",​
 +                    "​description":​ "IRC channel for support, as irc://​server/​channel.",​
 +                    "​format":​ "​uri"​
 +                },
 +                "​source":​ {
 +                    "​type":​ "​string",​
 +                    "​description":​ "URL to browse or download the sources.",​
 +                    "​format":​ "​uri"​
 +                },
 +                "​docs":​ {
 +                    "​type":​ "​string",​
 +                    "​description":​ "URL to the documentation.",​
 +                    "​format":​ "​uri"​
 +                }
 +            }
 +        }
 +    }
 +}
 +</​code>​
 +
 +where only the first **//​name//​** and **//​type//​** are mandatory.
  
 ==== 2.- Package the module ==== ==== 2.- Package the module ====