Skip to content

Commit 3adc9de

Browse files
committed
Updated docs for extension approval process
1 parent dcf5dff commit 3adc9de

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

docs/extensiondev.rst

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,46 @@ The best Flask extensions are extensions that share common idioms for the
277277
API. And this can only work if collaboration happens early.
278278

279279

280+
Approved Extensions
281+
-------------------
282+
283+
Flask also has the concept of approved extensions. Approved extensions
284+
are tested as part of Flask itself to ensure extensions do not break on
285+
new releases. These approved extensions are listed on the `Flask
286+
Extension Registry`_ and marked appropriately. If you want your own
287+
extension to be approved you have to follow these guidelines:
288+
289+
1. An approved Flask extension must provide exactly one package or module
290+
inside the `flaskext` namespace package.
291+
2. It must ship a testsuite that can either be invoked with ``make test``
292+
or ``python setup.py test``. For testsuites invoked with ``make
293+
test`` the extension has to ensure that all dependencies for the test
294+
are installed automatically, in case of ``python setup.py test``
295+
dependencies for tests alone can be specified in the `setup.py`
296+
file. The testsuite also has to be part of the distribution.
297+
3. APIs of approved extensions will be checked for the following
298+
behavioristics:
299+
300+
- an approved extension has to support multiple applications
301+
running in the same Python process.
302+
- it must be possible to use the factory pattern for creating
303+
applications.
304+
305+
4. The license has to be BSD/MIT/WTFPL licensed unless a depending
306+
library absolutely enforces GPL or another license.
307+
5. The naming scheme for official extensions is *Flask-ExtensionName* or
308+
*ExtensionName-Flask*.
309+
6. Approved extensions must define all their dependencies in the
310+
`setup.py` file unless a dependency cannot by met because it is not
311+
available on PyPI.
312+
7. The extension must have documentation that furthermore uses one of
313+
the two Flask themes for Sphinx documentation.
314+
8. The setup.py description (and thus the PyPI description) has to
315+
link to the documentation, website (if there is one) and there
316+
must be a link to automatically install the development version
317+
(``PackageName==dev``).
318+
319+
280320
.. _Flask Extension Wizard:
281321
http://github.com/mitsuhiko/flask-extension-wizard
282322
.. _OAuth extension: http://packages.python.org/Flask-OAuth/

0 commit comments

Comments
 (0)