Hi Russell, I strongly disagree with your and Adrian vision of whether conventions are good or not. But I won't comment that any further. There are your political decisions, and I have no single bit of control on them. I know that it's impossible to persuade you, so why should I spend my time doing this.
However, you didn't tell anything on the problem that was the main reason why I wrote this app. Additive variables. DATABASES, DATABASE_ROUTERS, MIDDLEWARE, etc. Do you think situation will change with them? In example, I want few of my apps to work with their own databases. They need to install their database into DATABASES and their router into DATABASE_ROUTERS. How would you do that? On Fri, Jun 4, 2010 at 7:57 PM, Russell Keith-Magee <russ...@keith-magee.com> wrote: > On Fri, Jun 4, 2010 at 3:30 PM, burc...@gmail.com <burc...@gmail.com> wrote: >> Hi Russell, >> >> My writing style sometimes is really clumsy. I'm sorry about that. >> >> You might look at the end of the first message in the thread. >> Or maybe the thread topic. >> >> The problem is that half of third party plugins write: "after install, >> add this and this and this to settings.py". >> The problem is that I have reusable applications and they have their >> bits of default configuration, have their own options. >> >> Problem is that some of such settings are additive, like >> MIDDLEWARE_CLASSES, DATABASES or DATABASE_ROUTERS, and you wanted to >> give an app the possibility to configure their part of global >> configuration, but not override settings which are set by another >> applications. >> >> Problem is that, like everybody, I have different machines where i run >> my projects, and they have different settings (DEBUG, DATABASES, etc). >> >> I'm not the first here. The problem and the common ways to solve it >> are already observed in Django wiki under >> http://code.djangoproject.com/wiki/SplitSettings section. > > And, as the wiki says: > > """ > We don't need a default solution for this. It's not within the scope > of this project to tell people how they should organize their settings > files. Take that opportunity to showcase your individualism. > """ > > I agree with Adrian -- this isn't an area where a complex set of > builtin tools will improve the situation. Every situation will have > slightly different requirements. The good thing about Django using > Python for configuration is that just about anything is possible. > > That said, there are some common patterns, and we should do a better > job at documenting these patterns -- if only to highlight how flexible > the configuration system can be. > >> Probably, the problem with additive settings is the hardest one here. >> Currently I don't see any alternative solution better than my. > > The wiki page you mention lists half a dozen approaches, and still > doesn't mention the obvious option: from submodule.settings import * > > I'm simply not convinced that this is as big a problem as you make > out. I have some large projects with lots of apps and lots of > settings, but with some organizational discipline and the use of > python imports, I've been able to manage that complexity. > > The only area in this that I might concede that there is need for > major improvement is in applications providing default values for > their own settings (i.e., contrib.admin default settings should be > defined by contrib.admin, not in global_settings.py). However, I don't > think this requires the introduction of a complex setting > autodiscovery process -- it just requires a convention about where > default values can be placed in an app so that they will be picked up > by the settings initialization process. > > In fact, I would almost argue that it's a *good* thing that it's hard > for applications to add default settings -- I'm not a big believer in > the dictum that more settings necessarily make things better. Settings > are required to point applications at specific services, or to > configure specific extension points. However, IMHO, an application > that requires dozens of carefully configured settings is often an > indication of a poorly designed app. > > As for 'application configuration files' -- I think this is a > misnomer. Whenever you deploy a Django project, you're deploying a > project -- an amalgam of multiple apps. There's no such thing as the > configuration for a single app. All apps are potentially dependent on > other apps -- consider the potential impact of middleware and context > processors on the operation of any application. When you configure a > Django project, you really are configuring the entire project, > specifying the interaction of the many parts as a whole; having a > conceptual single project-level configuration file drives home this > fact. > > Yours, > Russ Magee %-) > > -- > You received this message because you are subscribed to the Google Groups > "Django developers" group. > To post to this group, send email to django-develop...@googlegroups.com. > To unsubscribe from this group, send email to > django-developers+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/django-developers?hl=en. > > -- Best regards, Yuri V. Baburov, ICQ# 99934676, Skype: yuri.baburov, MSN: bu...@live.com -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-develop...@googlegroups.com. To unsubscribe from this group, send email to django-developers+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.