How should I create a Django app for 3rd party use? I’ve been hacking on something lately and I’d like to put it up on GitHub and let it loose. How should I structure it? Is there a way I can use it without having to store an entire Django project around it in the repository? How can I test it locally inside of another project?
I’m kind of new at this, so I’m sorry. In the past, I’ve used Buildout to build my projects, but I don’t know if I could use the Buildout Django recipe without an enclosing project.
Is there a guide for doing this?
James Bennett in DjangoCon 2008 talked about how to develop reusable django applications which are well de-coupled and can be dropped into different projects. You can watch the talk here. He explains some good practices to follow for doing so. You can also look into some popular existing external apps (some by James Bennett himself) or even django.contrib which are available with django.
Use setuptools/distutils to package your apps over the cheezeshop. I think these can help you:
http://bruno.im/2010/may/05/packaging-django-reusable-app/
https://github.com/Natim/django-reusable-apps