| 1 | | = Guidelines for writing, distributing and using Django applications = |
| 2 | | |
| 3 | | See |
| 4 | | * http://groups.google.com/group/django-developers/browse_thread/thread/bdcad26ab044cb96 |
| 5 | | * http://www.b-list.org/weblog/2008/sep/07/slides/ and http://media.b-list.org/presentations/2008/djangocon/reusable_apps.pdf |
| 6 | | |
| 7 | | = Guidelines for reusable application authors = |
| 8 | | |
| 9 | | * '''namespace''': apps should live in `django.apps`, i.e. if your app is named `frobnicate`, your code should be in `django.apps.frobnicate` |
| 10 | | * FIXME alternative: require use of namespace packages, see http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages , review how Zope does it |
| 11 | | * FIXME '''Django version''': somehow the Django version used has to be conveyed (`django1.0-comments`?), again Zope app versioning should help |
| 12 | | * '''publishing''': apps should be packaged with `setuptools` and published in the [http://pypi.python.org/pypi Python Package Index], under trove category `Framework :: Django` |
| 13 | | * '''dependencies''': ordinary `setuptools` dependency handling |
| 14 | | |
| 15 | | = Package index = |
| 16 | | |
| 17 | | Additionally to the PyPi index, a separate indexing service with ratings, groupings and whatnot would be useful. [http://djangoplugables.com Django Pluggables] is a nice start. |