I think pretty much everything have been said about why this isn't practical and why it's probably quite hard to implement "drop-in" apps for django.
But there's one point that catched my attention: lowering entry level for newcomers. It's not because Django wasn't build with "drop-in" features in mind that it's not possible to lower the entry level. Not long ago, I've started working on doing exactly that. I've written a Python package which makes django development a breeze.. at least for me so far. It's basically a thin wrapper for fabric, pip & virtualenv. Among other sweet things, with simple commands I can: * Configure it for an existing project * Enter development mode (activate virtualenv, creates it and install requirements if non-existents) * Update clear/requirements, restart apache, syncdb on any stages (dev, demo, beta, prod) * Deploy to any stages (configured ssh keys makes it's even easier) To be honest the deploy part works, but it still needs a bit of polishing. However all the other commands are so damn useful in my everyday work that it's really worth using. My motivation was twofold: 1. Type less. I hate having to type the same thing over and over and Ctrl+R has its limits. I run a business and it's a waste of time. I often work on more than 10 projects at the same time, if my package makes me save more than 100 commands over the their lifetime of a project, it's already worth it. 2. Collaboration. Where I live Django isn't quite popular, in fact it barely exists. Even most web design companies and programmers never heard of it. And most developers never heard of pip, fabric, virtualenv or even rsync for that matter. I know it sucks, but I have to deal with it. So the faster I can set an developer on track, the faster he can generate the profits necessary to pay his salary. Now don't worry, the reason I write a reply on this thread is not because I think such tool should be included in django core. But as a whole, I think the django community would gain a lot by promoting or even building such external tool. A different project, aimed at setting developers on track in no time. I know many tools exists and there's many ways to setup and use django, but just like Python itself there is optimal ways to do it. I think Django should advocate good practices, but also try to make developers' life easier. At the end of the day it would pay off. For those who are interested, my project is hosted there: https://github.com/h3/python-dad/tree/master/dad Most of the docs are still hosted there (moving to docs/ & rtd): http://code.google.com/p/python-dad/w/list I welcome comments, suggestions and pull requests :) On Sep 12, 2:47 pm, Romain Dorgueil <[email protected]> wrote: > Hi, > > it may be my first message on the list ever, but I wanted to put my 2 > cents here. > > From the PHP world, Symfony2 introduced a "web installer" system in its > "standard" distribution (which is the core + some fancyness). > > To me, it's useless unless you want to attract people from a larger > audience than what the framework is aimed at at first. I personally > don't want some useless (or use-once at best) code to be around my > project, and I don't think it's the role of a developper-oriented piece > of software to provide such things. Of course, a more "newbie-friendly" > may be "nice-to-have", but imho the "core" of a framework should not > provide such thing. > > Romain. > > On 12/09/2011 18:39, Tom Evans wrote: > > > > > > > > > On Fri, Sep 9, 2011 at 4:56 PM, Alec Taylor<[email protected]> wrote: > >> Looks useable. > > >> Anyone interested in working with me to port this to DJango? > > Alec, as other people have mentioned, Django is not Drupal. Drupal is > > a web application that can be customized using plugins, where as > > Django is a python library one can use to create web applications. > > With that in mind, 'porting this to django' is nonsensical - PyLucid > > uses Django already, and Django is only the framework, not the > > project. > > > The point here is that two different web apps created using Django > > could have vastly different requirements and installation steps, where > > as Drupal has a single set of steps to go from nothing to installed. > > > In fact, its quite common to have the same project installed and > > running in completely different manners. For instance on our > > production servers, all libraries/code/templates, even in house ones, > > are installed from our internal package repository (an in house pypi > > clone), where as in development, each package is checked out from > > subversion in an editable form. > > > PyLucid is a good example of a project based on django providing > > simple and clean installation instructions - although I wouldn't > > deploy it quite like that myself, any solution which uses .htaccess is > > Bad and Wrong imo*. > > >> (the reason I'm not doing it myself is that I am very new to Python and > >> DJango) > > > And (not to be too harsh) this is why you are suggesting it. Django is > > like a tool, admittedly it's one of those Leatherman style multi tools > > that you can use to do almost anything, but it's still a tool for you > > to use rather than a base. > > > Cheers > > > Tom > > > * de gustibus non est disputandum -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.
