@@ -277,6 +277,46 @@ The best Flask extensions are extensions that share common idioms for the
277
277
API. And this can only work if collaboration happens early.
278
278
279
279
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
+
280
320
.. _Flask Extension Wizard :
281
321
http://github.com/mitsuhiko/flask-extension-wizard
282
322
.. _OAuth extension : http://packages.python.org/Flask-OAuth/
0 commit comments