LimeStore extension development: Difference between revisions
From LimeSurvey Manual
m (Text replacement - "LimeSurvey Professional" to "LimeSurvey Cloud") |
No edit summary |
||
Line 1: | Line 1: | ||
This page describes how you as a third-party developer can create and publish extensions for LimeSurvey, available for purchase or free download in the LimeSurvey LimeStore. | This page describes how you as a third-party developer can create and publish extensions for LimeSurvey, available for purchase or free download in the LimeSurvey LimeStore. | ||
= FAQ = | == FAQ == | ||
== What is the LimeStore == | === What is the LimeStore === | ||
LimeStore is the general extension shop for LimeSurvey GmbH, where "extension" can be one of the following: | LimeStore is the general extension shop for LimeSurvey GmbH, where "extension" can be one of the following: | ||
Line 19: | Line 19: | ||
Extensions can be both free to download and available for purchase. There is a legal agreement with regard to partner fees. | Extensions can be both free to download and available for purchase. There is a legal agreement with regard to partner fees. | ||
== How do I become a third-party developer? == | === How do I become a third-party developer? === | ||
Apply at us, sign documents, give banking details/PayPal account for transactions, etc. | Apply at us, sign documents, give banking details/PayPal account for transactions, etc. | ||
Line 25: | Line 25: | ||
TODO | TODO | ||
= Adding an extension to the LimeStore = | == Adding an extension to the LimeStore == | ||
First, you have to be approved as a LimeStore extension vendor. See above. | First, you have to be approved as a LimeStore extension vendor. See above. | ||
Line 31: | Line 31: | ||
The extension has to be zipped correctly, with a proper <code>config.xml</code> file. See below. | The extension has to be zipped correctly, with a proper <code>config.xml</code> file. See below. | ||
== config.xml specification == | === config.xml specification === | ||
All LimeSurvey extensions include a <code>config.xml</code> file with specifies author, version, type, and so on. Without this file, LimeSurvey won't be able to properly install the extension. | All LimeSurvey extensions include a <code>config.xml</code> file with specifies author, version, type, and so on. Without this file, LimeSurvey won't be able to properly install the extension. | ||
Line 67: | Line 67: | ||
From LimeSurvey 4, you're also required to include information about extension updater: https://manual.limesurvey.org/Plugins_-_advanced#Extension_updates_.28New_in_4_.29 | From LimeSurvey 4, you're also required to include information about extension updater: https://manual.limesurvey.org/Plugins_-_advanced#Extension_updates_.28New_in_4_.29 | ||
=== Allowed extension types === | ==== Allowed extension types ==== | ||
The following values are allowed in the type metadata tag: | The following values are allowed in the type metadata tag: | ||
Line 92: | Line 92: | ||
|} | |} | ||
=== Plugin example === | ==== Plugin example ==== | ||
<syntaxhighlight lang=xml> | <syntaxhighlight lang=xml> | ||
Line 112: | Line 112: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Theme example === | ==== Theme example ==== | ||
TODO | TODO | ||
=== Question theme example === | ==== Question theme example ==== | ||
TODO | TODO | ||
= After upload = | == After upload == | ||
When an extension has been uploaded, it has to be approved by the LimeSurvey GmbH team. The workflow is as below. | When an extension has been uploaded, it has to be approved by the LimeSurvey GmbH team. The workflow is as below. | ||
Line 146: | Line 146: | ||
Each zip file has to be approved individually. When you update a new version of an extension, the old version will be available for download until the new zip file is approved. The old zip file will then be deleted from our system, and only the new version will be available. | Each zip file has to be approved individually. When you update a new version of an extension, the old version will be available for download until the new zip file is approved. The old zip file will then be deleted from our system, and only the new version will be available. | ||
= Purchase models (payment, support, license, pricing) = | == Purchase models (payment, support, license, pricing) == | ||
== LimeSurvey Cloud (hosting) == | === LimeSurvey Cloud (hosting) === | ||
For ''plugins'' that are sold on LimeSurvey GmbH hosting, only the ''subscription'' payment model is available. In this case, by default, support is limited to updates and bug fixes during the subscription term. After the subscription term ends, the plugin is removed from the LimeSurvey Cloud instance. | For ''plugins'' that are sold on LimeSurvey GmbH hosting, only the ''subscription'' payment model is available. In this case, by default, support is limited to updates and bug fixes during the subscription term. After the subscription term ends, the plugin is removed from the LimeSurvey Cloud instance. | ||
Other extensions like themes etc can be both one-off payments and subscriptions. In this case, the support period is determined by the developer and shown on the product details page. | Other extensions like themes etc can be both one-off payments and subscriptions. In this case, the support period is determined by the developer and shown on the product details page. | ||
For free extensions, the developer may or may not provide support (link or contact). | For free extensions, the developer may or may not provide support (link or contact). | ||
A license for a plugin available on LimeSurvey Cloud should not be AGPL because of the end-user open source requirement (or any other license that requires the source-code to be available to the end user). | A license for a plugin available on LimeSurvey Cloud should not be AGPL because of the end-user open source requirement (or any other license that requires the source-code to be available to the end user). | ||
We recommend the extension price should be cheaper for LimeSurvey Cloud than for CE as it will renew automatically and the user will have no access to the extensions anymore after it expired. The pricing can be freely determined by the developer, but can not be less than 5 EUR. | We recommend the extension price should be cheaper for LimeSurvey Cloud than for CE as it will renew automatically and the user will have no access to the extensions anymore after it expired. The pricing can be freely determined by the developer, but can not be less than 5 EUR. | ||
== LimeSurvey Community Edition (non-hosting) == | === LimeSurvey Community Edition (non-hosting) === | ||
All extensions available for LimeSurvey CE can be both one-off payments and subscriptions. With subscriptions, by default, support is limited to updates and bug fixes during the subscription term. For one-off payments, the support period is determined by the developer and shown on the product details page. | All extensions available for LimeSurvey CE can be both one-off payments and subscriptions. With subscriptions, by default, support is limited to updates and bug fixes during the subscription term. For one-off payments, the support period is determined by the developer and shown on the product details page. | ||
After the subscription/support period ends, the customer would still have access to the most recent version of the extension that was available during the subscription/support period. Example: ... | After the subscription/support period ends, the customer would still have access to the most recent version of the extension that was available during the subscription/support period. Example: ... | ||
For free extensions, the developer may or may not provide support (link or contact). | For free extensions, the developer may or may not provide support (link or contact). | ||
For an extensions that can be downloaded and installed in LimeSurvey CE, a license of your choosing can be used. | For an extensions that can be downloaded and installed in LimeSurvey CE, a license of your choosing can be used. | ||
The pricing can be freely determined by the developer, but can not be less than 5 EUR. | The pricing can be freely determined by the developer, but can not be less than 5 EUR. | ||
The subscription period can be monthly or yearly. | The subscription period can be monthly or yearly. | ||
= Version access = | == Version access == | ||
* For one-off payments, the customer has access to new versions of the extension forever | * For one-off payments, the customer has access to new versions of the extension forever |
Latest revision as of 14:26, 27 May 2021
This page describes how you as a third-party developer can create and publish extensions for LimeSurvey, available for purchase or free download in the LimeSurvey LimeStore.
FAQ
What is the LimeStore
LimeStore is the general extension shop for LimeSurvey GmbH, where "extension" can be one of the following:
- Plugin
- Survey theme
- Question theme
- Survey template
- Localization package
- Component
- External systems (like RPC libraries)
Not all types are supported right now (as of 2019-01-14) but are planned to be.
Extensions can be both free to download and available for purchase. There is a legal agreement with regard to partner fees.
How do I become a third-party developer?
Apply at us, sign documents, give banking details/PayPal account for transactions, etc.
TODO
Adding an extension to the LimeStore
First, you have to be approved as a LimeStore extension vendor. See above.
The extension has to be zipped correctly, with a proper config.xml
file. See below.
config.xml specification
All LimeSurvey extensions include a config.xml
file with specifies author, version, type, and so on. Without this file, LimeSurvey won't be able to properly install the extension.
Tag | Type | Mandatory | Description |
---|---|---|---|
name | string | x | The name of the extension |
type | string | x | Type of the extension; can be "plugin", "theme", etc; see below |
creationDate | date (YYYY-MM-DD) | Date the extension was created | |
lastUpdate | date (YYYY-MM-DD) | Date of the latest update | |
author | string | x | Plugin author |
authorUrl | url | x | URL to author web page, necessary so that customers can contact author for support |
supportUrl | url | x | URL to support page, so that customers and users can contact authors about problems and questions |
version | string as semantic version | x | Extension version number |
lastSecurityUpdate | string as semantic version | Last version that included a security update | |
license | string | x | Extension licence |
description | CDATA | x | Short description of extension, visible in the LimeSurvey extension manager |
From LimeSurvey 4, you're also required to include information about extension updater: https://manual.limesurvey.org/Plugins_-_advanced#Extension_updates_.28New_in_4_.29
Allowed extension types
The following values are allowed in the type metadata tag:
Type | Tag value | Internal representation |
---|---|---|
Survey theme | theme | t |
Admin theme | admin_theme | a |
Question theme | question_theme | q |
Plugin | plugin | p |
Survey template | survey_template | s |
Twig extension | twig_extension | w |
External system | external | x |
Plugin example
<config>
<metadata>
<name>MassAction</name>
<type>plugin</type>
<creationDate>2017-03-28</creationDate>
<lastUpdate>2018-01-24</lastUpdate>
<author>Olle Haerstedt</author>
<authorUrl>https://github.com/olleharstedt</authorUrl>
<supportUrl>https://github.com/olleharstedt/MassAction/issues</supportUrl>
<version>1.0.0</version>
<lastSecurityUpdate>1.0.0</lastSecurityUpdate>
<license>GNU General Public License version 2 or later</license>
<description><![CDATA[Edit multiple relevance equations in one page.]]></description>
</metadata>
</config>
Theme example
TODO
Question theme example
TODO
After upload
When an extension has been uploaded, it has to be approved by the LimeSurvey GmbH team. The workflow is as below.
State | Description |
---|---|
Processing | Waiting for scripts to finish |
Process failed | Internal system error, or other error like lacking config.xml file in ZIP archive |
In review | Waiting for manual approval of LimeSurvey GmbH member |
Disapproved | The extension was for some reason not approved by the team |
Approved | The extension has been approved and is now available for download or purchase in the LimeStore |
Disabled | Manually disabled by the third-party developer (not LimeSurvey GmbH), (customers who bought the extension still have access to approved zip files) |
Each zip file has to be approved individually. When you update a new version of an extension, the old version will be available for download until the new zip file is approved. The old zip file will then be deleted from our system, and only the new version will be available.
Purchase models (payment, support, license, pricing)
LimeSurvey Cloud (hosting)
For plugins that are sold on LimeSurvey GmbH hosting, only the subscription payment model is available. In this case, by default, support is limited to updates and bug fixes during the subscription term. After the subscription term ends, the plugin is removed from the LimeSurvey Cloud instance.
Other extensions like themes etc can be both one-off payments and subscriptions. In this case, the support period is determined by the developer and shown on the product details page.
For free extensions, the developer may or may not provide support (link or contact).
A license for a plugin available on LimeSurvey Cloud should not be AGPL because of the end-user open source requirement (or any other license that requires the source-code to be available to the end user).
We recommend the extension price should be cheaper for LimeSurvey Cloud than for CE as it will renew automatically and the user will have no access to the extensions anymore after it expired. The pricing can be freely determined by the developer, but can not be less than 5 EUR.
LimeSurvey Community Edition (non-hosting)
All extensions available for LimeSurvey CE can be both one-off payments and subscriptions. With subscriptions, by default, support is limited to updates and bug fixes during the subscription term. For one-off payments, the support period is determined by the developer and shown on the product details page.
After the subscription/support period ends, the customer would still have access to the most recent version of the extension that was available during the subscription/support period. Example: ...
For free extensions, the developer may or may not provide support (link or contact).
For an extensions that can be downloaded and installed in LimeSurvey CE, a license of your choosing can be used.
The pricing can be freely determined by the developer, but can not be less than 5 EUR.
The subscription period can be monthly or yearly.
Version access
- For one-off payments, the customer has access to new versions of the extension forever
- For subscriptions, the customer has access to new versions as long as the subscription period is running
- After the subscription period has expired, the customer has access to the latest update from the subscription period