|
|
|
@ -277,6 +277,46 @@ The best Flask extensions are extensions that share common idioms for the
|
|
|
|
|
API. And this can only work if collaboration happens early. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Approved Extensions |
|
|
|
|
------------------- |
|
|
|
|
|
|
|
|
|
Flask also has the concept of approved extensions. Approved extensions |
|
|
|
|
are tested as part of Flask itself to ensure extensions do not break on |
|
|
|
|
new releases. These approved extensions are listed on the `Flask |
|
|
|
|
Extension Registry`_ and marked appropriately. If you want your own |
|
|
|
|
extension to be approved you have to follow these guidelines: |
|
|
|
|
|
|
|
|
|
1. An approved Flask extension must provide exactly one package or module |
|
|
|
|
inside the `flaskext` namespace package. |
|
|
|
|
2. It must ship a testsuite that can either be invoked with ``make test`` |
|
|
|
|
or ``python setup.py test``. For testsuites invoked with ``make |
|
|
|
|
test`` the extension has to ensure that all dependencies for the test |
|
|
|
|
are installed automatically, in case of ``python setup.py test`` |
|
|
|
|
dependencies for tests alone can be specified in the `setup.py` |
|
|
|
|
file. The testsuite also has to be part of the distribution. |
|
|
|
|
3. APIs of approved extensions will be checked for the following |
|
|
|
|
behavioristics: |
|
|
|
|
|
|
|
|
|
- an approved extension has to support multiple applications |
|
|
|
|
running in the same Python process. |
|
|
|
|
- it must be possible to use the factory pattern for creating |
|
|
|
|
applications. |
|
|
|
|
|
|
|
|
|
4. The license has to be BSD/MIT/WTFPL licensed unless a depending |
|
|
|
|
library absolutely enforces GPL or another license. |
|
|
|
|
5. The naming scheme for official extensions is *Flask-ExtensionName* or |
|
|
|
|
*ExtensionName-Flask*. |
|
|
|
|
6. Approved extensions must define all their dependencies in the |
|
|
|
|
`setup.py` file unless a dependency cannot by met because it is not |
|
|
|
|
available on PyPI. |
|
|
|
|
7. The extension must have documentation that furthermore uses one of |
|
|
|
|
the two Flask themes for Sphinx documentation. |
|
|
|
|
8. The setup.py description (and thus the PyPI description) has to |
|
|
|
|
link to the documentation, website (if there is one) and there |
|
|
|
|
must be a link to automatically install the development version |
|
|
|
|
(``PackageName==dev``). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.. _Flask Extension Wizard: |
|
|
|
|
http://github.com/mitsuhiko/flask-extension-wizard |
|
|
|
|
.. _OAuth extension: http://packages.python.org/Flask-OAuth/ |
|
|
|
|