Well, I started giving a run at DjangoPaste. I was hoping it would be
more straight-forward than CherryPy, but maybe it's actually a bit
worse. Lots of things are global -- configuration is loaded and used
on import, not at runtime. This is the hardest part of Pastifying an
application/framework. Right now I only have an entry point for
projects, when really I want to access individual applications, as I
think Paste makes projects unnecessary. The only fundamentally
complicated part of that is the admin screens, which are applications
that know about other applications. I think that the admin
application will have to be a middleware of sorts (composite app, in
particular).
But, even if Django might actually be a bit harder, the primary
ticket that I opened is
already in the process of being fixed the morning after, so there's
good momentum. And really I'm still very fuzzy about how well
CherryPaste will work, because CherryPy isn't very expansive, and even
if I can get the framework working that doesn't mean each application
will work. So ultimately I'll really just be targetting TurboGears,
as that's a set of applications that work similarly. Django involves
things like database configuration up front, so if it works for one
app then it is likely to work for all of them.
Really this whole process of adapting projects to Paste started with a
patch to Trac.
That went really easily (even though there's more I'd like to do with
it), and it made me feel optimistic
about this assimilation process. And that was based on the ability to
monkeypatch and otherwise force compatibility separately from the
original package. I always figured that would be transitional, that
it would be good to bring that support into the original package
directly, but I like the idea of not having to negotiate each
conversion. Now I'm a little less optimistic about that. But we'll
see how it goes.